Numerical value control device and numerical value control method
The numerical control device addresses the complexity of coordinating machine tools and robots by measuring and applying coordinate system offsets, simplifying program creation and improving operational efficiency in multi-tool environments.
Patent Information
- Application Number
- PCT/JP2023/022473
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-06-16
- Publication Date
- 2024-12-19
AI Technical Summary
In systems where machine tools and robots work together, the difference in programming languages and coordinate systems between the two creates complexity, leading to increased workload during startup and difficulty in understanding linked operations, particularly when multiple machine tools are involved.
A numerical control device that measures and accounts for the coordinate system offset between machine tools and robots, allowing the robot to adjust its position accurately, thereby simplifying the creation of machining programs and improving system performance.
This solution reduces the burden on operators by automating the measurement and application of coordinate system offsets, enabling more efficient control of multiple machine tools and robots, enhancing precision and reducing the complexity of creating machining programs.
Smart Images

Figure JP2023022473_19122024_PF_FP_ABST
Abstract
Description
Numerical control device and numerical control method
[0001] The present disclosure relates to a numerical control device and a numerical control method for controlling a machine tool and a robot.
[0002] Generally, in a system in which a machine tool and a robot operate cooperatively, the machine tool and the robot have separate controllers, use different programming languages for control, and have different coordinate systems for the machine tool and the robot. In a system including a machine tool and a robot, if the program for controlling the machine tool and the program for controlling the robot are created separately, it can be difficult to understand the coordinated operation between the machine tool and the robot from these programs, which can increase the workload when starting up the system. Therefore, a technology has been proposed in which both the machine tool and the robot are controlled using a programming language designed for the machine tool.
[0003] Patent Document 1 discloses a numerical control device that controls a robot by transmitting a program language for machine tools to a robot controller. The difference between the coordinate system of the machine tool and the coordinate system of the robot is determined by measuring the relative relationship and taking this difference into consideration when carrying out control.
[0004] Patent No. 6647472
[0005] A factory may be equipped with multiple machine tools, and one robot may be used to perform loading and unloading operations for the multiple machine tools. When a single machine tool controls a robot using the technology of Patent Document 1, the single machine tool must measure, maintain, and apply the relative relationship between the coordinate systems of the robot and the multiple machine tools. Measurement and application generally require control using, for example, a machining program, but because an operator must consider each machining process, creating the machining program places a heavy burden on the operator.
[0006] The present disclosure has been made in consideration of the above, and aims to provide a numerical control device that can reduce the burden on an operator in creating a machining program for controlling multiple machine tools and robots.
[0007] In order to solve the above-mentioned problems and achieve the object, a numerical control device in the present disclosure controls multiple machine tools and a robot that performs work on the multiple machine tools. The numerical control device includes: a measurement processing unit that measures the coordinate system offset of each machine tool using the stop position of the robot on each machine tool when working and a measurement start position that is the position at which to start measuring a coordinate system offset that indicates the relationship between the coordinate system of each machine tool and the coordinate system of the robot; an associating unit that associates the coordinate system offset measured by the measurement processing unit with each machine tool together with the stop position and the measurement start position; and an reflection processing unit that reflects the associated coordinate system offset and controls the robot when executing a machining program.
[0008] The numerical control device of the present disclosure has the effect of reducing the burden on an operator in creating a machining program for controlling a plurality of machine tools and robots.
[0009] FIG. 1 is a diagram showing an example of the configuration of a control system including a numerical control device according to a first embodiment. FIG. 1 is a diagram showing an example of the configuration of a numerical control device according to a first embodiment. FIG. 2 is a diagram showing an example of measurement of a coordinate system offset using a touch probe in the numerical control device according to the first embodiment. FIG. 3 is a diagram showing an example of a coordinate system offset table stored by the numerical control device according to the first embodiment. FIG. 4 is a diagram showing an example of a machining program executed by the numerical control device according to the first embodiment. FIG. 5 is a diagram showing an example of a tool changing method for a robot according to the first embodiment.
[0010] A numerical control device and a numerical control method according to an embodiment will be described in detail below with reference to the drawings.
[0011] First Embodiment Fig. 1 is a diagram showing an example of the configuration of a control system 100 including a numerical control device 1 according to the first embodiment. The numerical control device 1 according to the first embodiment creates a machining program for controlling a machine tool 70, a robot 60, and a traveling axis 62, and controls other machine tools 72, 73, and 74. In the first embodiment, an example will be described in which the numerical control device 1 that controls the machine tool 70, the robot 60, and the traveling axis 62 is provided with the function of measuring and applying a coordinate system.
[0012] Control system 100 is a system that controls machine tool 70, robot 60, and traveling axis 62 using a numerical control (NC) program, which is a machining program. Control system 100 has machine tool 70, numerical control device 1, robot controller 50, robot 60, traveling axis 62, and other machine tools 72 to 74. Numerical control device 1 has a CNC (Computer Numerical Control) unit 6 and an input operation unit 3. In the first embodiment, the configuration of machine tool 70 intended for metal processing will be mainly described, but the configuration of machine tool 70 is not limited to this.
[0013] The CNC unit 6 is connected to the machine tool 70, the input operation unit 3, and the robot controller 50. The robot controller 50 is connected to the robot 60. The CNC unit 6 and the robot controller 50 are connected via a network such as a LAN (Local Area Network).
[0014] The input operation section 3 has an input / output unit 51, an emergency stop button 52, and an operation panel 53. The operation panel 53 receives operations from an operator and sends a signal corresponding to the operation to the input / output unit 51. When the operator presses the emergency stop button 52, it sends a signal to the robot controller 50 to stop the robot controller 50, and also sends a signal to the input / output unit 51 to stop the machine tool 70. The input / output unit 51 sends the signal sent from the operation panel 53 and the signal sent from the emergency stop button 52 to the CNC unit 6. When the robot controller 50 receives the signal from the emergency stop button 52, it brings the robot 60 to an emergency stop. When the CNC unit 6 receives a signal to stop the machine tool 70 from the input / output unit 51, it brings the machine tool 70 to an emergency stop.
[0015] In the control system 100, communication is performed between the machine tool 70, the numerical control device 1, and the robot controller 50, and communication is performed between the robot controller 50 and the robot 60 and the traveling axis 62. In this way, in the control system 100, the numerical control device 1 is connected to the robot 60 and the traveling axis 62 via the robot controller 50. The numerical control device 1 controls the robot 60 and the traveling axis 62 via the robot controller 50. Hereinafter, when describing the control of the robot 60 by the numerical control device 1, the mention of the robot controller 50 being used may be omitted.
[0016] The CNC unit 6 is also connected to other machine tools 72 to 74. The CNC unit 6 and the other machine tools 72 to 74 are connected by an industrial network including, for example, a LAN.
[0017] In the control system 100, communication is performed between the numerical control device 1 and the other machine tools 72 to 74, and the numerical control device 1 controls the other machine tools 72 to 74. The numerical control device 1 may also perform operation control of the other machine tools 72 to 74, such as starting machining.
[0018] The numerical control device 1 is disposed in a machine tool 70. The numerical control device 1 is a computer that causes the machine tool 70 to process a workpiece using a tool, and also causes the robot 60 to transport the workpiece. The numerical control device 1 also controls the transport of the robot 60 using a traveling axis 62, and controls the operation of the other machine tools 72 to 74, such as starting machining.
[0019] The NC program includes a first command written in a first programming language and directed to the machine tool 70, and a second command written in the first programming language and directed to the robot 60 and the traveling axis 62. The numerical control device 1 converts the second command in the NC program into a third command, which is a command of a robot program written in the second programming language, and controls the robot 60 and the traveling axis 62 using the third command.
[0020] The input operation unit 3 is a means for inputting information to the control and calculation unit 2 of the CNC unit 6. The control and calculation unit 2 will be described later. The input operation unit 3 includes input means such as a keyboard, a touch panel, buttons, or a mouse. Fig. 1 shows a keyboard and a touch panel as examples of input means. The touch panel is, for example, a liquid crystal touch panel.
[0021] The numerical control device 1 sends the robot program including the third command to the robot controller 50. The robot controller 50 controls the robot 60 and the traveling axis 62 in accordance with the robot program sent from the numerical control device 1.
[0022] The robot 60 grips a workpiece with the robot hand 61 and transports the gripped workpiece. The robot 60 loads the workpiece before machining onto the machine tool 70 and unloads the machined workpiece from the machine tool 70. Note that the robot 60 may perform processes other than transporting the workpiece.
[0023] The traveling axis 62 moves the robot 60. By moving the robot 60 in front of the other machine tools 72 to 74 using the traveling axis 62, the robot 60 can transport, load, and unload workpieces to the other machine tools 72 to 74.
[0024] The CNC unit 6 is configured to include a control calculation unit 2, which will be described later, and a display unit 4, which will be described later. The CNC unit 6 controls the machine tool 70, the robot 60, and the traveling axis 62 using an NC program. Furthermore, when the CNC unit 6 receives a signal from the input operation unit 3, it causes the machine tool 70 to execute processing corresponding to the received signal. Furthermore, the CNC unit 6 displays on the display unit 4 information indicating the status of the machine tool 70, information indicating the status of the robot 60, information indicating the status of the traveling axis 62, etc.
[0025] The machine tool 70 and the other machine tools 72 to 74 are NC machine tools. The NC machine tool uses a tool to machine a workpiece while moving the tool and workpiece relative to each other using two or more drive axes. A first coordinate system, which is the coordinate system of the NC machine tool, and a second coordinate system, which is the coordinate system of the robot 60, are mutually different coordinate systems. The machine tool 70, the other machine tools 72 to 74, and the robot 60 are controlled using an orthogonal coordinate system, and move the tool, workpiece, or robot hand 61, for example, in three-axis directions. The robot 60 is equipped with rotation axes, and can rotate joints, which are multiple rotation axes, in response to commands in the orthogonal coordinate system to move the robot hand 61 in a linear direction.
[0026] Fig. 2 is a diagram showing an example of the configuration of a numerical control device 1 according to the first embodiment. The numerical control device 1 has a control calculation unit 2, an input operation unit 3, a display unit 4, and a PLC operation unit 5 such as a machine operation panel for operating a PLC (Programmable Logic Controller) 36. Fig. 2 shows the numerical control device 1, as well as a machine tool 70, a robot controller 50, a robot 60, a traveling axis 62, and other machine tools 72 to 74.
[0027] Machine tool 70 and other machine tools 72 to 74 are equipped with a drive unit 90 that drives the tool and the workpiece. An example of drive unit 90 is a drive mechanism that drives the tool while rotating the workpiece. In the first embodiment, the tool is driven in two directions, for example, a direction parallel to the X-axis direction and a direction parallel to the Z-axis direction. Note that the axial direction depends on the device configuration, and is not limited to the above directions.
[0028] The drive unit 90 has servo motors 901, 902 that move the tool in each axial direction defined on the numerical control device 1, and detectors 97, 98 that detect the position and speed of the servo motors 901, 902. The detector 97 outputs a signal indicative of the detection results of the position and speed of the servo motor 901. The detector 98 outputs a signal indicative of the detection results of the position and speed of the servo motor 902. The drive unit 90 has servo control units 91, 92 for each axial direction that control the servo motors 901, 902 based on commands from the numerical control device 1. The servo control units 91, 92 perform feedback control of the servo motors 901, 902 based on signals from the detectors 97, 98.
[0029] The servo control unit 91 controls the operation of the tool in the X-axis direction by controlling the servo motor 901. The servo control unit 92 controls the operation of the tool in the Z-axis direction by controlling the servo motor 902.
[0030] The drive unit 90 also has a spindle motor 911 that rotates a spindle for rotating the workpiece, and a detector 99 that detects the position and rotation speed of the spindle motor 911. The rotation speed is the number of rotations per unit time. The rotation speed detected by the detector 99 corresponds to the rotation speed of the spindle motor 911. The spindle control unit 190 controls the rotation of the spindle by controlling the spindle motor 911.
[0031] As described above, the input operation unit 3 includes input means for inputting information to the control operation unit 2. The input operation unit 3 accepts commands from an operator to the numerical control device 1. The input operation unit 3 also accepts NC programs, parameters, etc. The display unit 4 is composed of display means such as a liquid crystal display device, and displays information processed by the control operation unit 2 on a screen. An example of the display unit 4 is a liquid crystal touch panel. In this case, some of the functions of the input operation unit 3 are arranged on the display unit 4.
[0032] Control and calculation unit 2, which is a control unit, controls machine tool 70, robot 60, and traveling axis 62 using an NC program defined in the coordinate system of machine tool 70. Control and calculation unit 2 has a screen processing unit 31, an input control unit 32, a memory unit 34, a control signal processing unit 35, a PLC 36, an analysis processing unit 37, an interpolation processing unit 38, a coordinate system offset measurement processing unit 80 as a measurement processing unit, a coordinate system offset reflection processing unit 81 as a reflection processing unit, an external communication unit 40, and a robot control unit 41. Note that PLC 36 may be arranged outside control and calculation unit 2.
[0033] The storage unit 34 is a device for storing data, such as a non-volatile memory or a hard disk. The storage unit 34 stores an NC program storage area 341 in which an NC program is stored, a machine tool command code list 342, and a robot command code list 343. The storage unit 34 has a coordinate system offset table 344, a measurement macro 350, and a shared area 345, which will be described later.
[0034] The NC program storage area 341 stores a program for machining by the machine tool 70 and a program for controlling the robot 60 and the traveling axis 62 .
[0035] The machine tool command code list 342 is a list of codes used to issue commands to the machine tool 70. The robot command code list 343 is a list of codes used to issue commands to the robot 60.
[0036] The input control unit 32 receives information input from the input operation unit 3 and stores, for example, a machining program in the NC program storage area 341 of the storage unit 34 .
[0037] The screen processing unit 31 controls the display of, for example, a machining program stored in the NC program storage area 341 on the display unit 4. In addition, the screen processing unit 31 processes displays used in the user interface, such as information on the axis positions of the machine tool 70, setting information for the machine tool 70, and graphic displays related to machining.
[0038] The control signal processing unit 35 is connected to the PLC 36. The PLC 36 outputs signal information from relays and the like that operate the machine tool 70 to the control signal processing unit 35. The control signal processing unit 35 receives signal information from the PLC 36 and writes the received signal information in the shared area 345. The interpolation processing unit 38 refers to the signal information from the PLC 36 during machining operation. Furthermore, when an auxiliary command is output to the shared area 345 by the analysis processing unit 37, the control signal processing unit 35 reads this auxiliary command from the shared area 345 and sends it to the PLC 36. The auxiliary command is a command other than a command to operate a drive axis, which is a numerically controlled axis. An example of an auxiliary command is an M code or a T code.
[0039] The external communication unit 40 is, for example, a communication part of an industrial network. When an auxiliary command is issued to start up the other machine tools 72 to 74, the external communication unit 40 sends the command to the other machine tools 72 to 74 via the industrial network.
[0040] In the control calculation unit 2, the control signal processing unit 35, analysis processing unit 37, interpolation processing unit 38, robot control unit 41, coordinate system offset measurement processing unit 80, and coordinate system offset reflection processing unit 81 are connected via the storage unit 34, and information is written to and read from the control signal processing unit 35, analysis processing unit 37, interpolation processing unit 38, robot control unit 41, coordinate system offset measurement processing unit 80, and coordinate system offset reflection processing unit 81. Hereinafter, when describing the writing and reading of information between the control signal processing unit 35, analysis processing unit 37, interpolation processing unit 38, robot control unit 41, coordinate system offset measurement processing unit 80, and coordinate system offset reflection processing unit 81, the mention of the use of the storage unit 34 may be omitted.
[0041] The analysis processing unit 37 reads the NC program from the NC program storage area 341 and performs an analysis process on each block of the NC program, i.e., each line of the NC program. If the analyzed line includes a G-code for the machine tool 70, the analysis processing unit 37 sends the analysis result to the interpolation processing unit 38 via the shared area 345. Specifically, the analysis processing unit 37 generates movement conditions corresponding to the G-code and sends them to the interpolation processing unit 38. The analysis processing unit 37 also sends the spindle rotation speed specified by the S-code to the interpolation processing unit 38. The spindle rotation speed is the number of rotations of the spindle per unit time.
[0042] The analysis processing unit 37 has a robot command analysis unit 371. The robot command analysis unit 371 is a means for analyzing the operations of the connected robot 60 and traveling axis 62. The robot command analysis unit 371 analyzes the robot commands and traveling axis commands included in the NC program and sends the analysis results to the robot control unit 41.
[0043] The robot control unit 41 transmits commands to the robot 60 and commands to the traveling axis 62 to the robot controller 50 .
[0044] The robot control unit 41 has a program conversion unit 414. The program conversion unit 414 generates a robot program used to control the robot 60 by converting a second command defined in the coordinate system of the machine tool 70 into a third command defined in the coordinate system of the robot 60, using a coordinate system offset 346 stored in the coordinate system offset table 344 of the storage unit 34. The coordinate system offset 346 is a coordinate value that indicates the relationship between the coordinate system of the machine tool 70 and the coordinate system of the robot.
[0045] Robot 60 is used not only to carry in and out workpieces and the like to and from machine tool 70, but also to carry in and out workpieces and the like to and from other machine tools 72 to 74. Therefore, coordinate system offsets 346 are stored in coordinate system offset table 344 of storage unit 34 for each of the machine tools.
[0046] FIG. 3 is a diagram showing an example of measuring a coordinate system offset using a touch probe in the numerical control device 1 according to the first embodiment. As shown in FIG. 3 , the coordinate system offset 346 is measured using a sensor such as a touch probe 65 attached to the robot hand 61 of the robot 60. To measure the coordinate system offset 346 using the touch probe 65, the touch probe 65 is attached to the tip of the robot hand 61, and a movement command for the robot hand 61 is sent from the numerical control device 1 to the robot controller 50, thereby pressing the touch probe 65 against a table 71 of a machine tool 70, for example. When pressed, a detection signal from the touch probe 65 is input to the numerical control device 1, and coordinate values in the numerical control device 1 at that time are acquired. By measuring the coordinate values P1, P2, and P3 of three points, the coordinate origin of the machine tool table is calculated, and the coordinate system offset 346 is calculated. When acquiring the coordinate values, at least three points are measured, and nine points are measured if tilt is taken into consideration.
[0047] Next, a method for measuring coordinate system offsets 346 for multiple machine tools will be described. Measurement of coordinate system offsets 346 is performed once when a factory line is set up. In the first embodiment, coordinate system offsets 346 are measured for machine tool 70 and other machine tools 72 to 74.
[0048] In order to measure multiple coordinate system offsets 346 for the machine tool 70 and other machine tools 72 to 74, which are the multiple machine tools to be controlled, the control calculation unit 2 of the numerical control device 1 has a coordinate system offset measurement processing unit 80 and a measurement macro 350, and the memory unit 34 has a coordinate system offset table 344 that includes a measurement start coordinate 348, which is the measurement start position, and a stop position 349.
[0049] Stop position 349 is the stopping position of robot 60 on traveling axis 62 when carrying in and out workpieces to and from machine tool 70 and other machine tools 72 to 74. Stop positions 349 are stored in memory unit 34 for the number of machine tools. Stop positions 349 are determined by the positions of machine tool 70 and other machine tools 72 to 74 on traveling axis 62, and are therefore set by the line designer when the layout of machine tool 70 and other machine tools 72 to 74 on the factory line is decided.
[0050] 4 is a diagram showing an example of a coordinate system offset table 344 stored by the numerical control device 1 according to the first embodiment. In FIG. 4, machine number "1" corresponds to machine tool 70, machine number "2" corresponds to other machine tool 72, machine number "3" corresponds to other machine tool 73, and machine number "4" corresponds to other machine tool 74. The contents stored in coordinate system offset table 344 include a stop position 349, a measurement start coordinate 348, and a coordinate system offset 346. The coordinate system offset table 344 stores the machine number, the stop position 349, the measurement start coordinate 348, and the coordinate system offset 346 in association with each other. The coordinate system offset table 344 functions as an association unit that associates the coordinate system offset 346, together with the stop position 349 and the measurement start coordinate 348, with machine tool 70 and other machine tools 72 to 74. As the stop position 349, for example, the position of the machine tool 70 is 0, the position of the other machine tool 72 is 500, the position of the other machine tool 73 is 1000, and the position of the other machine tool 74 is 1500. The units depend on the settings of the numerical control device 1.
[0051] The measurement start coordinate 348 is the starting point for starting the measurement macro 350, and must be set so that the touch probe 65 of the robot hand 61 can start near the table of each machine tool. The measurement start coordinate 348 is determined based on the relationship between the position of the robot 60 and the positions of the tables of the machine tool 70 and the other machine tools 72-74. However, because the table positions differ for the machine tool 70 and the other machine tools 72-74, a value must be set for each of the machine tool 70 and the other machine tools 72-74. The setting method is, for example, to set the coordinates based on the results of a simulation when the layout of the machine tool 70 and the other machine tools 72-74 on the factory line is determined by simulation. Alternatively, after actual installation, the robot 60 can be manually moved, for example, by a handle, until the robot hand 61 is positioned above the table, and the coordinate values can be stored. 4, for example, measurement start coordinates 348 are (X, Y, Z) = (500, 500, 500) for machine tool 70 with machine number "1," and (X, Y, Z) = (510, 520, 515) for another machine tool 72 with machine number "2." Measurement start coordinates 348 are also stored in association with machine number and stop position 349.
[0052] The measurement macro 350 is a program that operates the touch probe 65 attached to the robot 60. By executing the measurement macro 350, the robot 60 performs an operation of measuring the coordinate system offset 346.
[0053] The coordinate system offset measurement processing unit 80 controls the operation of measuring the coordinate system offset 346. The coordinate system offset measurement processing unit 80 is executed, for example, when an operator, after replacing the tool of the robot hand 61 with the touch probe 65, inputs a machine number corresponding to one machine tool or "ALL" specifying all machine tools into the display unit 4 and then presses the measurement start button displayed on the display unit 4. When the measurement start button is pressed after inputting "1", which is the machine number corresponding to one machine tool, the coordinate system offset 346 of the machine tool 70 corresponding to machine number "1" is measured. When the measurement start button is pressed after inputting "ALL" specifying all machine tools, the coordinate system offsets 346 of the machine tool 70 corresponding to machine number "1" to the other machine tool 74 corresponding to machine number "4" are measured in sequence.
[0054] For example, measurement of the coordinate system offset 346 of machine tool 70 with machine number "1" is performed as follows. When the measurement start button is pressed after inputting input information "1," screen processing unit 31 stores the input information "1" in shared area 345 of memory unit 34. Analysis processing unit 37 reads data including stop position 349 and measurement start coordinates 348 of machine tool 70 with machine number "1" corresponding to the input information "1" stored in shared area 345 from coordinate system offset table 344, stores the data in shared area 345, and notifies coordinate system offset measurement processing unit 80 of the storage address of the data in shared area 345 and a control start instruction. When coordinate system offset measurement processing unit 80 is instructed to start control by analysis processing unit 37, it outputs a screen display to display unit 4 confirming whether or not the touch probe 65 has been replaced, and when it is confirmed that the replacement has been completed, it obtains stop position 349 and measurement start coordinates 348 of machine tool 70 with machine number "1" from shared area 345.
[0055] The coordinate system offset measurement processing unit 80 sends a command to the robot controller 50 to the traveling axis 62 to move the robot 60 to position "0", which is the stop position 349 of the machine tool 70 corresponding to machine number "1", and operates the traveling axis 62. The coordinate system offset measurement processing unit 80 sends a command to the robot controller 50 to move the robot hand 61 to measurement start coordinates 348 of the machine tool 70 corresponding to machine number "1", and operates the robot 60. Next, the coordinate system offset measurement processing unit 80 measures the coordinate system offset value of the machine tool 70 corresponding to machine number "1" using the measurement macro 350. The coordinate system offset measurement processing unit 80 saves the measured coordinate system offset value of the machine tool 70 corresponding to machine number "1" in the coordinate system offset 346 of machine number "1" in the coordinate system offset table 344 of the storage unit 34. During this saving, the measured coordinate system offset 346 is stored in association with the stop position 349. The coordinate system offset values of the other machine tools 72 to 74 corresponding to machine numbers "2" to "4" are determined in the same manner. The measured coordinate system offset values of the other machine tools 72 to 74 are then stored in association with the stop positions 349 of the other machine tools 72 to 74.
[0056] Next, a method of automatically controlling the robot 60 by taking into account the relative relationship after the robot 60 is moved by the traveling axis 62 when a movement command to move the robot 60 to the front of a specific machine tool will be described.
[0057] Fig. 5 is a diagram showing an example of a machining program executed by the numerical control device 1 according to the first embodiment. Fig. 5 shows an example of a machining program including G-codes, which are commands to the machine tool 70 or the robot 60. The G-code commands in the lines of block N2 of the machining program are commands that reflect the movement and offset of the robot 60.
[0058] The analysis processing unit 37 analyzes G1500 in block N2 and determines from the robot command code list 343 that the robot command is a robot movement and coordinate system offset reflection command, and the coordinate system offset reflection processing unit 81 begins processing. The coordinate system offset reflection processing unit 81 analyzes the address following the G code and sends a command to the robot controller 50. The X address indicates the movement of the traveling axis 62, X500 indicates the stop position of the traveling axis 62 after movement, RF300 indicates the movement speed of the traveling axis 62, and Q0 indicates that the coordinate system offset 346 will not be measured after movement. The analysis processing unit 37 analyzes this command and operates the traveling axis 62 to move the robot 60 to position "500" at a speed of "300". If there is a Q0 command, the coordinate system offset 346 will not be remeasured. Therefore, for commands to the robot 60 from block N3 onwards, the control calculation unit 2 issues commands to the robot controller 50 to automatically reflect, as offsets for the robot 60, X30, Y17, Z100, which are coordinate system offsets 346 associated with the stop position "500" in the coordinate system offset table 344 shown in Figure 4. This operation is called coordinate system offset reflection processing.
[0059] If the X value of the X address does not exist as data in the stop position 349 of the coordinate system offset table 344, the command is for a position where there is no machine tool, and therefore the coordinate system offset reflection process described above is not performed. In this case, the coordinate system offset reflection processor 81 may output an error. Alternatively, the coordinate system offset reflection processor 81 may move to the commanded stop position but not reflect the coordinate system offset 346.
[0060] Reflection of the coordinate system offset 346 is a modal function, and unless there is a G-code that reflects or cancels the next coordinate system offset 346, the next command to the robot 60 will take the coordinate system offset 346 into consideration and be sent to the robot controller 50. For example, for the command to the robot 60 in block N3, the operator can create a program that specifies the movement position of the robot hand 61 in the coordinate system of the machine tool. In other words, from block N2 onwards, the operator creating the machining program does not need to create a program that takes into account the difference between the coordinate system of the machine tool and the coordinate system of the robot.
[0061] Next, a control method will be described in which, when a movement command is given to the robot 60 to move in front of a specific machine tool, the coordinate system offset 346 is re-measured and the relative relationship is automatically taken into account after the robot 60 is moved by the traveling axis 62. As a result, even if the coordinate system offset 346 has changed due to a physical misalignment of the lane of the traveling axis 62, by re-measuring the coordinate system offset 346 before the robot 60 performs work, it is possible to achieve highly accurate robot work on the machine tool.
[0062] The M code in block N4 is an auxiliary command, which commands the robot 60 to replace the tip of the robot hand 61 with a touch probe 65. FIG. 6 is a diagram showing an example of a tool replacement method for the robot 60 according to the first embodiment. Replacement with the touch probe 65 may be performed, for example, when a machining tool 64 is attached to the tip of the robot hand 61 and a touch probe 65 is arranged on the opposite side, as shown in FIG. 6. In such a case, for example, the M code auxiliary command can be used to rotate the rotation axis of the tip of the robot hand 61 by 180 degrees, thereby enabling tool replacement with the touch probe 65.
[0063] The method of replacing with the touch probe 65 is not limited to this. For example, it is also possible to install an autochanger on a platform that moves on the traveling axis physically at the same time as the robot hand 61, and move the robot hand 61 to the replacement position on the autochanger to replace it.
[0064] As described above, G1500 in block N5 indicates the movement of the traveling axis 62, X1000 indicates the stop position 349 after the traveling axis 62 has moved, RF600 indicates the moving speed of the traveling axis 62, and Q1 indicates that the coordinate system offset 346 after the movement has been measured. The analysis processing unit 37 analyzes this command, drives the traveling axis 62, and moves the robot 60 to the position "1000" at a speed of "600". When the Q1 command is received, the coordinate system offset measurement processing unit 80 processes the coordinate system offset 346 again, and remeasures the coordinate system offset 346 using the method for measuring the coordinate system offset 346 described above. The remeasured coordinate system offset 346 is reflected in the coordinate system offset table 344. The command to the robot 60 at the transition to block N6 is the coordinate system offset 346 associated with the stop position "1000", and a coordinate system offset reflection process is executed in which the control calculation unit 2 issues a command to the robot controller 50 to automatically reflect the re-measured coordinate system offset 346 as the offset of the robot 60 and operate accordingly.
[0065] In this way, by using the remeasured coordinate system offset 346, robot operations on the machine tool can be performed with high precision.
[0066] Next, a description will be given of the processing performed by the coordinate system offset measurement processing unit 80 for realizing the above-mentioned functions. Fig. 7 is a flowchart showing the operation procedure of the coordinate system offset measurement processing unit 80 of the numerical control device 1 according to the first embodiment.
[0067] In step S500, a message is displayed on the display unit 4, prompting the operator to confirm whether the tip of the robot hand 61 has been replaced with a touch probe 65. If the tip has not been replaced (step S500: No), an error is output (step S511), and the process is terminated. If the tip has been replaced (step S500: Yes), in step S501, the machine number of the measurement target entered by the operator is obtained from the shared area 345. In step S503, a movement command for the travel axis 62 to move the robot 60 to the stop position 349 associated with the machine number is sent to the robot controller 50, thereby moving the robot 60 to the stop position 349. Next, in step S504, a movement command for moving the robot hand 61 to the measurement start coordinates 348 associated with the machine number is sent to the robot controller 50, thereby moving the robot hand 61 to the measurement start coordinates 348.
[0068] Next, in step S505, a macro program is executed to measure the coordinate system offset 346. Next, in step S506, the measured coordinate system offset 346 is stored in the coordinate system offset table 344 in association with the machine number and the stop position 349. While there is a machine tool to be measured, the processes of steps S503 to S506 are repeatedly executed (step S507). Finally, in step S508, a message instructing the touch probe 65 to be returned to the original tool is displayed on the display unit 4, and the process ends.
[0069] Next, a description will be given of the processing of the coordinate system offset reflection processing unit 81. Fig. 8 is a flowchart showing the operation procedure of the coordinate system offset reflection processing unit 81 of the numerical control device 1 according to the first embodiment.
[0070] In step S600, the X address following the G code in the machining program is analyzed, and the address value is stored in a temporary memory. In step S601, it is determined whether the address value stored in the temporary memory exists as data at the stop position 349 in the coordinate system offset table 344. If the X address is not at the stop position 349 (step S601: No), an error is output in step S610, and the process ends. If the X address is at the stop position (step S601: Yes), the RF address is analyzed in step S602, and the analyzed value is stored in a temporary memory. In step S603, a command to move the traveling axis 62 at the stop position 349 and at the movement speed stored in the temporary memory is sent to the robot controller 50.
[0071] Next, in step S604, the Q address is analyzed. If the Q address is 0 (step S604: No), the process ends. If the Q address is 1 (step S604: Yes), in step S605, the robot 60 is moved to the measurement start coordinate 348 associated with the stop position 349, in step S606 the measurement macro 350 is executed, and in step S607 the remeasured measurement value is stored in the coordinate system offset 346 of the coordinate system offset table 344.
[0072] Thus, according to the first embodiment, the numerical control device 1 stores the stop position 349, measurement start coordinate 348, and coordinate system offset 346 for the machine tool 70 and the other machine tools 72 to 74 in memory unit 34 in association with the machine tool 70 and the other machine tools 72 to 74, and the coordinate system offset measurement processing unit 80 measures the coordinate system offset 346 for the machine tool 70 and the other machine tools 72 to 74 using the stop position 349 and measurement start coordinate 348 stored in memory unit 34 and stores it in memory unit 34, and when the coordinate system offset reflection processing unit 81 executes the machining program, the coordinate system offset 346 stored in memory unit 34 is reflected to control the robot 60, thereby enabling an operator to easily create a machining program for controlling a plurality of machine tools and robots.
[0073] Embodiment 2 In Embodiment 2, a configuration is adopted in which multiple machine tools acquire control of one self-propelled robot 161. In Embodiment 2, the machine tool that has acquired control moves self-propelled robot 161 to the measurement start position of the machine tool that has acquired control, and measures and reflects coordinate system offset 346, thereby enabling the loading and unloading and processing of workpieces to be performed with high precision.
[0074] Fig. 9 is a diagram showing an example of the configuration of a control system including a numerical control device according to the second embodiment. The control system shown in Fig. 9 includes a plurality of machine tools 170, 172 to 174, a self-propelled robot 161, and a wireless LAN router 180. Machine tool 70 corresponds to a first machine tool, and machine tool 172 corresponds to a second machine tool. A numerical control device 1X shown in Fig. 10 is disposed in machine tool 170, and machine tool 170 is controlled by numerical control device 1X. Machine tools 172 to 174 are each controlled by a plurality of other numerical control devices (not shown) different from numerical control device 1X.
[0075] Self-propelled robot 161 includes robot 60, self-propelled device 63, and robot controller 55. Self-propelled robot 161 is an automatic guided vehicle (AGV) in which robot 60 and robot controller 55 are self-propelled by self-propelled device 63. Self-propelled robot 161 has a memory and control device within self-propelled device 63, and travels around multiple machine tools 170, 172-174 by self-propelling along a stored travel route. Robot controller 55 has a wireless LAN communication function and communicates wirelessly with machine tools 170, 172-174 via wireless LAN router 180.
[0076] Machine tools 170, 172 to 174 can communicate with each other via wireless LAN router 180. Machine tools 170, 172 to 174 and robot controller 55 can also communicate with each other via wireless LAN router 180. Machine tools 170, 172 to 174 send commands to robot controller 55 via wireless LAN to control self-propelled robot 161, thereby carrying in and out workpieces to machine tools 170, 172 to 174, or performing processing using a cutting tool attached to robot hand 61.
[0077] The following method, for example, is used to assign control of self-propelled robot 161. Of machine tools 170, 172-174, machine tools 170, 172-174 that have received approach information indicating the approach of self-propelled robot 161 from self-propelled device 63 of self-propelled robot 161 via wireless LAN communication and that are in a state where self-propelled robot 161 can be used are granted control of self-propelled robot 161. The approach information is obtained using a distance measuring sensor that can determine the distance to the measurement target. For example, self-propelled robot 161 and machine tools 170, 172-174 are equipped with short-range wireless communication (e.g., Bluetooth) devices, and machine tools 170, 172-174 determine the approach of self-propelled robot 161 and acquire control.
[0078] This is not a limitation on the method for determining control of self-propelled robot 161. For example, a controller capable of communicating via wireless LAN may be provided separately from self-propelled robot 161 and machine tools 170, 172-174, and this controller may determine whether self-propelled robot 161 is approaching machine tools 170, 172-174, and may control the activation of self-propelled robot 161 and machine tools 170, 172-174 based on the results of this determination.
[0079] FIG. 10 is a diagram showing an example of the configuration of a numerical control device 1X according to the second embodiment. The numerical control device 1X of the second embodiment is obtained by adding a wireless communication unit 401 to the numerical control device 1 of the first embodiment. Furthermore, the numerical control device 1X of the second embodiment does not have the coordinate system offset measurement processing unit 80 of the numerical control device 1 of the first embodiment, and the coordinate system offset table 344 in which the stop position 349, measurement start coordinate 348, and coordinate system offset 346 for the other machine tools 72 to 74 are stored. Furthermore, in the numerical control device 1X of the second embodiment, the stop position 349 for its own machine tool 70 is not stored in the storage unit 34. The other configuration is the same as in the first embodiment, and therefore, repeated explanations will be omitted.
[0080] The wireless communication unit 401 is a processing unit that realizes wireless LAN communication, and processes communication between the robot control unit 41 and the robot controller 55. In addition, the external communication unit 40 communicates with the industrial network via the wireless communication unit 401.
[0081] Furthermore, in the second embodiment, each of machine tools 170, 172 to 174 stores measurement start coordinates 348 and coordinate system offset 346 for its own machine tool 170, 172 to 174 in storage unit 34. Measurement start coordinates 348 are stored, for example, as in the first embodiment, based on a simulation performed at the time of designing a factory line or based on a manual operation.
[0082] Next, a method will be described in which a machine tool that has acquired control of self-running robot 161 measures coordinate system offset 346 and controls self-running robot 161 taking the measured coordinate system offset 346 into consideration.
[0083] The numerical control device of the machine tool that self-propelled robot 161 has approached acquires approach information via the wireless LAN communication function and wireless communication unit 401 of robot controller 55 of self-propelled robot 161. The numerical control device receives the approach information and stores the information in shared area 345 of memory unit 34.
[0084] A robot control authority wait command is written by the operator in the machining program executed by each machine tool 170, 172 to 174, and the machining program including the robot control authority wait command is executed. Fig. 11 is a diagram showing an example of a machining program executed by the numerical control device 1X according to the second embodiment. G1501 in block N2 corresponds to the robot control authority wait command. When the robot control authority wait command is analyzed by the analysis processing unit 37, the coordinate system offset reflection processing unit 81, which serves as a reflection processing unit, causes the machine tool to enter a robot control authority wait state.
[0085] When coordinate system offset reflection processing unit 81 acquires approach information, which is robot control right, from shared area 345, it first sends a command to robot controller 55 to replace the tool of robot hand 61 with touch probe 65. This replaces the tool with robot hand 61. Next, coordinate system offset reflection processing unit 81 moves self-propelled robot 161 to measurement start coordinates 348 stored in memory unit 34, and then measures coordinate system offset 346 using measurement macro 350 and saves the measured coordinate system offset 346 in memory unit 34.
[0086] When measurement of coordinate system offset 346 is completed, the state of waiting for control authority is released. Next, the robot command written in block N23 is executed, and loading / unloading by self-propelled robot 161 or processing by robot hand 61 is performed. In block N23, M23 is executed, and the tool is replaced with a tool that grips the workpiece, and in block N24, G1000 is executed, and workpiece loading is performed. During the workpiece loading operation in block N24, correction is made using coordinate system offset 346 stored in memory unit 34, and the workpiece loading operation is performed.
[0087] Block N25, which is the next block in the work program for self-propelled robot 161, describes control right release auxiliary command G1502. If a control right release auxiliary command is present, a command to release control right is sent to robot controller 55 via control signal processing unit 35, external communication unit 40, and wireless communication unit 401. When robot controller 55 receives the command to release control right, it transitions self-propelled robot 161 to patrol operation and moves to the next machine tool.
[0088] 12 is a flowchart showing the operation procedure of the coordinate system offset reflection processing unit 81 of the numerical control device 1X according to the second embodiment. The processing of the coordinate system offset reflection processing unit will be described with reference to FIG.
[0089] In step S700, the coordinate system offset reflection processing unit 81 determines whether or not it has robot control authority. If it does not have robot control authority (step S700: No), the process enters a waiting state, and the coordinate system offset reflection processing unit 81 checks again in step S700 whether or not it has robot control authority. If it has robot control authority (step S700: Yes), the coordinate system offset reflection processing unit 81 sends a command to the robot controller to replace the tool with the touch probe 65, which is the measurement tool, in step S702. After the replacement with the measurement tool is complete, the coordinate system offset reflection processing unit 81 moves the self-propelled robot 161 to the measurement start coordinates 348 in step S703, executes the measurement macro 350 to measure the coordinate system offset 346 in step S704, and stores the coordinate system offset 346 in the memory unit 34 in step S705.
[0090] In this way, in embodiment 2, the numerical control device of the machine tool that has acquired robot control rights controls self-propelled robot 161, measures the coordinate system offset, and then performs loading and unloading operations that reflect the coordinate system offset.Therefore, even if self-propelled robot 161 does not have high precision in its positioning relative to the machine tool, it is possible to achieve cooperative work between machine tool 170 and self-propelled robot 161 with higher precision.
[0091] Furthermore, in the second embodiment, measurement start coordinates 348 are set in advance for each machine tool, but this is determined by the arrangement of self-propelled robot 161 and the table. Therefore, if there are multiple machine tools of the same model, a common value for measurement start coordinates 348 may be set. For example, when setting measurement start coordinates 348 in a simulation, if it is determined that the machine tools are of the same model, the same value can be set as measurement start coordinates 348, which can save the effort of setting it up.
[0092] Next, hardware for realizing the control and calculation unit 2 according to the first and second embodiments will be described. The control and calculation unit 2 is realized by a processing circuit. When the processing circuit is realized by software, the processing circuit is, for example, a control circuit shown in FIG. 13. FIG. 13 is a block diagram showing an example configuration of the control and calculation unit 2 of the numerical control device 1, 1X according to the first and second embodiments. The control circuit 200 includes an input unit 201, a processor 202, a memory 203, and an output unit 204. The input unit 201 is an interface circuit that receives data input from outside the control circuit 200 and provides it to the processor 202. The output unit 204 is an interface circuit that sends data from the processor 202 or the memory 203 to outside the control circuit 200.
[0093] The control and calculation unit 2 is realized by software, firmware, or a combination of software and firmware. The software or firmware is written as a program and stored in the memory 203. In the processing circuit, each function is realized by the processor 202 reading and executing the program stored in the memory 203. In other words, the processing circuit includes the memory 203 for storing the program that will execute the processing of the control and calculation unit 2. It can also be said that these programs cause a computer to execute the procedures and methods of the control and calculation unit 2.
[0094] The processor 202 is a CPU (also referred to as a central processing unit, processing unit, arithmetic unit, microprocessor, microcomputer, processor, or DSP (digital signal processor)). The memory 203 is, for example, a non-volatile or volatile semiconductor memory such as a RAM (random access memory), a ROM (read only memory), a flash memory, an EPROM (erasable programmable read only memory), or an EEPROM (registered trademark) (electrically erasable programmable read only memory), a magnetic disk, a flexible disk, an optical disk, a compact disk, a mini disk, or a DVD (digital versatile disk).
[0095] The configurations shown in the above embodiments are examples of the contents of the present disclosure, and may be combined with other known technologies, and parts of the configurations may be omitted or modified within the scope of the gist of the present disclosure.
[0096] 1, 1X numerical control device, 2 control calculation unit, 3 input operation unit, 4 display unit, 5 PLC operation unit, 6 CNC unit, 31 screen processing unit, 32 input control unit, 34 memory unit, 35 control signal processing unit, 36 PLC, 37 analysis processing unit, 38 interpolation processing unit, 40 external communication unit, 41 robot control unit, 50, 55 robot controller, 51 input / output unit, 52 emergency stop button, 53 operation panel, 60 robot, 61 robot hand, 62 traveling axis, 63 self-propelled device, 64 machining tool, 65 touch probe, 70, 170 machine tool, 71 table, 72 to 74, 172 to 174 other machine tools, 80 coordinate system offset measurement processing unit, 81 coordinate system offset reflection processing unit, 90 drive unit, 91, 92 servo control unit, 97, 98, 99 detector, 100 control system, 161 Self-propelled robot, 180 wireless LAN router, 190 spindle control unit, 200 control circuit, 201 input unit, 202 processor, 203 memory, 204 output unit, 341 NC program storage area, 342 machine tool command code list, 343 robot command code list, 344 coordinate system offset table, 345 shared area, 346 coordinate system offset, 348 measurement start coordinate, 349 stop position, 350 measurement macro, 371 robot command analysis unit, 401 wireless communication unit, 414 program conversion unit, 901, 902 servo motor, 911 spindle motor.
Claims
1. A numerical control device that controls a plurality of machine tools and a robot that performs work on the plurality of machine tools, comprising: a measurement processing unit that measures the coordinate system offset of each machine tool using the stopping position of the robot on each machine tool when performing the work and a measurement start position which is the position at which to start measuring the coordinate system offset which indicates the relationship between the coordinate system of each machine tool and the coordinate system of the robot; an association unit that associates the coordinate system offset measured by the measurement processing unit with each machine tool, together with the stopping position and the measurement start position; and a reflection processing unit that controls the robot by reflecting the associated coordinate system offset when executing a machining program.
2. A numerical control device according to claim 1, characterized in that the associating unit has a coordinate system offset table which associates the stop position, the measurement start position, and the coordinate system offset with each machine tool.
3. The numerical control device according to claim 2, characterized in that the measurement processing unit associates the coordinate system offset with the stop position and stores it in the coordinate system offset table, and the reflection processing unit reads out the coordinate system offset associated with the stop position in the machining program from the coordinate system offset table and controls the robot by reflecting the read coordinate system offset.
4. A numerical control device as described in any one of claims 1 to 3, characterized in that the machining program includes an instruction indicating whether or not to measure the coordinate system offset, and the measurement processing unit determines whether or not to remeasure the coordinate system offset of the machine tool depending on the content of the instruction.
5. A numerical control device comprising: a robot that circulates around a plurality of machine tools including a first machine tool and a second machine tool to perform work on the plurality of machine tools; and a numerical control device that controls the first machine tool, the numerical control device comprising: a reflection processing unit that, when executing a machining program for performing machining operations on the first machine tool, determines whether it has control over the robot; and, when it has control over the robot, measures the coordinate system offset of the first machine tool using a measurement start position which is the position for starting a measurement operation of a coordinate system offset indicating the relationship between the coordinate system of the first machine tool and the coordinate system of the robot; and controls the robot by reflecting the measured coordinate system offset.
6. A numerical control device as described in claim 5, characterized in that when the second machine tool is the same model as the first machine tool, the measurement start position is the same value as the measurement start position set for the second machine tool.
7. A numerical control method for controlling a plurality of machine tools and a robot that performs work on the plurality of machine tools, comprising: a measurement step for measuring the coordinate system offset of each machine tool using the stopping position of the robot on each machine tool when performing the work and a measurement start position which is the position for starting a measurement operation of a coordinate system offset indicating the relationship between the coordinate system of each machine tool and the coordinate system of the robot; an association step for associating the coordinate system offset measured by the measurement step with each machine tool together with the stopping position and the measurement start position; and a reflection processing step for controlling the robot by reflecting the associated coordinate system offset when executing a machining program.
8. A numerical control method for controlling a robot that circulates around a plurality of machine tools including a first machine tool and a second machine tool to perform work on the plurality of machine tools, and the first machine tool, comprising the steps of: determining whether control of the robot is available when executing a machining program for performing machining operations on the first machine tool; and, if control of the robot is available, measuring the coordinate system offset of the first machine tool using a measurement start position which is a position for starting a measurement operation of a coordinate system offset indicating the relationship between the coordinate system of the first machine tool and the coordinate system of the robot; and controlling the robot by reflecting the measured coordinate system offset.
Citation Information
Patent Citations
Device and method for proofreading structure parameter
JP2000293213A
Articulated robot and its controlling method
JP2001138279A
Control device for feed drive system
JP2005196488A
