WO2020144772A1 - 数値制御装置および数値制御方法 - Google Patents

数値制御装置および数値制御方法 Download PDF

Info

Publication number
WO2020144772A1
WO2020144772A1 PCT/JP2019/000389 JP2019000389W WO2020144772A1 WO 2020144772 A1 WO2020144772 A1 WO 2020144772A1 JP 2019000389 W JP2019000389 W JP 2019000389W WO 2020144772 A1 WO2020144772 A1 WO 2020144772A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
command
unit
program
machine tool
Prior art date
Application number
PCT/JP2019/000389
Other languages
English (en)
French (fr)
Inventor
正一 嵯峨▲崎▼
健輔 馬場
崇 末田
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=69568126&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2020144772(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to DE112019006613.7T priority Critical patent/DE112019006613T5/de
Priority to US17/417,766 priority patent/US20220011754A1/en
Priority to CN201980087690.XA priority patent/CN113260931B/zh
Priority to JP2019554952A priority patent/JP6647472B1/ja
Priority to PCT/JP2019/000389 priority patent/WO2020144772A1/ja
Publication of WO2020144772A1 publication Critical patent/WO2020144772A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41815Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
    • G05B19/41825Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell machine tools and manipulators only, machining centre
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1658Programme controls characterised by programming, planning systems for manipulators characterised by programming language
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • G05B19/41835Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM] characterised by programme execution
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/408Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by data handling or data format, e.g. reading, buffering or conversion of data
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/36Nc in input of data, input key till input tape
    • G05B2219/36242Convert program for different machines with different M-code, G-code, header
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Definitions

  • the present invention relates to a numerical control device and a numerical control method for controlling a robot and a machine tool.
  • One of the numerical control devices is a control device that executes control of a machine tool that processes a workpiece and control of a robot that conveys the workpiece in parallel.
  • the control device described in Patent Document 1 executes a pre-created numerical control program for controlling a machine tool and a pre-created robot program for controlling a robot, thereby The robots are controlled in parallel.
  • the present invention has been made in view of the above, and an object thereof is to obtain a numerical control device capable of controlling a robot by using a numerical control program.
  • a numerical control device of the present invention has a control arithmetic unit that controls a machine tool and a robot by using a numerical control program defined by a first coordinate system. ..
  • the control calculation unit is a numerical value including a first command which is a command to the machine tool written in the first programming language and a second command which is a command to the robot written in the first programming language.
  • a storage unit that stores a control program and a conversion unit that converts the second command into a third command that is a robot program used when controlling the robot are provided.
  • the control calculation unit controls the machine tool using the first command and controls the robot using the third command.
  • the numerical control device has an effect of being able to control a robot using a numerical control program.
  • FIG. 3 is a diagram showing a configuration of a control system including the numerical control device according to the first embodiment.
  • FIG. 3 is a diagram for explaining a robot joint interpolation command used by the numerical control device according to the first embodiment.
  • FIG. 3 is a diagram showing list information of robot joint interpolation commands used by the numerical controller according to the first embodiment.
  • FIG. 3 is a diagram for explaining a continuous operation setting command used by the numerical control device according to the first embodiment.
  • FIG. 3 is a diagram for explaining a robot linear interpolation command used by the numerical control device according to the first embodiment.
  • FIG. 3 is a diagram for explaining a robot circular arc interpolation command used by the numerical control device according to the first embodiment.
  • FIG. 3 is a diagram for explaining control for the robot when the direction angle is not set by the numerical control device according to the first embodiment.
  • FIG. 3 is a diagram for explaining control of the robot when the direction angle is set by the numerical control device according to the first embodiment.
  • FIG. 3 is a diagram showing a correspondence relationship between an NC coordinate system and a robot coordinate system used in the numerical control device according to the first embodiment. Flowchart showing a processing procedure of robot control using an NC program by the control system according to the first embodiment.
  • FIG. 3 is a diagram for explaining a conversion process from an NC program to a robot program by the numerical control device according to the first embodiment.
  • FIG. 3 is a diagram for explaining an operation procedure of a machine tool and a robot, which is controlled by the numerical control device according to the first embodiment.
  • FIG. 3 is a diagram showing a correspondence relationship between an NC coordinate system and a robot coordinate system used in the numerical control device according to the first embodiment. Flowchart showing a processing procedure of robot control using an NC program by the control system according to the first embodiment.
  • FIG. 3 is a diagram for explaining a conversion process from an NC
  • FIG. 5 is a diagram for explaining a process of accessing the robot IF by the numerical control device according to the second embodiment.
  • 3 is a flowchart showing a procedure for generating access data by the numerical control device according to the second embodiment.
  • the figure which shows the structural example of the numerical control apparatus concerning Embodiment 3. The figure which shows the example of the edit screen of the NC robot program which the numerical control apparatus concerning Embodiment 3 displays.
  • FIG. 6 is a diagram showing a configuration of a control system including a numerical control device according to a fourth embodiment.
  • FIG. 3 is a diagram showing a hardware configuration example of a control calculation unit according to the first embodiment.
  • FIG. 1 is a diagram showing a configuration of a control system including the numerical control device according to the first embodiment.
  • the control system 100A is a system that controls the machine tool 70 and the robot 60 by using a numerical control (NC) program.
  • NC numerical control
  • the control system 100A includes a machine tool 70, a numerical controller 1X, a robot controller 50X, and a robot 60.
  • the numerical control device 1X includes a CNC (Computer Numerical Control) unit 6 and an input operation unit 3X.
  • the CNC unit 6 is connected to the machine tool 70, the input operation unit 3X, and the robot controller 50X.
  • the robot controller 50X is connected to the input operation unit 3X and the robot 60.
  • the CNC unit 6 and the robot controller 50X are connected, for example, via a LAN (Local Area Network).
  • LAN Local Area Network
  • the machine tool 70, the numerical control device 1X, and the robot controller 50X communicate with each other, and the robot controller 50X and the robot 60 communicate with each other.
  • the numerical controller 1X and the robot 60 are connected via the robot controller 50X, and the numerical controller 1X controls the robot 60 via the robot controller 50X.
  • the intervention of the robot controller 50X may be omitted.
  • the numerical controller 1X is arranged on the machine tool 70.
  • the numerical controller 1X is a computer that causes the machine tool 70 to perform machining of a machining work (workpiece) using a tool and causes the robot 60 to carry the machining work.
  • the numerical controller 1X controls the machine tool 70 and the robot 60 using an NC program such as a G code program.
  • the NC program includes a first command which is a command to the machine tool 70 written in the first programming language and a second command which is a command to the robot 60 written in the first programming language. include.
  • the numerical controller 1X converts the second command of the NC program into a third command which is a command of the robot program written in the second programming language, and uses the third command to control the robot 60. Control.
  • the input operation unit 3X is a device for the user to operate the CNC unit 6 and the robot controller 50X.
  • the input operation section 3X includes an input/output unit 51, an emergency stop button 52, and an operation panel 53.
  • the input operation unit 3X operates the CNC unit 6 and the robot controller 50X by sending a signal corresponding to a user operation to the CNC unit 6 and the robot controller 50X.
  • the operation panel 53 receives an operation from the user and sends a signal corresponding to the operation to the input/output unit 51.
  • the emergency stop button 52 sends a signal for stopping the robot controller 50X to the robot controller 50X and a signal for stopping the machine tool 70 to the input/output unit 51.
  • the input/output unit 51 sends a signal sent from the operation panel 53 and a signal sent from the emergency stop button 52 to the CNC unit 6.
  • the emergency stop button 52 and the input/output unit 51 may be arranged on the operation panel 53.
  • the robot controller 50X controls the robot 60 according to the robot program sent from the numerical controller 1X. Further, the robot controller 50X stops the operation of the robot 60 when a signal is sent from the emergency stop button 52.
  • the robot 60 grasps a machining work which is a machining object by the robot hand 61 and conveys the grasped machining work.
  • the robot 60 loads the machined work before machining on the machine tool 70 and unloads the machined work after machining from the machine tool 70.
  • the robot 60 may perform processing other than the conveyance of the work piece.
  • the CNC unit 6 includes a control calculation unit 2X, which will be described later, and a display unit 4.
  • the CNC unit 6 controls the machine tool 70 and the robot 60 using an NC program. Further, when the CNC unit 6 receives a signal from the input operation unit 3X, the CNC unit 6 causes the machine tool 70 to execute a process corresponding to the received signal.
  • the CNC unit 6 also displays the state of the machine tool 70, the state of the robot 60, and the like.
  • the machine tool 70 is an NC machine tool, and the machined work is machined by the tool while the tool and the machined work are relatively moved by two or more drive axes.
  • the first coordinate system which is the coordinate system of the machine tool 70 and the second coordinate system which is the coordinate system of the robot 60 are different coordinate systems.
  • the machine tool 70 is controlled by a Cartesian coordinate system and moves a tool or a work piece in, for example, three axis directions.
  • the robot 60 has a rotating shaft, and drives in, for example, four or more axes.
  • the robot 60 includes a plurality of joints and a plurality of arms, and one joint moves one arm in a direction of one axis or more.
  • FIG. 2 is a diagram showing a configuration example of the numerical control device according to the first embodiment.
  • the numerical controller 1X includes a control operation unit 2X, an input operation unit 3X, a display unit 4, and a PLC operation unit 5 such as a machine operation panel for operating a PLC (Programmable Logic Controller) 36.
  • a PLC operation unit 5 such as a machine operation panel for operating a PLC (Programmable Logic Controller) 36.
  • FIG. 2 shows a machine tool 70, a robot controller 50X, and a robot 60 together with the numerical controller 1X.
  • the machine tool 70 includes a drive unit 90 that drives a tool and a workpiece.
  • An example of the drive unit 90 is a drive mechanism that drives a tool while rotating a workpiece.
  • the driving direction of the tool is, for example, two directions, that is, a direction parallel to the X-axis direction and a direction parallel to the Z-axis direction. Since the axial direction depends on the device configuration, the axial direction is not limited to the above direction.
  • the drive unit 90 includes servo motors 901 and 902 that move a tool in each axial direction defined on the numerical controller 1X, and detectors 97 and 98 that detect the positions and speeds of the servo motors 901 and 902. There is. Further, the drive unit 90 includes a servo control unit in each axial direction that controls the servo motors 901 and 902 based on a command from the numerical control device 1X. The servo control unit in each axial direction performs feedback control to the servo motors 901 and 902 based on the position and speed from the detectors 97 and 98.
  • the X-axis servo control unit 91 controls the operation of the tool in the X-axis direction by controlling the servo motor 901, and the Z-axis servo control unit 92 controls the servo motor 902. Controls the Z-axis movement of the tool.
  • the machine tool 70 may include two or more turrets.
  • the drive unit 90 includes a set of an X-axis servo control unit 91, a Z-axis servo control unit 92, servo motors 901 and 902, and detectors 97 and 98 for each tool post.
  • the drive unit 90 also includes a spindle motor 911 that rotates a spindle for rotating the workpiece, and a detector 211 that detects the position and the rotation speed of the spindle motor 911.
  • the rotation speed detected by the detector 211 corresponds to the rotation speed of the spindle motor 911.
  • the drive unit 90 also includes a spindle servo control unit 200 that controls the spindle motor 911 based on a command from the numerical controller 1X.
  • the spindle servo control unit 200 performs feedback control to the spindle motor 911 based on the position and rotation speed from the detector 211.
  • the drive unit 90 includes two sets of a spindle motor 911, a detector 211, and a spindle servo control unit 200.
  • the machine tool 70 includes two or more tool rests.
  • the input operation unit 3X is a means for inputting information to the control calculation unit 2X.
  • the input operation unit 3X is configured by an input means such as a keyboard, a button, or a mouse, and receives an input of a command or the like by the user to the numerical control device 1X, or an NC program or a parameter or the like and inputs it to the control calculation unit 2X.
  • the display unit 4 is configured by a display unit such as a liquid crystal display device, and displays the information processed by the control calculation unit 2X on the display screen.
  • An example of the display unit 4 is a liquid crystal touch panel. In this case, some functions of the input operation unit 3X are arranged on the display unit 4.
  • the control calculation unit 2X which is a control unit, controls the machine tool 70 and the robot 60 by using the NC program defined by the coordinate system of the machine tool 70.
  • the control calculation unit 2X includes an input control unit 32, a data setting unit 33, a storage unit 34, a screen processing unit 31, an analysis processing unit 37, a control signal processing unit 35X, a PLC 36, and an interpolation processing unit 38. It has an acceleration/deceleration processing unit 39, an axis data output unit 40, and a robot control unit 41X.
  • the PLC 36 may be arranged outside the control calculation unit 2X.
  • the storage unit 34 has a parameter storage area 341, an NC program storage area 343, a display data storage area 344, and a shared area 345.
  • the parameter storage area 341 parameters and the like used in the processing of the control calculation unit 2X are stored.
  • the parameter storage area 341 stores control parameters, servo parameters, and tool data for operating the numerical controller 1X.
  • an NC program used for machining a machining work is stored.
  • the NC program of the first embodiment includes a movement command that is a command for moving the tool and a command for controlling the robot 60.
  • the screen display data displayed on the display unit 4 is stored in the display data storage area 344.
  • the screen display data is data for displaying information on the display unit 4.
  • the storage unit 34 is provided with a shared area 345 for storing temporarily used data.
  • the screen processing unit 31 controls to display the screen display data stored in the display data storage area 344 on the display unit 4.
  • the input control unit 32 receives information input from the input operation unit 3X.
  • the data setting unit 33 causes the storage unit 34 to store the information received by the input control unit 32. That is, the input information received by the input operation unit 3X is written in the storage unit 34 via the input control unit 32 and the data setting unit 33.
  • the control signal processing unit 35X is connected to the PLC 36, and receives signal information from the PLC 36 such as a relay for operating the machine tool 70.
  • the control signal processing unit 35X writes the received signal information in the shared area 345 of the storage unit 34.
  • the interpolation processing unit 38 refers to these pieces of signal information during the machining operation.
  • the analysis processing unit 37 outputs an auxiliary instruction to the shared area 345
  • the control signal processing unit 35X reads the auxiliary instruction from the shared area 345 and sends it to the PLC 36.
  • the auxiliary command is a command other than a command for operating the drive axis which is the numerical control axis. Examples of auxiliary commands are M code or T code.
  • the PLC 36 stores a ladder program in which machine operations executed by the PLC 36 are described. Upon receiving the T code or the M code, which is an auxiliary instruction, the PLC 36 executes the processing corresponding to the auxiliary instruction to the machine tool 70 according to the ladder program. After executing the process corresponding to the auxiliary command, the PLC 36 sends a completion signal indicating that the machine control is completed to the control signal processing unit 35X in order to execute the next block of the NC program.
  • control signal processing unit 35X In the control calculation unit 2X, the control signal processing unit 35X, the analysis processing unit 37, the interpolation processing unit 38, and the robot control unit 41X are connected via the storage unit 34, and information of the information is stored via the storage unit 34. Write and read.
  • the storage unit 34 is used to describe writing and reading of information among the control signal processing unit 35X, the analysis processing unit 37, the interpolation processing unit 38, and the robot control unit 41X. May be omitted.
  • the user selects the NC program by inputting the NC program number on the input operation unit 3X.
  • This NC program number is written in the shared area 345 via the input control unit 32 and the data setting unit 33.
  • the analysis processing unit 37 reads the selected NC program number from the shared area 345, reads the selected NC program from the NC program storage area 343, and reads the NC program Analysis processing is performed for each block (each row).
  • the analysis processing unit 37 analyzes, for example, a G code (command regarding axis movement etc.), a T code (tool replacement command etc.), an S code (spindle motor rotation speed command), and an M code (machine operation command).
  • the analysis processing unit 37 sends the analysis result to the PLC 36 via the shared area 345 and the control signal processing unit 35X. Further, when the analyzed line includes the M code, the analysis processing unit 37 sends the M code to the PLC 36 via the control signal processing unit 35X.
  • the PLC 36 executes the machine control corresponding to the M code. When the execution is completed, the result indicating the completion of the M code is written in the storage unit 34 via the control signal processing unit 35X.
  • the interpolation processing unit 38 refers to the execution result written in the storage unit 34.
  • 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 a movement condition corresponding to the G code and sends it to the interpolation processing unit 38. Further, the analysis processing unit 37 sends the spindle rotation speed designated 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.
  • the moving condition is a condition for feeding the tool to move the machining position, and is indicated by a speed at which the tool rest is moved, a position at which the tool rest is moved, and the like. For example, the tool feed of the tool advances the tool in the X-axis direction (+X direction) and the Z-axis direction (+Z direction).
  • the analysis processing unit 37 also has a robot command analysis unit 371.
  • the robot command analysis unit 371 is means for analyzing the operation of the connected robot 60.
  • the robot command analysis unit 371 analyzes the robot command included in the NC program, and sends the analysis result to the robot control unit 41X via the shared area 345. Details of the robot command will be described later.
  • a robot coordinate system setting command which is a command for setting the coordinate system of the robot 60, and a robot mode in which a command to the robot 60 is turned on (valid) or off (invalid) is designated. It includes a command, a robot operation command that defines the operation of the robot 60, and the like.
  • the interpolation processing unit 38 generates data for controlling the machine tool 70 using a command to the machine tool 70 out of the analysis result of the analysis processing unit 37, and sends it to the acceleration/deceleration processing unit 39.
  • the interpolation processing unit 38 includes a robot command waiting unit 381 that is a first waiting unit. When executing a waiting process between the robot 60 and the machine tool 70, the robot command waiting section 381 waits for a command (operation command or the like) to the machine tool 70 until a specific timing is reached. The waiting process between the robot 60 and the machine tool 70 will be described later.
  • the robot control unit 41X has a coordinate setting unit 411, a mode setting unit 412, an NC command waiting unit 413 which is a second waiting unit, and a program conversion unit 414.
  • the coordinate setting unit 411 sets the coordinate system of the robot 60 to the base coordinate system (corresponding to the machine coordinate system of the machine tool 70) or the tool coordinate system (coordinates of the robot hand 61 included in the robot 60). System). After the coordinate setting unit 411 sets the coordinate system corresponding to the robot coordinate system setting command, the robot control unit 41X operates the robot 60 in the set coordinate system.
  • the NC command waiting unit 413 waits for a command to the robot 60 until a specific timing.
  • the program conversion unit 414 which is a conversion unit, converts a command (second command) defined by the coordinate system of the machine tool 70 into a command (third command) defined by the coordinate system of the robot 60.
  • a robot program used when controlling the robot 60 is generated.
  • the program conversion unit 414 converts the program for the robot 60 in the NC program into robot command list information 101, correspondence information 102, joint interpolation information 103, address information 104, linear interpolation information 105, and circular arc interpolation information 106, which will be described later. It is converted into a robot program that can be interpreted by the robot controller 50X. That is, the program conversion unit 414 is a conversion unit that converts an instruction to the robot 60 created by the NC program into an instruction of the robot program. Of the commands in the NC program, the commands to the robot 60 are described using RX_, RY_, RZ_, etc. described later.
  • the program conversion unit 414 sends the robot program to the robot controller 50X.
  • the mode setting unit 412 receives the robot mode command, which is the analysis result, from the robot command analysis unit 371.
  • the robot mode command is a command that specifies whether the command from the numerical controller 1X to the robot 60 should be turned on or off.
  • a command designating that the command to the robot 60 is turned on is called a robot mode on command
  • a command designating that the command to the robot 60 is turned off is called a robot mode off command.
  • the mode setting unit 412 When the mode setting unit 412 receives the robot mode ON command from the robot command analysis unit 371, the mode setting unit 412 notifies the program conversion unit 414 that a command to the robot 60 will come thereafter. After the mode setting unit 412 receives the robot mode on command, the robot control unit 41X receives commands to the robot 60 until a new robot mode off command is received.
  • the robot control unit 41X When the mode setting unit 412 receives the robot mode OFF command from the robot command analysis unit 371, the robot control unit 41X does not receive the command to the robot 60 until a new robot mode ON command is received.
  • the display unit 4 When a command to the robot 60 is sent to the robot control unit 41X while the robot control unit 41X does not receive the command to the robot 60, the display unit 4 follows the instruction from the control calculation unit 2X and displays "program error". Is displayed.
  • An example of the robot mode ON command is G198 described later, and an example of the robot mode OFF command is G199 described later.
  • FIG. 3 is a diagram showing list information of commands of the NC robot program used by the numerical control device according to the first embodiment.
  • FIG. 3 shows robot command list information 101, which is list information of commands used in the NC robot program.
  • the G code which is a command used in the NC robot program, is associated with the function.
  • the robot command list information 101 may be stored in the storage unit 34, or may be stored in a storage area other than the storage unit 34 in the numerical control device 1X.
  • the correspondence relationship information 102, the joint interpolation information 103, the address information 104, the linear interpolation information 105, and the circular arc interpolation information 106 used by the program conversion unit 414 may be stored in the storage unit 34 or may be numerical values. It may be stored in a storage area other than the storage unit 34 in the control device 1X.
  • G198 is to turn on the robot mode (robot command on).
  • the function of G199 is a function of turning off the robot mode (robot command off).
  • the numerical controller 1X can execute the NC command (command to the machine tool 70) even while the G198 mode is being executed.
  • G198 may be a one-shot command described for each robot command.
  • the modal command is a G code whose state is held for a plurality of G codes, and the one-shot command is a G code applied to only one block (one line).
  • G200 is a function to operate the robot 60 by joint interpolation (robot joint interpolation). That is, G200 is a robot joint interpolation command for operating the robot 60 by joint interpolation.
  • G200.5 is a function of continuously operating the robot 60 (designation of continuous operation). That is, G200.5 is a continuous operation setting command for continuously operating the robot 60.
  • G201 is a function of moving the robot 60 by linear interpolation (robot linear interpolation). That is, G201 is a robot linear interpolation command for moving the robot 60 by linear interpolation.
  • G202 is a function of moving the robot 60 by circular interpolation (robot circular interpolation). That is, G202 is a robot circular interpolation command for moving the robot 60 by circular interpolation.
  • G243.1 is a command (direction angle control parameter setting) for setting parameters for controlling the direction angle. That is, G243.1 is a command for controlling the direction angle.
  • the function of G290 is a function of operating the robot 60 with an absolute value command (robot absolute value command), and the function of G291 is a function of operating the robot 60 with an incremental value command (robot incremental value command).
  • the absolute value command is used when the stop position is fixed with respect to the origin. Therefore, the absolute value command specifies the position from the origin.
  • the increment value command is used when it is desired to specify the movement amount to the next stop position with respect to the current stop position. Therefore, the amount of movement is specified in the increment value command.
  • the function of G292 is a function of causing the robot 60 to set a coordinate system (robot coordinate system setting).
  • FIG. 4 is a diagram for explaining a robot joint interpolation command used by the numerical control device according to the first embodiment.
  • the robot joint interpolation command is a command for controlling the robot 60 so that the movement time of the axis having the maximum movement distance among the operating axes is minimized.
  • the robot controller 50X causes the robot 60 to start from the starting point PA to the ending point PB.
  • the axis having the maximum movement distance is extracted, and the robot 60 is controlled so that the movement time of the extracted axis is minimized.
  • FIG. 5 is a diagram showing list information of robot joint interpolation commands used by the numerical controller according to the first embodiment.
  • FIG. 6 is a diagram showing list information of addresses of robot joint interpolation commands used by the numerical controller according to the first embodiment.
  • FIG. 5 shows joint interpolation information 103 which is list information of robot joint interpolation commands
  • FIG. 6 shows address information 104 which is list information of addresses of robot joint interpolation commands.
  • the first command method is the coordinate command method.
  • the coordinate command system of the robot joint interpolation command is referred to as the coordinate command system CM1.
  • the coordinate command system CM1 is a command system for controlling the position of the robot 60 at a position designated on the robot coordinates.
  • robot joint interpolation is commanded in the format of “G200 RX_RY_RZ_RA_RB_RC_RS_RT_R_”.
  • RX, RY, RZ, RA, RB, RC, RS, and RT are all commands to the robot 60.
  • RX_, RY_, RZ_ in the coordinate command system CM1 are robot Cartesian coordinate commands
  • RA_, RB_, RC_ are robot rotational coordinate commands.
  • the robot Cartesian coordinate command is a command that specifies the coordinates (X coordinate, Y coordinate, Z coordinate) in the Cartesian coordinate system (X axis, Y axis, Z axis) of the robot 60.
  • the robot rotation coordinate command is a command that specifies the coordinates (A coordinate, B coordinate, C coordinate) in the rotation coordinate system (A axis, B axis, C axis) of the robot 60.
  • the address of the robot joint interpolation command is indicated by X coordinate, Y coordinate, Z coordinate, A coordinate, B coordinate, and C coordinate.
  • RS_ in the coordinate command system CM1 is robot posture data (1)
  • RT_ is robot posture data (2)
  • the robot posture data (1) and the robot posture data (2) are data designating the posture of the robot 60. Since the robot 60 has a plurality of joints, it can take various postures even when one position is designated.
  • the robot posture data (1) and the robot posture data (2) specify the posture to be taken by the robot 60.
  • R_ in the coordinate command method CM1 is a command that specifies whether or not the continuous operation mode is set. The continuous operation is valid for R0, and the continuous operation is invalid for R1. If R_ is omitted in the coordinate command system CM1, it is treated as R0. In this way, the command of the coordinate command system CM1 is a command for controlling the position of the robot 60 at the position designated on the robot coordinates so that the movement time of the axis having the maximum movement distance is minimized.
  • the second command method among the robot joint interpolation commands is the axis movement amount command method.
  • the axis movement amount command system of the robot joint interpolation command is referred to as the axis movement amount command system AM1.
  • the axis movement amount command system AM1 of the robot joint interpolation command is a command system for controlling the position of the robot 60 to the position designated by the joint axis of the robot 60.
  • x is the axis name of the joint axis, and is any of 1 to 6 here.
  • the command of the axis movement amount command system AM1 is a command for controlling the position of the robot 60 at the position designated by the joint axis of the robot 60 so that the movement time of the axis having the maximum movement distance becomes the minimum.
  • R_ in the axis movement amount command method AM1 is a command that specifies whether or not the continuous operation mode is the same as R_ in the coordinate command method CM1.
  • the third command system is the teaching position command system.
  • the teaching position command system of the robot joint interpolation command is referred to as the teaching position command system TM1.
  • the robot joint interpolation command teaching position command system TM1 is a command system for controlling the position of the robot 60 to a previously taught position.
  • P_ in the teaching position command system TM1 is a teaching position and indicates a position to move the robot 60.
  • the taught position is a command position of the robot 60 stored in the numerical controller 1X.
  • the instruction of the teaching position instruction system TM1 is an instruction for controlling the position of the robot 60 to the teaching position so that the movement time of the axis having the maximum movement distance is minimized.
  • the R_ in the teaching position command system TM1 is a command that specifies whether or not the continuous operation mode is the same as the R_ in the coordinate command system CM1.
  • FIG. 7 is a diagram for explaining a continuous operation setting command used by the numerical control device according to the first embodiment.
  • the continuous operation setting command is a command for moving the position of the robot 60 from the starting position P1 to the reaching position P3 without passing through the intermediate position P2.
  • the continuous operation setting command is set, that is, when the continuous operation setting is valid
  • the numerical controller 1X moves the robot 60 along the path T2 (trajectory shown by a solid line).
  • the continuous operation setting command is not set, that is, when the continuous operation setting is invalid
  • the numerical controller 1X moves the robot 60 along the path T1 (trajectory shown by a broken line). That is, when the continuous operation setting is invalid, the numerical controller 1X moves the position of the robot 60 from the starting position P1 to the reaching position P3 via the midway position P2.
  • FIG. 8 is a diagram for explaining the robot linear interpolation command used by the numerical control device according to the first embodiment.
  • the robot linear interpolation command is a command for moving the position of the robot hand 61 included in the robot 60 from the starting point PC to the ending point PD by linear interpolation.
  • FIG. 9 is a diagram showing list information of robot linear interpolation commands used by the numerical controller according to the first embodiment.
  • FIG. 9 shows linear interpolation information 105 that is list information of robot linear interpolation commands.
  • the first command method of the robot linear interpolation command is the coordinate command method.
  • the coordinate command system of the robot linear interpolation command is referred to as the coordinate command system CM2.
  • the coordinate command system CM2 is a command system for controlling the position of the robot 60 to a position designated on the robot coordinates.
  • robot linear interpolation is commanded in the format of "G201 RX_RY_RZ_RA_RB_RC_RS_RT_R_".
  • RX_, RY_, RZ_, RA_, RB_, RC_, RS_, RT_, R_ in the coordinate command system CM2 are RX_, RY_, RZ_, RA_, RB_, RC_, RS_, RT_, in the coordinate command system CM1. It has the same address and meaning as R_.
  • the second command method among the robot linear interpolation commands is the teach position command method.
  • the teaching position command system of the robot linear interpolation command is referred to as the teaching position command system TM2.
  • the teaching position is commanded in the format of "G201 P_R_”.
  • P_ and R_ of the teach position command system TM2 are the same as P_ and R_ of the teach position command system TM1.
  • FIG. 10 is a diagram for explaining a robot circular arc interpolation command used by the numerical control device according to the first embodiment.
  • the robot circular interpolation command is a command to move the position of the robot hand 61 included in the robot 60 by circular interpolation from the starting point PE to the auxiliary point HP to the ending point PF.
  • FIG. 11 is a diagram showing list information of robot circular interpolation commands used by the numerical control device according to the first embodiment.
  • FIG. 11 shows circular arc interpolation information 106 that is list information of robot circular arc interpolation commands.
  • the first command system of the robot circular interpolation commands is the coordinate command system.
  • the coordinate command method of the robot circular interpolation command is referred to as the coordinate command method CM3.
  • the coordinate command system CM3 is a command system for controlling the position of the robot 60 at a position designated on the robot coordinates.
  • robot arc interpolation is commanded in the format of "G202 RX_RY_RZ_RA_RB_RC_RS_RT_HX_HY_HZ_HA_HB_HC_HS_HT_R_W_".
  • RX_, RY_, RZ_, RA_, RB_, RC_, RS_, RT_, R_ in the coordinate command system CM3 are RX_, RY_, RZ_, RA_, RB_, RC_, RS_, RT_, in the coordinate command system CM1. It has the same address and meaning as R_.
  • HX_HY_HZ_HA_HB_HC_HS_HT_ in the coordinate command system CM3 indicates the value of the robot coordinate system at the auxiliary point HP.
  • HA_, HB_, and HC_ in the coordinate command method CM3 are robot rotation coordinates of the A axis, B axis, and C axis, respectively
  • HX_, HY_, and HZ_ in the coordinate command method CM3 are the X axis, respectively.
  • Y-axis, and Z-axis are the robot orthogonal coordinates.
  • HS_ in the coordinate command method CM3 is robot posture data (1) at the auxiliary point HP
  • HT_ is robot posture data (2) at the auxiliary point HP
  • W_ in the coordinate command method CM3 is an angle moved by the circular interpolation command.
  • the second command method of the robot circular interpolation command is the teaching position command method.
  • the teach position command system of the robot circular interpolation command is referred to as the teach position command system TM3.
  • the teaching position is commanded in the format of "G202 P_HP_R_".
  • P_ in the teaching position command system TM3 is a teaching position (designated end point) and indicates a position to move the robot 60.
  • HP_ in the teaching position command system TM3 is the teaching position of the auxiliary point HP for determining the arc shape.
  • P_ and R_ of the teach position command system TM3 are the same as P_ and R_ of the teach position command system TM1.
  • FIG. 12 is a diagram for explaining control of the robot when the direction angle is not set by the numerical control device according to the first embodiment.
  • FIG. 13 is a diagram for explaining control of the robot when the direction angle is set by the numerical control device according to the first embodiment.
  • the direction angle is a shift angle with respect to the reference direction Q1. Therefore, when there is a direction angle control designation, the robot hand 61 moves in a direction parallel to the reference direction Q1 during linear interpolation movement, as shown in FIG. That is, when the direction angle control is designated, the robot hand 61 moves in a fixed direction. On the other hand, when the direction angle control is not designated, as shown in FIG. 12, the robot hand 61 moves while causing various inclinations with respect to the reference direction Q1 during linear interpolation movement.
  • H_ in “G243.1 H_” is a command that specifies "Yes” or "No” for the direction angle control specification.
  • H0 the control designation of the direction angle is valid, and for H1, the control designation of the direction angle is invalid.
  • FIG. 14 is a diagram showing a correspondence relationship between the NC coordinate system and the robot coordinate system used in the numerical controller according to the first embodiment.
  • FIG. 14 shows correspondence relationship information 102 which is a correspondence relationship between the NC axis of the NC coordinate system used in the NC program and the robot axis of the robot coordinate system used in the robot program.
  • the correspondence relationship information 102 includes a correspondence relationship between an address set by the NC program and coordinates set in the robot coordinate system, and a correspondence relationship between the axis name set by the NC program and the axis name set in the robot coordinate system. I'm out.
  • RX, RY, RZ set in the NC program represent orthogonal axes, and RX, RY, RZ correspond to X, Y, Z of the robot coordinate system. That is, the addresses of RX, RY, and RZ correspond to the X, Y, and Z coordinates in the robot program, respectively. Therefore, when it is desired to set the X, Y, and Z coordinates for the robot 60, it is sufficient to set the X, Y, and Z values for the RX, RY, and RZ addresses in the NC program.
  • RA, RB, RC set by the NC program represent the rotation axis, and RA, RB, RC correspond to A, B, C of the robot coordinate system. That is, the RA, RB, and RC addresses correspond to the A, B, and C coordinates in the robot program, respectively. Therefore, when it is desired to set the coordinates A, B, and C for the robot 60, the values A, B, and C may be set for the addresses RA, RB, and RC in the NC program.
  • RS and RT set in the NC program indicate the posture of the robot 60, and the addresses of RS and RT correspond to S and T in the robot program, respectively. Therefore, when it is desired to set the postures of S and T for the robot 60, the values of S and T may be set for the addresses of RS and RT in the NC program.
  • FIG. 14 shows a case in which x has 6 axes of 1 to 6.
  • the command axis (command coordinate) in the NC program and the command axis (command coordinate) in the robot program are associated with each other.
  • the NC program stores an NC program for the machine tool 70 and an NC robot program which is an NC program for the robot 60.
  • the program conversion unit 414 of the numerical controller 1X converts the NC robot program into a robot program based on the correspondence information 102, and controls the robot 60 using the robot program.
  • FIG. 15 is a flowchart showing a processing procedure of robot control using the NC program by the control system according to the first embodiment.
  • the robot command analysis unit 371 of the analysis processing unit 37 determines whether the robot mode is on (step S1). Specifically, the robot command analysis unit 371 determines whether the G198 mode is being executed (the robot command is valid) or the G199 mode is being executed (the robot command is invalid). The robot command analysis unit 371 sends the analysis result to the mode setting unit 412 via the storage unit 34.
  • step S1 When the robot mode is off (step S1, No), the numerical controller 1X does not perform conversion processing from the NC program to the robot program. On the other hand, when the robot mode is on (Yes in step S1), the mode setting unit 412 notifies the program conversion unit 414 that a command to the robot 60 will come thereafter.
  • the robot command analysis unit 371 analyzes the command of the block following G198.
  • An example of the command analyzed by the robot command analysis unit 371 is a command designating the following (function 1) to (function 8) (step S2).
  • (Function 1) Robot coordinate system setting (Function 2) Robot absolute value command (Function 3) Robot incremental value command (Function 4)
  • Direction angle control parameter setting (Function 5)
  • Robot joint interpolation (Function 6) Continuous operation specification
  • Robot linear interpolation (function 8) Robot circular interpolation
  • the robot command analysis unit 371 sends the analysis result to the robot control unit 41X or the shared area 345 of the storage unit 34.
  • the robot command analysis unit 371 sends, as the analysis result, a robot coordinate system setting command that instructs the robot coordinate system setting to the coordinate setting unit 411.
  • the robot command analysis unit 371 sends, as an analysis result, information indicating the position control mode, which is the control mode at the time of position control, to the shared area 345 of the storage unit 34.
  • the numerical controller 1X sets the robot coordinate system and the position control mode (step S3).
  • the coordinate setting unit 411 sets the base coordinate system or the tool coordinate system in the coordinate system of the robot 60 based on the robot coordinate system setting command.
  • the robot control unit 41X operates the robot 60 in the set coordinate system.
  • the robot 60 operates in the coordinate system set by the coordinate setting unit 411.
  • the robot command analysis unit 371 executes, as the information indicating the position control mode, information indicating that the robot absolute value command mode is being executed (absolute value command is being executed), or the robot incremental value command mode. Information indicating that it is in progress (during execution of the increment value command) is stored in the shared area 345.
  • the program conversion unit 414 refers to the information stored in the shared area 345 for each robot command, and confirms whether the absolute value command is being executed or the incremental value command is being executed.
  • the program conversion unit 414 treats the position command of the robot command as a robot absolute value command when the absolute value command is being executed, and the position command of the robot command when the absolute value command is being executed. Treat as a directive.
  • the program conversion unit 414 performs the program conversion of each operation on the commands specifying the following (Function 4) to (Function 8) among the robot commands sent from the robot command analysis unit 371. That is, the program conversion unit 414 converts the NC robot program into a robot program (step S4).
  • (Function 4) Direction angle control parameter setting (Function 5) Robot joint interpolation (Function 6) Continuous operation designation (Function 7) Robot linear interpolation (Function 8) Robot circular interpolation
  • the program conversion unit 414 transmits the converted robot program to the robot controller 50X (step S5).
  • the robot controller 50X controls the robot 60 according to the robot program received from the program conversion unit 414 (step S6).
  • the robot command analysis unit 371 analyzes the robot mode off command (G199)
  • the numerical controller 1X turns off the robot mode and ends the control to the robot 60 (step S7).
  • FIG. 16 is a diagram for explaining the conversion process from the NC program to the robot program by the numerical control device according to the first embodiment.
  • an NC program 201 before conversion including an NC robot program and a robot program 202 after conversion are illustrated.
  • the program conversion unit 414 converts the NC robot program included in the NC program 201 into the robot program 202.
  • the program conversion unit 414 converts the NC robot program until the robot command mode is turned off by G199 of N16, after the robot command mode is turned on by G198 of N11, into a robot program.
  • NC program 201 "N13 G200 RX10.RY10.RZ10.RA10.RB10.RC10.RS1RT5; (command coordinates (10,10,10,10,10,10,1,5))", And "N14 RX200.; (command coordinates (200, 10, 10, 10, 10, 10, 1, 5))" is robot joint interpolation.
  • the program conversion unit 414 converts these robot joint interpolations into robot program instructions corresponding to the robot joint interpolation using the robot command list information 101, the correspondence information 102, the joint interpolation information 103, and the address information 104.
  • the program conversion unit 414 replaces N13 of the NC program 201 with “N13 MOVEA (10.,10.,10.,10.,10.)(1,5,0); (command Coordinates (10, 10, 10, 10, 10, 10, 10, 1, 5, 0))". Further, the program conversion unit 414 replaces N14 of the NC program 201 with "N14 MOVEA (200.,10.,10.,10.,10.) (1,5,0); (command coordinate (200 , 10, 10, 10, 10, 10, 10, 1, 5, 0))”. Since R_ is omitted in the NC program 201, the program conversion unit 414 validates the continuous operation in the robot program command.
  • N15 G201 RX30.; (command coordinates (30, 10, 10, 10, 10, 10, 10, 5)) included in the NC program 201 is robot linear interpolation.
  • the program conversion unit 414 converts this robot linear interpolation into a robot program command corresponding to the robot linear interpolation, using the robot command list information 101, the correspondence information 102, the address information 104, and the linear interpolation information 105. Specifically, the program conversion unit 414 changes the N15 of the NC program 201 to “N15 MOVEB (30.,10.,10.,10.,10.)(1,5,0); (command Coordinates (30, 10, 10, 10, 10, 10, 10, 1, 5, 0))".
  • the program conversion unit 414 converts the robot circular interpolation into a robot program command indicated by MOVEC.
  • FIG. 17 is a diagram for explaining the operation procedure of the machine tool and the robot controlled by the numerical control device according to the first embodiment.
  • the robot 60 loads the unprocessed machined work 82 placed in the unprocessed goods storage 75 onto the machine tool 70 (ST1).
  • the machine tool 70 processes the machined work 82 using the tool 71 (ST2).
  • the robot 60 unloads the processed work 82 (completed product) from the machine tool 70 (ST3) and places the processed work 82 in the temporary storage space 76 of the finished product storage space 77.
  • the robot 60 holds the deburring tool 84, which is an external tool, with the robot hand 61, and deburrs the machined work 82 that has been machined by the deburring tool 84 (ST4).
  • the unmachined workpiece 82 may be referred to as an unmachined workpiece
  • the machined workpiece 82 may be referred to as a machined workpiece.
  • FIG. 18 is a diagram showing an NC program used when the operation shown in FIG. 17 is executed.
  • the NC program 501 shown in FIG. 18 includes a robot command for executing the operation shown in FIG.
  • the first system of the NC program 501 is an NC program in which the operation of the machine tool 70 is described, and includes instructions for operating the machine tool 70.
  • the second system of the NC program 501 is an NC program (NC robot program) in which the operation of the robot 60 is described, and includes a robot command for operating the robot 60.
  • the first system and the second system can operate the machine tool 70 and the robot 60 while coordinating (synchronizing) the operation of the machine tool 70 and the operation of the robot 60.
  • the numerical controller 1X executes a robot mode on command to turn on the robot mode.
  • the numerical controller 1X sets robot coordinates.
  • the robot 60 moves to a position for gripping an unprocessed work.
  • the robot 60 grips an unprocessed work.
  • the robot 60 positions the unprocessed work at the load position.
  • the robot 60 waits for the chuck of the machine tool 70 that holds the workpiece 82 to open.
  • the machine tool 70 opens the chuck, and in N110, the numerical controller 1X notifies the robot command that the chuck of the machine tool 70 has been opened.
  • the numerical controller 1X here informs the N550 "!1L1" (chuck open wait) that the chuck of the machine tool 70 has been opened. These operations of N110 and N550 are performed via the storage unit 34 between the robot command waiting unit 381 of the interpolation processing unit 38 and the NC command waiting unit 413 of the robot control unit 41X.
  • the robot command waiting unit 381 stores information indicating that N110 has been executed in the storage unit 34
  • the NC command waiting unit 413 stores information indicating that N550 has been executed in the storage unit 34. .. Further, the robot command waiting unit 381 reads information indicating that N550 was executed from the storage unit 34, and the NC command waiting unit 413 reads information indicating that N110 was executed from the storage unit 34.
  • the robot command waiting unit 381 executes N110 and reads the information indicating that N550 is executed from the storage unit 34, and then executes the process of the next block of N110.
  • the NC command waiting unit 413 executes the process of the next block of the N550 after reading the information indicating that the N550 has been executed and the N110 has been executed from the storage unit 34. That is, the numerical controller 1X executes N120 and N560 after executing both N110 and N550. In this way, the robot 60 waits for execution of the next process until the chuck is opened by the machine tool 70.
  • Numerical control device 1X waits for processing of the first system when "m” of "!mLn” is “1", and waits for processing of the second system when “m” is “2". Specifically, when a command to wait for the operation of the robot 60 (!2Ln: first standby command) appears in the command to the machine tool 70 during execution of the command to the machine tool 70, the robot command waiting unit 381 Wait for the operation of the robot 60. That is, the robot command waiting unit 381 causes the operation of the machine tool 70 to wait until the operation (!1Ln) of the robot 60 corresponding to the first waiting command is completed.
  • the NC command waiting unit 413 causes the machine tool 70 to wait. Wait for the action of. That is, the NC command waiting unit 413 makes the operation of the robot 60 wait until the operation (!2Ln) of the machine tool 70 corresponding to the second waiting command is completed. In this way, when there is a waiting command such as "!1Ln” and "!2Ln", the control calculation unit 2X executes synchronization between the machine tool 70 and the robot 60.
  • N of “!mLn” (n is a natural number) is the identification number of the waiting instruction, and waiting processing is performed between the instructions with the same identification number.
  • the NC program 501 when the waiting instruction is issued, the waiting is performed by the same operation as that of N110 and N550, and therefore the detailed description of the waiting process will be omitted in the following description.
  • the description such as “!2L1” and “!1L1” is used for the waiting instruction, but the description of the waiting instruction is not limited to "!2L1" and "!1L1".
  • Other character codes may be used.
  • N560 the robot 60 loads the unmachined work onto the chuck of the machine tool 70.
  • the robot 60 waits for the operation of the machine tool 70 (!1L2), and in N120, the machine tool 70 waits for the operation of the robot 60 (!2L2). That is, the machine tool 70 waits for a raw workpiece to be loaded by the robot 60.
  • the numerical controller 1X executes N130 and N580 after executing both N120 and N570.
  • the machine tool 70 closes the chuck and grips the unprocessed workpiece.
  • the machine tool 70 waits for the operation of the robot 60 (!2L3), and in N580, the robot 60 waits for the operation of the machine tool 70 (!1L3). That is, the robot 60 waits for the machine tool 70 to close the chuck.
  • the numerical controller 1X executes N150 and N590 after executing both N140 and N580. That is, after the machine tool 70 closes the chuck, in N590, the robot 60 opens the robot hand 61. As a result, the robot 60 releases the unprocessed work. In N600, the robot 60 retracts the robot hand 61 outside the machine tool 70.
  • robot 60 waits for operation of machine tool 70 (!1L4), and in N150, machine tool 70 waits for operation of robot 60 (!2L4). That is, the machine tool 70 waits until the robot hand 61 moves to the outside of the machine tool 70 and the loading of the unmachined work is completed.
  • the numerical controller 1X executes N160 and N620 after executing both N150 and N610. That is, when the loading of the unmachined work is completed, in N160, the machine tool 70 closes the automatic door through which the machined work 82 is loaded. After that, the machine tool 70 executes the processing corresponding to N170 to N210, that is, the processing of the processing work 82.
  • the machine tool 70 waits for the operation of the robot 60 (!2L5), and in N620, the robot 60 waits for the operation of the machine tool 70 (!1L5). That is, the robot 60 waits for the machine tool 70 to complete the machining of the workpiece 82.
  • the numerical controller 1X executes N230 and N630 after executing both N220 and N620. That is, when the machine tool 70 completes the machining, in N230, the machine tool 70 opens the automatic door. In N240, the machine tool 70 waits for the operation of the robot 60 (!2L6), and in N630, the robot 60 waits for the operation of the machine tool 70 (!1L6). That is, the robot 60 waits for the machine tool 70 to complete the opening of the automatic door.
  • the numerical controller 1X executes N240 and N640 after executing both N240 and N630. That is, when the machine tool 70 opens the automatic door, in N640, the robot 60 moves the robot hand 61 to the front of the chuck of the machine tool 70. In N650, the robot 60 opens the robot hand 61, in N660, the robot 60 moves the robot hand 61 to the gripping position of the processed workpiece, and in N670, the robot 60 closes the robot hand 61 to finish processing. Hold the work.
  • the robot 60 waits for the operation of the machine tool 70 (!1L7), and in N250, the machine tool 70 waits for the operation of the robot 60 (!2L7). That is, the machine tool 70 waits for the robot 60 to hold the machined workpiece.
  • the numerical controller 1X executes both N250 and N680, and then executes N260 and N690. That is, when the robot 60 closes the robot hand 61, in N260, the machine tool 70 opens the chuck. In N270, the machine tool 70 waits for the operation of the robot 60 (!2L8), and in N690, the robot 60 waits for the operation of the machine tool 70 (!1L8). That is, the robot 60 waits for the machine tool 70 to open the chuck.
  • the numerical controller 1X executes N280 and N700 after executing both N270 and N690. That is, when the robot 60 closes the robot hand 61, in N280, the machine tool 70 exchanges the tool 71, and in N700, the robot 60 places the robot hand 61 holding the machined workpiece on the machine tool 70. At N710, the robot 60 moves the robot hand 61 holding the processed work to the front part of the automatic door.
  • the robot 60 waits for the operation of the machine tool 70 (!1L9), and in N290, the machine tool 70 waits for the operation of the robot 60 (!2L9). That is, the robot 60 waits for the tool 71 to be exchanged by the machine tool 70, and the machine tool 70 waits for the robot 60 to unload the workpiece 82.
  • the unloading process of the machined work 82 here is a process of retracting the machined work to the upper part of the machine tool 70 and moving it to the front part of the robot hand 61 automatic door holding the machined work.
  • the robot 60 moves the robot hand 61 to the tool storage area, and in N770, the robot 60 holds the deburring tool 84.
  • the robot 60 moves the deburring tool 84 gripped by the robot hand 61 to the temporary storage place 76 for the machined work, and in N790, the robot 60 uses the deburring tool 84 to deburr the machined work. To take.
  • the numerical controller 1X controls the robot 60 and the machine tool 70 using the NC program 501 shown in FIG. At this time, the numerical controller 1X controls the robot 60 after converting the second system robot command into a robot program.
  • the user of the control system 100A can program the NC robot program with the NC program and control the robot 60 with the NC program without knowledge of the robot program, so that work efficiency such as setup is improved. ..
  • the robot program is described by the NC program, it is easy to perform the synchronous operation of the machine tool 70 and the robot 60 at a specific timing (when the robot 60 starts, during the operation of the robot 60, when the operation of the robot 60 is completed). Can be programmed to improve work efficiency such as setup.
  • the robot user needs to create a robot program separately from the NC program.
  • a user who uses both the machine tool and the robot needs to have knowledge of both the NC program and the robot program. That is, without using the numerical controller 1X, the robot cannot be controlled without knowledge of the robot program.
  • the user of the control system 100A can control the machine tool 70 and the robot 60 with knowledge of the NC program.
  • the command to the robot 60 in the NC program is converted into the robot program based on the correspondence information 102 that is the correspondence between the NC program and the robot program. It becomes possible to control the robot 60 by using it.
  • the numerical controller 1X includes the robot command waiting unit 381 and the NC command waiting unit 413, even if both the NC program and the robot program are executed at the same time, the machine controller 70 and the robot 60 can be connected to each other. You can synchronize with.
  • the NC program and the robot program can be checked side by side as shown in FIG. 18, so that the synchronization processing between the machine tool 70 and the robot 60 can be easily checked when creating the program.
  • a memory for storing the robot program is required in addition to a memory for storing the NC program.
  • this embodiment is used.
  • a memory for storing the robot program is not needed, and the device configuration can be simplified.
  • the robot controller includes a robot interface (IF: InterFace) capable of controlling the robot 60 based on the command coordinates input by the numerical controller.
  • the numerical controller makes the robot IF control the robot 60 by accessing the robot IF and inputting command coordinates to the robot IF.
  • FIG. 19 is a diagram showing a configuration example of the numerical control device according to the second embodiment.
  • those having the same functions as those of the numerical controller 1X according to the first embodiment shown in FIG. 2 are designated by the same reference numerals, and a duplicate description will be omitted.
  • the numerical control device 1Y includes a control calculation unit 2Y instead of the control calculation unit 2X included in the numerical control device 1X.
  • the numerical controller 1Y includes a robot controller 50Y instead of the robot controller 50X included in the numerical controller 1X.
  • the robot controller 50Y includes a robot IF 510.
  • the robot IF 510 is connected to the robot 60 and controls the robot 60.
  • a function is assigned to each control content of the robot 60. That is, in the robot IF 510, the operation instruction to the robot 60 and the function are associated with each other.
  • the robot IF 510 instructs the robot 60 to perform an operation corresponding to the designated function. Specifically, the robot IF 510 controls the robot 60 based on the designated command coordinates when command coordinates (arguments) are designated by the control calculation unit 2Y for a function for controlling the robot 60. .. That is, the robot IF 510 executes preset processing on the robot 60 when accessed by the control calculation unit 2Y. In this way, the robot IF 510 executes the processing corresponding to the function and the command coordinate on the robot 60 when accessed by the function and the command coordinate defined by the coordinate system of the robot 60.
  • the functions assigned to the control contents of the robot 60 include a function used for robot joint interpolation, a function used for robot linear interpolation, and a function used for robot circular interpolation. Since the robot 60 executes a plurality of types of operations, a plurality of types of functions are set in the robot IF 510.
  • the control calculation unit 2Y includes a robot control unit 41Y instead of the robot control unit 41X included in the control calculation unit 2X.
  • the robot control unit 41Y includes a robot IF access unit 415 instead of the program conversion unit 414.
  • the robot IF access unit 415 determines a function used when controlling the robot 60 based on the NC robot program of the NC programs, and calculates a command coordinate used when controlling the robot 60.
  • the robot IF access unit 415 which is an access unit to the robot IF 510, inputs a command coordinate to the robot IF 510 after designating a function for controlling the robot 60. That is, the robot IF access unit 415 accesses the robot IF 510 with a function and command coordinates corresponding to the NC robot program.
  • the program conversion unit 414 converts the robot command in the NC program into the robot program and transmits the robot program to the robot controller 50X.
  • the robot IF access unit 415 transfers the robot IF 510 to the robot IF 510. Directly access and input the command coordinates.
  • FIG. 20 is a diagram for explaining a process of accessing the robot IF by the numerical control device according to the second embodiment.
  • FIG. 20 illustrates the NC program 203 before conversion including the NC robot program and the access data 204 used when accessing the robot IF 510.
  • the NC program 203 is a program having the same command as the NC program 201 described in FIG. 16 of the first embodiment, and only the block number is different.
  • the robot IF access unit 415 stores the access data 204.
  • the access data 204 is data for accessing the robot IF 510, and includes a function that specifies the operation content of the robot 60 and command coordinates (data) used when controlling the robot 60.
  • the robot IF access unit 415 accesses the robot IF 510 with respect to the NC robot program until the robot command mode is turned off by G199 of N26 after the robot command mode is turned on by G198 of N21. Specifically, the robot IF access unit 415 extracts a function and data included in the access data 204 based on the correspondence relationship information 102 and the NC robot program included in the NC program 203, and the robot is executed using the extracted function and data. Access (call and execute) the IF 510.
  • the NC program 203 here includes N23, N24, and N25 commands as commands of the NC robot program.
  • NC program 203 includes "N23 G200 RX10.RY10.RZ10.RA10.RB10.RC10.RS1RT5; (command coordinates (10, 10, 10, 10, 10, 10, 10, 1, 5))” and “N24 RX200. (command coordinates (200, 10, 10, 10, 10, 10, 1, 5, 5))” is a command for robot joint interpolation.
  • the robot IF access unit 415 extracts a function corresponding to the robot joint interpolation based on these robot joint interpolation commands, and accesses the robot IF 510 with the extracted function.
  • the robot IF access unit 415 responds to the above-described command of N23 to the robot IF 510 by saying "N23 rciMoveDirect(10,10,10,10,10,1,5,0); (command coordinate (10, 10, 10, 10, 10, 10, 1, 5, 0))” is accessed.
  • rciMoveDirect is a function that specifies robot joint interpolation for the robot IF 510.
  • the robot IF access unit 415 in response to the above-mentioned command of N24, notifies the robot IF 510 of "N24 rciMoveDirect(200,10,10,10,10,1,5,0); (command coordinate (200, 10, 10, 10, 10, 10, 1, 5, 0))” is accessed.
  • the robot controller 50Y controls the robot 60 according to the command coordinates included in the function. That is, the robot controller 50Y causes the robot 60 to perform an operation (robot joint interpolation) corresponding to the access. As a result, the robot 60 moves to the target value while performing joint interpolation.
  • N25 G201 RX30.; (command coordinates (30, 10, 10, 10, 10, 10, 10, 1, 5)) included in the NC program 203 is a command for robot linear interpolation.
  • the robot IF access unit 415 generates a function corresponding to the robot linear interpolation based on the robot linear interpolation command, and accesses the robot IF 510 with the generated function.
  • the robot IF access unit 415 responds to the above-mentioned command of N25 to the robot IF 510 by saying "N25 rciMoveLinear(30,10,10,10,10,1,5,0); (command coordinate (30, 10, 10, 10, 10, 10, 1, 5, 0))” is accessed.
  • rciMoveLinear is a function that specifies robot linear interpolation for the robot IF 510.
  • the robot IF access unit 415 accesses the robot IF 510, the robot IF 510 causes the robot 60 to perform an operation (robot linear interpolation) corresponding to the access.
  • the robot IF 510 controls the robot 60 according to the command coordinates included in the function. As a result, the robot 60 moves to the target value while being linearly interpolated.
  • FIG. 21 is a flowchart of the access data generation processing procedure by the numerical controller according to the second embodiment.
  • the numerical controller 1Y creates a function and command coordinates in the access data and accesses the robot IF 510 according to the function and command coordinates will be described.
  • steps S1 to S3 shown in FIG. 21 are the same as the processes described in FIG. 15 of the first embodiment.
  • the robot IF access unit 415 determines a function to be designated when accessing the robot IF 510 for each type of operation, based on the NC robot program in the NC program. Command coordinates corresponding to the command coordinates set in the NC robot program are set in this function.
  • the robot IF access unit 415 accesses the robot IF 510 by designating the determined function.
  • the robot IF access unit 415 accesses the robot IF 510 (step S10), specifies, for example, a function corresponding to each operation of the following (function 4) to (function 8), and inputs command coordinates.
  • (Function 4) Direction angle control parameter setting (Function 5) Robot joint interpolation (Function 6) Continuous operation designation (Function 7) Robot linear interpolation (Function 8) Robot circular interpolation
  • the robot IF access unit 415 inputs a command coordinate by designating a function to the robot IF 510, whereby the robot IF 510 sets data of the command coordinate in the designated function.
  • the robot controller 50Y controls the robot 60 according to the data set in the robot IF 510 (step S11).
  • the robot command analysis unit 371 analyzes the robot mode off command (G199)
  • the numerical controller 1Y turns off the robot mode and ends the control to the robot 60 (step S7).
  • the user can control the robot 60 by the NC program by creating a command to the robot 60 with the NC program without the knowledge of the robot program. Work efficiency is improved.
  • Embodiment 3 Next, a third embodiment of the present invention will be described with reference to FIGS.
  • the third embodiment it is possible to edit the NC robot program and check the state of the robot 60 on the display screen displayed by the display unit 4 arranged on the machine tool 70.
  • FIG. 22 is a diagram showing a configuration example of a numerical control device according to the third embodiment.
  • constituent elements that achieve the same functions as those of the numerical control device 1X according to the first embodiment shown in FIG. 2 are designated by the same reference numerals, and redundant description will be omitted.
  • the numerical control device 1Xa includes a control calculation unit 2Xa instead of the control calculation unit 2X included in the numerical control device 1X. Further, the control calculation unit 2Xa includes an input control unit 32a instead of the input control unit 32 and a screen processing unit 31a instead of the screen processing unit 31 as compared with the control calculation unit 2X.
  • the input control unit 32a includes an NC robot program editing unit 321, and the screen processing unit 31a includes an NC robot data display unit 311.
  • the NC robot program editing unit 321 edits the NC robot program based on the information input to the input operation unit 3X by the user.
  • the NC robot program editing unit 321 stores the edited NC robot program in the storage unit 34 via the data setting unit 33.
  • the NC robot data display unit 311 reads the edited NC robot program from the storage unit 34 and displays it on the display unit 4.
  • the display unit 4 of the numerical controller 1Xa also displays an edit screen 401 and a robot status display screen 402, which will be described later.
  • FIG. 23 is a diagram showing an example of an NC robot program editing screen displayed by the numerical control device according to the third embodiment.
  • FIG. 23 shows an edit screen 401 which is a screen displayed when editing the NC robot program.
  • an input area A1 a guidance display area A2, a command setting data input area A3, a help display area A4, and an edit content display area A5 are displayed.
  • the input area A1 is an area for displaying the contents input as the NC robot program.
  • the NC robot program is displayed in the edit content display area A5.
  • an NC robot program can be created by inputting characters with an input device such as a keyboard.
  • the guidance display area A2 is an area for displaying the operation of the robot command, the meaning of the setting items, and the like with an image diagram and guidance. The content displayed in the guidance display area A2 is switched according to the selected robot command.
  • the command setting data input area A3 is an area for displaying the input data when the data (numerical value, etc.) of the robot command to be created is input.
  • the help display area A4 is an area for displaying the meaning and setting range of the setting item at the cursor position.
  • the edit content display area A5 is an area for displaying the edited NC robot program. On the edit screen 401, the edit content display area A5 is arranged in the area on the right side of the edit screen 401. When the input key is pressed, the edited NC robot program is displayed in the edit content display area A5.
  • Input of data to the edit screen 401 is performed by inputting data to the input operation unit 3X.
  • the code or the like input to the input operation unit 3X is sent to the NC robot program editing unit 321.
  • the NC robot program editing unit 321 edits the NC robot program by executing a process according to the code input to the input operation unit 3X.
  • the NC robot program edited by the NC robot program editing unit 321 is stored in the NC program storage area 343 of the storage unit 34.
  • NC robot data display unit 311 reads the edited NC robot program from the NC program storage area 343 and displays it on the display unit 4.
  • the state of the robot 60 and the data of the robot 60 can be confirmed on the robot state display screen displayed on the display unit 4.
  • the state display screen for displaying the state of the robot 60 that is, the robot state display screen will be described.
  • FIG. 24 is a diagram showing an example of a robot status display screen displayed by the numerical control device according to the third embodiment.
  • the following contents (B1) to (B8) are displayed.
  • the robot controller connection state indicates whether or not the robot controller 50X is connected to the robot 60.
  • the robot controller status indicates the state of the robot controller 50X.
  • the operation mode indicates the operation mode of the robot 60.
  • the operation mode includes an automatic operation mode and a manual operation mode.
  • the manual mode indicates whether or not the robot incremental value command can be manually input when the operation mode is the manual operation mode.
  • the robot operation status indicates the operation state of the robot 60.
  • the robot operation status includes that the robot 60 is stopped and that the robot 60 is operating.
  • (B6) Robot override is the state of the override switch.
  • the override switch is a switch for multiplying the feed rate designated by the NC program by a multiplication factor.
  • the override switch is arranged in the input operation unit 3X. In FIG. 22, illustration of the override switch is omitted.
  • the override switch is a switch for multiplying the feed rate specified by the NC robot program by a multiplication factor (override).
  • the override switch may multiply the feed rate designated by the NC program for the machine tool 70 by a multiplication factor.
  • An override control unit included in the control calculation unit 22 detects the operation state of the override switch, and sends the ratio (%) and speed data corresponding to the detected state to the robot control unit 41X.
  • the robot control unit 41X sends the speed data to the robot controller 50X such that the speed of the robot 60 becomes 10% of the speed indicated by the speed data.
  • the robot coordinate system display shows the coordinate system set in the coordinate system of the robot 60.
  • the type of the base coordinate system (B) is the type indicated by “1”
  • the type of the tool coordinate system (T) is the type indicated by “2”
  • the tool type of the tool coordinate system (I ) Is the type indicated by “0”.
  • the numerical controller 1Xa operates the robot 60 in the base coordinate system of the type indicated by "1”
  • the robot coordinate system setting command the tool coordinate system. If is designated, the robot 60 is operated in the tool coordinate system of the type indicated by “2”.
  • the modal display shows the modal command being executed.
  • the NC robot data display unit 311 reads out the data related to the robot 60 that are collectively stored in the display data storage area 344 of the storage unit 34 and display the data on the display unit 4.
  • the user of the numerical control device 1Xa does not have to edit the NC robot program and check the state of the robot 60 with respect to the robot controller 50X, and the numerical control device 1Xa edits the NC robot program and the robot 60.
  • the status display of can be performed. Therefore, the work efficiency of program creation is improved.
  • the robot 60 is manually operated using the manual handle or the jog switch provided in the numerical controller.
  • FIG. 25 is a diagram showing the configuration of a control system including the numerical control device according to the fourth embodiment.
  • constituent elements that achieve the same functions as those of the control system 100A of the first embodiment shown in FIG.
  • the control system 100B includes a machine tool 70, a numerical controller 1Z, a robot controller 50X, and a robot 60.
  • the numerical controller 1Z includes a CNC unit 6 and an input operation section 3Z.
  • the input operation unit 3Z includes an input/output unit 51, an emergency stop button 52, a manual handle 55, and an operation panel 54.
  • only one manual handle 55 is arranged in the numerical controller 1Z arranged in the machine tool 70.
  • only one manual handle is mounted on the machine tool. Therefore, in the control system 100B, one manual handle 55 is switched and used for the machine tool 70 and the robot 60.
  • the operation panel 54 includes a jog switch 57, an override switch 56, and a changeover switch 58 in addition to the function of the operation panel 53 described in the first embodiment.
  • the manual handle 55 is a handle for manually operating the machine tool 70 and the robot 60.
  • the same manual handle 55 is used when the machine tool 70 is manually operated by a handle and when the robot 60 is manually operated by a handle.
  • the manual handle 55 may be arranged on the operation panel 54.
  • the override switch 56 is a switch for multiplying the feed rate designated by the NC robot program by a multiplication factor (override). Note that the override switch 56 may multiply the feed rate designated by the NC program for the machine tool 70 by a multiplication factor.
  • the jog switch 57 is a switch for jogging the machine tool 70 and the robot 60.
  • the jog switch 57 may be used only for a jog operation on the machine tool 70. In this case, the jog operation on the robot 60 is performed on the screen displayed on the display unit 4.
  • the manual handle 55 and the jog switch 57 are manual operation parts. Further, the manual operation on the machine tool 70 is the first manual operation, and the manual operation on the robot 60 is the second manual operation.
  • the changeover switch 58 is a switch for changing over the manual handle 55 and the jog switch 57 for the robot 60 or the machine tool 70.
  • the changeover switch 58 switches the operation target by the handle operation. That is, the changeover switch 58 inputs data corresponding to the handle operation or the jog switch 57 to the control calculation unit 2Z described later as operation data indicating the operation to the machine tool 70, or an operation indicating the handle operation to the robot 60. It is switched whether the data is input to the control calculation unit 2Z.
  • FIG. 26 is a diagram showing a configuration example of the numerical control device according to the fourth embodiment.
  • constituent elements that achieve the same functions as those of the numerical control device 1X of the first embodiment shown in FIG. 2 are designated by the same reference numerals, and a duplicate description will be omitted.
  • the manual handle 55, the jog switch 57, and the override switch 56 are illustrated as the constituent elements of the input operation unit 3Z, but the other constituent elements are omitted.
  • the numerical control device 1Z includes a control calculation unit 2Z instead of the control calculation unit 2X.
  • the control calculation unit 2Z includes a control signal processing unit 35Z instead of the control signal processing unit 35X.
  • the control signal processing unit 35Z includes a handlebar switching unit 351 and a robot axis selecting unit 352.
  • the handlebar switching unit 351 confirms the state of the selector switch 58 for switching the operation target by the handlebar operation with respect to the operation panel 54, and the manual handlebar 55 is in the state of controlling the machine tool 70 or the state of controlling the robot 60. To determine if. The handle switching unit 351 switches whether to handle the manual handle 55 as a handle operation for the robot 60 or a machine tool 70 based on the state of the selector switch 58.
  • the handle switching unit 351 stores the data corresponding to the handle operation in the shared area 345 as the data for operating the robot 60.
  • the data for operating the robot 60 is data of the handle pulse generator output by the manual handle 55 in response to the handle operation, and corresponds to the movement amount for moving a specific portion of the robot 60.
  • the handle switching unit 351 stores the data corresponding to the handle operation in the shared area 345 as the data for operating the machine tool 70.
  • the data for operating the machine tool 70 is data of the handle pulse generator output by the manual handle 55 in response to the handle operation, and corresponds to the amount of movement for moving a specific portion of the machine tool 70.
  • a button for designating the NC axis is arranged for each NC axis.
  • the button for designating the NC axis is used as a button for designating the robot axis when the robot 60 is in a controlled state.
  • the robot axis selection unit 352 corresponds to the button designated by the user based on the information indicating the correspondence between the button designating the NC axis and the button designating the robot axis. Select the robot axis. Information indicating the correspondence between the NC axis and the robot axis is stored in the storage unit 34, for example.
  • the robot axis selection unit 352 stores the selected robot axis in the shared area 345.
  • the control calculation unit 2Z also includes a manual operation data conversion unit 42 and an override control unit 43.
  • the manual operation data conversion unit 42 reads the data corresponding to the handle operation by the user.
  • the data corresponding to the steering wheel operation is the data of the steering wheel pulse generator, and corresponds to the movement amount for moving the robot 60.
  • the manual operation data conversion unit 42 reads the data of the handle pulse generator from the shared area 345 when the data corresponding to the handle operation is the data for operating the robot 60.
  • the manual operation data conversion unit 42 sends the read data to the robot controller 50X as the data of the robot axis selected by the operation on the operation panel 54 (the data of the robot coordinate system). That is, the manual operation data conversion unit 42 creates a robot program that specifies the robot axis selected by the robot axis selection unit 352 and the movement amount stored in the shared area 345, and sends the robot program to the robot controller 50X. When a plurality of robot axes are selected, the manual operation data conversion unit 42 distributes data for operating the robot 60 to each robot axis.
  • the override control unit 43 detects the state of the override switch 56 and sends the ratio of speed data corresponding to the detected state to the manual operation data conversion unit 42.
  • the numerical controller 1Z operates the machine tool 70 in response to the handle operation by the user.
  • the jog operation may be switched between the machine tool 70 and the robot 60 by the same method as the manual handle 55.
  • the manual operation data conversion unit 42 reads the data corresponding to the jog operation from the shared area 345 and converts the read data into the data of the robot axis selected by the user.
  • the data for operating the robot 60 is the data output by the jog switch 57 in response to the jog operation, and corresponds to the movement amount for moving a specific portion of the robot 60.
  • the interpolation processing unit 38 reads the data corresponding to the jog operation from the shared area 345, and the read data is the data of the drive axis or the spindle selected by the user. To be sent to the machine tool 70.
  • the numerical controller 1Z may display a jog operation acceptance screen, which is a screen for accepting a jog operation on the robot 60, on the display unit 4.
  • FIG. 27 is a diagram showing an example of a jog operation reception screen displayed by the numerical control device according to the fourth embodiment.
  • the jog operation reception screen 403 has an area C1 that displays the names of robot axes that can be selected as operation targets for the robot 60.
  • the user touches the desired robot axis name to select the robot axis.
  • the X axis is selected as the robot axis.
  • the jog operation reception screen 403 displays a jog button C2 for performing a jog operation.
  • the numerical controller 1Z receives a jog operation (manual operation) on the X axis of the robot axis. At this time, if the operation of the robot 60 is too fast and the robot 60 is in the state of being controlled manually, the speed of the robot 60 can be reduced by the override switch 56.
  • the override control unit 43 detects the state of the override switch 56 and sends the ratio (%) and speed data corresponding to the detected state to the manual operation data conversion unit 42.
  • the manual operation data conversion unit 42 sends the speed data to the robot controller 50X such that the speed of the robot 60 becomes 10% of the speed indicated by the speed data.
  • the user of the numerical control device 1Z does not need to manually operate the robot 60 with respect to the robot controller 50X, and the numerical control device 1Z can manually operate the robot 60. Since this can be performed, work efficiency such as teaching work for teaching the position of the robot hand 61 by the user is improved.
  • control arithmetic unit 2X included in the numerical controller 1X the hardware of the control arithmetic unit 2X included in the numerical controller 1X, the control arithmetic unit 2Xa included in the numerical controller 1Xa, the control arithmetic unit 2Y included in the numerical controller 1Y, and the control arithmetic unit 2Z included in the numerical controller 1Z.
  • the configuration will be described. Since the control calculation units 2X, 2Xa, 2Y, 2Z have the same hardware configuration, the hardware configuration of the control calculation unit 2X will be described here.
  • FIG. 28 is a diagram illustrating a hardware configuration example of the control calculation unit according to the first embodiment.
  • the control calculation unit 2X can be realized by the processor 301 and the memory 302 shown in FIG.
  • the processor 301 are a CPU (Central Processing Unit, a central processing unit, a processing unit, an arithmetic unit, a microprocessor, a microcomputer, a processor, and a DSP (Digital Signal Processor)) or a system LSI (Large Scale Integration).
  • An example of the memory 302 is RAM (Random Access Memory) or ROM (Read Only Memory).
  • the control calculation unit 2X is realized by the processor 301 reading and executing a program stored in the memory 302 for executing the operation of the control calculation unit 2X. It can also be said that this program causes a computer to execute the procedure or method of the control calculation unit 2X.
  • the memory 302 is also used as a temporary memory when the processor 301 executes various processes.
  • the program executed by the processor 301 may be a computer program product having a computer-readable, non-transitory recording medium containing a plurality of instructions for performing data processing. ..
  • the program executed by the processor 301 causes a computer to execute data processing by a plurality of instructions.
  • control calculation unit 2X may be realized by dedicated hardware. Further, the functions of the control calculation unit 2X may be partially implemented by dedicated hardware and partially implemented by software or firmware.
  • the numerical control devices 1Xa and 1Y may be arranged in the control system 100A or may be arranged in the control system 100B. Further, the numerical control device 1Z may be arranged in the control system 100A. Further, in the control calculation units 2Y and 2Z, a screen processing unit 31a and an input control unit 32a may be arranged instead of the screen processing unit 31 and the input control unit 32. Further, the numerical control devices 1Xa and 1Z may be provided with a robot control unit 41Y and a robot controller 50Y instead of the robot control unit 41X and the robot controller 50X.

Abstract

数値制御装置(1X)が、工作機械(70)およびロボット(60)を、第1の座標系で規定されたNCプログラムを用いて制御する制御演算部(2X)を有し、制御演算部(2X)は、第1のプログラム言語で記述された工作機械(70)への指令である第1の指令と第1のプログラム言語で記述されたロボットへの指令である第2の指令とを含んだNCプログラムを記憶する記憶部(34)と、第2の指令を、ロボット(60)を制御する際に用いられるロボットプログラムである第3の指令に変換するプログラム変換部(414)と、を備え、制御演算部(2X)は、第1の指令を用いて工作機械(70)を制御し、第3の指令を用いてロボット(60)を制御する。

Description

数値制御装置および数値制御方法
 本発明は、ロボットおよび工作機械を制御する数値制御装置および数値制御方法に関する。
 数値制御装置の1つに、被加工物の加工を行う工作機械の制御と、被加工物の搬送を行うロボットの制御とを並行して実行する制御装置がある。
 特許文献1に記載の制御装置は、工作機械を制御するための予め作成されている数値制御プログラムと、ロボットを制御するための予め作成されているロボットプログラムとを実行することによって、工作機械およびロボットを並行して制御している。
特許第3199724号公報
 しかしながら、上記特許文献1の技術では、数値制御プログラムとロボットプログラムとでプログラム言語が異なるので、数値制御プログラムを用いてロボットを制御することはできなかった。このため、ロボットを制御するためには、数値制御プログラムとは別にロボットを制御するためのロボットプログラムを作成しておく必要があった。
 本発明は、上記に鑑みてなされたものであって、数値制御プログラムを用いてロボットを制御することができる数値制御装置を得ることを目的とする。
 上述した課題を解決し、目的を達成するために、本発明の数値制御装置は、工作機械およびロボットを、第1の座標系で規定された数値制御プログラムを用いて制御する制御演算部を有する。制御演算部は、第1のプログラム言語で記述された工作機械への指令である第1の指令と第1のプログラム言語で記述されたロボットへの指令である第2の指令とを含んだ数値制御プログラムを記憶する記憶部と、第2の指令を、ロボットを制御する際に用いられるロボットプログラムである第3の指令に変換する変換部と、を備える。制御演算部は、第1の指令を用いて工作機械を制御し、第3の指令を用いてロボットを制御する。
 本発明にかかる数値制御装置は、数値制御プログラムを用いてロボットを制御することができるという効果を奏する。
実施の形態1にかかる数値制御装置を備えた制御システムの構成を示す図 実施の形態1にかかる数値制御装置の構成例を示す図 実施の形態1にかかる数値制御装置が用いるNCロボットプログラムの指令の一覧情報を示す図 実施の形態1にかかる数値制御装置が用いるロボット関節補間指令を説明するための図 実施の形態1にかかる数値制御装置が用いるロボット関節補間指令の一覧情報を示す図 実施の形態1にかかる数値制御装置が用いるロボット関節補間指令のアドレスの一覧情報を示す図 実施の形態1にかかる数値制御装置が用いる連続動作設定指令を説明するための図 実施の形態1にかかる数値制御装置が用いるロボット直線補間指令を説明するための図 実施の形態1にかかる数値制御装置が用いるロボット直線補間指令の一覧情報を示す図 実施の形態1にかかる数値制御装置が用いるロボット円弧補間指令を説明するための図 実施の形態1にかかる数値制御装置が用いるロボット円弧補間指令の一覧情報を示す図 実施の形態1にかかる数値制御装置によって方向角が設定されていない場合のロボットに対する制御を説明するための図 実施の形態1にかかる数値制御装置によって方向角が設定されている場合のロボットに対する制御を説明するための図 実施の形態1にかかる数値制御装置で用いられる、NC座標系とロボット座標系との対応関係を示す図 実施の形態1にかかる制御システムによる、NCプログラムを用いたロボット制御の処理手順を示すフローチャート 実施の形態1にかかる数値制御装置による、NCプログラムからロボットプログラムへの変換処理を説明するための図 実施の形態1にかかる数値制御装置によって制御される、工作機械およびロボットの動作手順を説明するための図 図17に示した動作が実行される際に用いられるNCプログラムを示す図 実施の形態2にかかる数値制御装置の構成例を示す図 実施の形態2にかかる数値制御装置によるロボットIFへのアクセス処理を説明するための図 実施の形態2にかかる数値制御装置によるアクセスデータの生成処理手順を示すフローチャート 実施の形態3にかかる数値制御装置の構成例を示す図 実施の形態3にかかる数値制御装置が表示する、NCロボットプログラムの編集画面の例を示す図 実施の形態3にかかる数値制御装置が表示するロボット状態表示画面の例を示す図 実施の形態4にかかる数値制御装置を備えた制御システムの構成を示す図 実施の形態4にかかる数値制御装置の構成例を示す図 実施の形態4にかかる数値制御装置が表示するジョグ操作受付画面の例を示す図 実施の形態1にかかる制御演算部のハードウェア構成例を示す図
 以下に、本発明の実施の形態にかかる数値制御装置および数値制御方法を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
実施の形態1.
 図1は、実施の形態1にかかる数値制御装置を備えた制御システムの構成を示す図である。制御システム100Aは、数値制御(NC:Numerical Control)プログラムを用いて工作機械70およびロボット60を制御するシステムである。
 制御システム100Aは、工作機械70と、数値制御装置1Xと、ロボットコントローラ50Xと、ロボット60とを備えている。数値制御装置1Xは、CNC(Computer Numerical Control:コンピュータ数値制御)ユニット6と、入力操作部3Xとを備えている。
 CNCユニット6は、工作機械70、入力操作部3X、およびロボットコントローラ50Xに接続されている。また、ロボットコントローラ50Xは、入力操作部3Xおよびロボット60に接続されている。CNCユニット6とロボットコントローラ50Xとは、例えば、LAN(Local Area Network)を介して接続されている。
 制御システム100Aでは、工作機械70、数値制御装置1X、およびロボットコントローラ50Xの間で通信を実行し、ロボットコントローラ50Xおよびロボット60の間で通信を実行する。このように、制御システム100Aでは、ロボットコントローラ50Xを介して数値制御装置1Xと、ロボット60とが接続されており、数値制御装置1Xは、ロボットコントローラ50Xを介してロボット60を制御する。以下の説明では、数値制御装置1Xによるロボット60の制御を説明する際に、ロボットコントローラ50Xが介されていることを省略する場合がある。
 数値制御装置1Xは、工作機械70に配置されている。数値制御装置1Xは、工作機械70に対して工具を使った加工ワーク(被加工物)の加工を実行させるとともに、ロボット60に対して加工ワークの搬送を実行させるコンピュータである。数値制御装置1Xは、GコードプログラムといったNCプログラムを用いて、工作機械70およびロボット60を制御する。NCプログラムには、第1のプログラム言語で記述された工作機械70への指令である第1の指令と、第1のプログラム言語で記述されたロボット60への指令である第2の指令とが含まれている。数値制御装置1Xは、NCプログラムのうちの第2の指令を、第2のプログラム言語で記述されたロボットプログラムの指令である第3の指令に変換し、第3の指令を用いてロボット60を制御する。
 入力操作部3Xは、ユーザがCNCユニット6およびロボットコントローラ50Xを操作するための装置である。入力操作部3Xは、入出力ユニット51、非常停止ボタン52、および操作盤53を備えている。入力操作部3Xは、ユーザ操作に対応する信号をCNCユニット6およびロボットコントローラ50Xに送ることによって、CNCユニット6およびロボットコントローラ50Xを操作する。
 操作盤53は、ユーザからの操作を受け付けて、操作に対応する信号を入出力ユニット51に送る。非常停止ボタン52は、ユーザによって押下されると、ロボットコントローラ50Xを停止させるための信号をロボットコントローラ50Xに送るとともに、工作機械70を停止させるための信号を入出力ユニット51に送る。入出力ユニット51は、操作盤53から送られてくる信号および非常停止ボタン52から送られてくる信号を、CNCユニット6に送る。非常停止ボタン52および入出力ユニット51は、操作盤53に配置されてもよい。
 ロボットコントローラ50Xは、数値制御装置1Xから送られてくるロボットプログラムにしたがってロボット60を制御する。また、ロボットコントローラ50Xは、非常停止ボタン52から信号が送られてくると、ロボット60の動作を停止させる。
 ロボット60は、ロボットハンド61によって加工対象物である加工ワークを把持し、把持した加工ワークを搬送する。ロボット60は、加工前の加工ワークを工作機械70にロードし、加工後の加工ワークを工作機械70からアンロードする。なお、ロボット60は、加工ワークの搬送以外の処理を実行してもよい。
 CNCユニット6は、後述する制御演算部2Xと、表示部4とを含んで構成されている。CNCユニット6は、NCプログラムを用いて、工作機械70およびロボット60を制御する。また、CNCユニット6は、入力操作部3Xから信号を受信すると、受信した信号に対応する処理を工作機械70に実行させる。また、CNCユニット6は、工作機械70の状態、ロボット60の状態などを表示する。
 工作機械70は、NC工作機械であり、2軸以上の駆動軸によって工具と加工ワークとを相対的に移動させながら、工具で加工ワークを加工する。工作機械70の座標系である第1の座標系とロボット60の座標系である第2の座標系とは異なる座標系である。工作機械70は、直交座標系で制御され、例えば3軸方向に工具または加工ワークを移動させる。ロボット60は、回転軸を備えており、例えば、4軸以上の方向に駆動する。ロボット60は、複数の関節と複数のアームを備えており、1つの関節が1つのアームを1軸以上の方向に移動させる。
 図2は、実施の形態1にかかる数値制御装置の構成例を示す図である。数値制御装置1Xは、制御演算部2Xと、入力操作部3Xと、表示部4と、PLC(Programmable Logic Controller:プログラマブルロジックコントローラ)36を操作するための機械操作盤などのPLC操作部5とを有する。図2には、数値制御装置1Xとともに、工作機械70、ロボットコントローラ50X、およびロボット60が示されている。
 工作機械70は、工具および加工ワークを駆動する駆動部90を備えている。駆動部90の例は、加工ワークを回転させながら、工具を駆動する駆動機構である。実施の形態1では、工具の駆動方向が、例えばX軸方向に平行な方向とZ軸方向に平行な方向との2方向である。なお、軸方向は装置構成によるので、軸方向は、上記方向に限定されない。
 駆動部90は、数値制御装置1X上で規定された各軸方向に工具を移動させるサーボモータ901,902と、サーボモータ901,902の位置および速度を検出する検出器97,98とを備えている。また、駆動部90は、数値制御装置1Xからの指令に基づいて、サーボモータ901,902を制御する各軸方向のサーボ制御部を備えている。各軸方向のサーボ制御部は、検出器97,98からの位置および速度に基づいて、サーボモータ901,902へのフィードバック制御を行う。
 サーボ制御部のうちの、X軸サーボ制御部91は、サーボモータ901を制御することによって工具のX軸方向の動作を制御し、Z軸サーボ制御部92は、サーボモータ902を制御することによって工具のZ軸方向の動作を制御する。なお、工作機械70が2つ以上の刃物台を備えていてもよい。この場合、駆動部90は、1つの刃物台毎に、1組のX軸サーボ制御部91と、Z軸サーボ制御部92と、サーボモータ901,902と、検出器97,98とを備える。
 また、駆動部90は、加工ワークを回転させるための主軸を回転させる主軸モータ911と、主軸モータ911の位置および回転数を検出する検出器211とを備えている。検出器211が検出する回転数は、主軸モータ911の回転数に対応している。
 また、駆動部90は、数値制御装置1Xからの指令に基づいて、主軸モータ911を制御する主軸サーボ制御部200を備えている。主軸サーボ制御部200は、検出器211からの位置および回転数に基づいて、主軸モータ911へのフィードバック制御を行う。
 なお、工作機械70が2つの加工ワークを同時に加工する場合には、駆動部90は、主軸モータ911と、検出器211と、主軸サーボ制御部200とを2組備える。この場合、工作機械70は、2つ以上の刃物台を備えている。
 入力操作部3Xは、制御演算部2Xに情報を入力する手段である。入力操作部3Xは、キーボード、ボタンまたはマウスなどの入力手段によって構成され、ユーザによる数値制御装置1Xに対するコマンドなどの入力、またはNCプログラムもしくはパラメータなどを受付けて制御演算部2Xに入力する。表示部4は、液晶表示装置などの表示手段によって構成され、制御演算部2Xによって処理された情報を表示画面に表示する。表示部4の例は、液晶タッチパネルである。この場合、入力操作部3Xの一部の機能が、表示部4に配置されている。
 制御部である制御演算部2Xは、工作機械70の座標系で規定されたNCプログラムを用いて工作機械70およびロボット60を制御する。制御演算部2Xは、入力制御部32と、データ設定部33と、記憶部34と、画面処理部31と、解析処理部37と、制御信号処理部35Xと、PLC36と、補間処理部38と、加減速処理部39と、軸データ出力部40と、ロボット制御部41Xとを有する。なお、PLC36は、制御演算部2Xの外部に配置されてもよい。
 記憶部34は、パラメータ記憶エリア341、NCプログラム記憶エリア343、表示データ記憶エリア344、および共有エリア345を有している。パラメータ記憶エリア341内には、制御演算部2Xの処理で使用されるパラメータ等が格納される。具体的には、パラメータ記憶エリア341内には、数値制御装置1Xを動作させるための制御パラメータ、サーボパラメータおよび工具データが格納される。NCプログラム記憶エリア343内には、加工ワークの加工に用いられるNCプログラムが格納される。実施の形態1のNCプログラムは、工具を移動させる指令である移動指令と、ロボット60を制御するための指令とを含んでいる。
 表示データ記憶エリア344内には、表示部4で表示される画面表示データが格納される。画面表示データは、表示部4に情報を表示するためのデータである。また、記憶部34には、一時的に使用されるデータを記憶する共有エリア345が設けられている。
 画面処理部31は、表示データ記憶エリア344に格納された画面表示データを表示部4に表示させる制御を行う。入力制御部32は、入力操作部3Xから入力される情報を受付ける。データ設定部33は、入力制御部32で受付けられた情報を記憶部34に記憶させる。すなわち、入力操作部3Xが受付けた入力情報は、入力制御部32およびデータ設定部33を介して記憶部34に書き込まれる。
 制御信号処理部35Xは、PLC36に接続されており、PLC36から、工作機械70の機械を動作させるリレーなどの信号情報を受付ける。制御信号処理部35Xは、受付けた信号情報を、記憶部34の共有エリア345に書き込む。これらの信号情報は、加工運転時に補間処理部38が参照する。また、制御信号処理部35Xは、解析処理部37によって共有エリア345に補助指令が出力されると、この補助指令を制御信号処理部35Xが共有エリア345から読み出してPLC36に送る。補助指令は、数値制御軸である駆動軸を動作させる指令以外の指令である。補助指令の例は、MコードまたはTコードである。
 PLC36は、PLC36が実行する機械動作が記述されたラダープログラムを格納している。PLC36は、補助指令であるTコードまたはMコードを受付けると、ラダープログラムに従って補助指令に対応する処理を工作機械70に実行する。PLC36は、補助指令に対応する処理を実行した後、NCプログラムの次のブロックを実行させるために、機械制御が完了したことを示す完了信号を制御信号処理部35Xに送る。
 制御演算部2Xでは、制御信号処理部35Xと、解析処理部37と、補間処理部38と、ロボット制御部41Xとが記憶部34を介して接続されており、記憶部34を介して情報の書き込み、および読み出しを行う。以下の説明では、制御信号処理部35Xと、解析処理部37と、補間処理部38と、ロボット制御部41Xとの間の情報の書き込み、および読み出しを説明する際に記憶部34が介されていることを省略する場合がある。
 NCプログラムの選択は、ユーザが入力操作部3XでNCプログラム番号を入力することによって行われる。このNCプログラム番号は、入力制御部32およびデータ設定部33を介して共有エリア345に書き込まれる。機械操作盤等のサイクルスタートをトリガとして、解析処理部37は、選択されたNCプログラム番号を共有エリア345から読み出すと、選択されたNCプログラムをNCプログラム記憶エリア343内から読み出して、NCプログラムの各ブロック(各行)に対して解析処理を行う。解析処理部37は、例えば、Gコード(軸移動等に関する指令)、Tコード(工具交換指令など)、Sコード(主軸モータ回転数指令)、およびMコード(機械動作指令)を解析する。
 解析処理部37は、解析した行にMコードまたはTコードが含まれている場合には、解析結果を共有エリア345および制御信号処理部35Xを介してPLC36に送る。また、解析処理部37は、解析した行にMコードが含まれている場合には、Mコードを、制御信号処理部35Xを介してPLC36に送る。PLC36はMコードに対応する機械制御を実行する。実行が完了した場合、制御信号処理部35Xを介してMコードの完了を示す結果が記憶部34に書き込まれる。補間処理部38は記憶部34に書き込まれた実行結果を参照する。
 また、解析処理部37は、工作機械70へのGコードが含まれている場合には、共有エリア345を介して解析結果を補間処理部38に送る。具体的には、解析処理部37は、Gコードに対応する移動条件を生成して補間処理部38に送る。また、解析処理部37は、Sコードで指定された主軸回転数を補間処理部38に送る。主軸回転数は、単位時間あたりの主軸の回転の回数である。移動条件は、加工位置を移動させていくための工具送りの条件であり、刃物台を移動させる速度、刃物台を移動させる位置などで示される。例えば、工具の工具送りは、工具をX軸方向(+X方向)およびZ軸方向(+Z方向)に進ませる。
 また、解析処理部37は、ロボット指令解析部371を有している。ロボット指令解析部371は、接続されたロボット60の動作を解析する手段である。ロボット指令解析部371は、NCプログラムに含まれるロボット指令を解析し、解析結果を、共有エリア345を介してロボット制御部41Xに送る。ロボット指令の詳細については後述する。
 解析結果には、ロボット60の座標系を設定するための指令であるロボット座標系設定指令、ロボット60への指令をオン(有効)とするかオフ(無効)とするかが指定されたロボットモード指令、ロボット60の動作を規定したロボット動作指令などが含まれている。
 補間処理部38は、解析処理部37による解析結果のうち工作機械70への指令を用いて工作機械70を制御するためのデータを生成し、加減速処理部39に送る。補間処理部38は、第1の待ち合わせ部であるロボット指令待ち合わせ部381を備えている。ロボット指令待ち合わせ部381は、ロボット60と工作機械70との間で待ち合わせの処理を実行する場合に、特定のタイミングとなるまで工作機械70への指令(動作指令等)を待機させる。ロボット60と工作機械70との間における待ち合わせ処理については、後述する。
 ロボット制御部41Xは、座標設定部411、モード設定部412、第2の待ち合わせ部であるNC指令待ち合わせ部413、およびプログラム変換部414を有している。
 座標設定部411は、ロボット座標系設定指令に基づいて、ロボット60の座標系に、ベース座標系(工作機械70の機械座標系に相当)またはツール座標系(ロボット60が備えるロボットハンド61の座標系)を設定する。ロボット制御部41Xは、座標設定部411がロボット座標系設定指令に対応する座標系を設定した後は、設定した座標系でロボット60を動作させる。
 NC指令待ち合わせ部413は、ロボット60と工作機械70との間で待ち合わせの処理を実行する場合に、特定のタイミングとなるまでロボット60への指令を待機させる。
 変換部であるプログラム変換部414は、工作機械70の座標系で規定された指令(第2の指令)をロボット60の座標系で規定された指令(第3の指令)に変換することによって、ロボット60を制御する際に用いられるロボットプログラムを生成する。プログラム変換部414は、NCプログラム内のロボット60へのプログラムを、後述するロボット指令一覧情報101、対応関係情報102、関節補間情報103、アドレス情報104、直線補間情報105、および円弧補間情報106を用いて、ロボットコントローラ50Xで解釈可能なロボットプログラムに変換する。すなわち、プログラム変換部414は、NCプログラムで作成されているロボット60への指令を、ロボットプログラムの指令に変換する変換部である。NCプログラム内の指令のうちロボット60への指令は、後述するRX_、RY_、RZ_などを用いて記述される。プログラム変換部414は、ロボットプログラムをロボットコントローラ50Xに送る。
 モード設定部412は、ロボット指令解析部371から解析結果であるロボットモード指令を受け付ける。ロボットモード指令は、数値制御装置1Xからロボット60への指令をオンとするかオフとするかを指定した指令である。以下の説明では、ロボット60への指令をオンとすることを指定した指令をロボットモードのオン指令といい、ロボット60への指令をオフとすることを指定した指令をロボットモードのオフ指令という。
 モード設定部412は、ロボット指令解析部371からロボットモードのオン指令を受け付けると、この後ロボット60への指令が来ることをプログラム変換部414に通知する。ロボット制御部41Xは、モード設定部412がロボットモードのオン指令を受け付けた後は、新たにロボットモードのオフ指令を受け付けるまでの間、ロボット60への指令を受け付ける。
 ロボット制御部41Xは、モード設定部412がロボット指令解析部371からロボットモードのオフ指令を受け付けると、新たにロボットモードのオン指令を受け付けるまでの間、ロボット60への指令を受け付けない。ロボット制御部41Xがロボット60への指令を受け付けない状態で、ロボット制御部41Xにロボット60への指令が送られてくると、表示部4は、制御演算部2Xからの指示に従って、「プログラムエラー」を表示させる。ロボットモードのオン指令の例は、後述するG198であり、ロボットモードのオフ指令の例は、後述するG199である。
 ここで、数値制御装置1Xが用いる、ロボット60用のNCプログラム(以下、NCロボットプログラムという)で用いられる指令について説明する。図3は、実施の形態1にかかる数値制御装置が用いるNCロボットプログラムの指令の一覧情報を示す図である。図3では、NCロボットプログラムで用いられる指令の一覧情報であるロボット指令一覧情報101を示している。ロボット指令一覧情報101では、NCロボットプログラムで用いられる指令であるGコードと、機能とが対応付けされている。ロボット指令一覧情報101は、記憶部34内に格納されていてもよいし、数値制御装置1X内の記憶部34以外の記憶領域に格納されていてもよい。同様に、プログラム変換部414が用いる、対応関係情報102、関節補間情報103、アドレス情報104、直線補間情報105、および円弧補間情報106は、記憶部34内に格納されていてもよいし、数値制御装置1X内の記憶部34以外の記憶領域に格納されていてもよい。
 G198の機能は、ロボットモードをオンにする機能(ロボット指令オン)である。G199の機能は、ロボットモードをオフにする機能(ロボット指令オフ)である。数値制御装置1Xは、G198のモード実行中であっても、NC指令(工作機械70に対する指令)を実行することは可能である。また、本実施の形態1では、G198がモーダル指令である場合について説明するが、G198は、ロボット指令毎に記述されるワンショット指令であってもよい。モーダル指令は、複数のGコードに対して状態が保持されるGコードであり、ワンショット指令は、1つのブロック(1行)のみに適用されるGコードである。
 G200の機能は、ロボット60を関節補間で動作させる機能(ロボット関節補間)である。すなわち、G200は、ロボット60を関節補間で動作させるためのロボット関節補間指令である。
 G200.5の機能は、ロボット60を連続動作させる機能(連続動作の指定)である。すなわち、G200.5は、ロボット60を連続動作させる連続動作設定指令である。
 G201の機能は、ロボット60を直線補間で移動させる機能(ロボット直線補間)である。すなわち、G201は、ロボット60を直線補間で移動させるためのロボット直線補間指令である。
 G202の機能は、ロボット60を円弧補間で移動させる機能(ロボット円弧補間)である。すなわち、G202は、ロボット60を円弧補間で移動させるためのロボット円弧補間指令である。
 G243.1の機能は、方向角を制御するパラメータを設定するための指令(方向角制御パラメータ設定)である。すなわち、G243.1は、方向角を制御させるための指令である。
 G290の機能は、ロボット60を絶対値指令で動作させる機能(ロボット絶対値指令)であり、G291の機能は、ロボット60を増分値指令で動作させる機能(ロボット増分値指令)である。絶対値指令は、原点に対して停止位置が決まっている場合に使用される。したがって、絶対値指令では、原点からの位置が指定される。増分値指令は、現在の停止位置に対して、次の停止位置への移動量を指定したい場合に使用される。したがって、増分値指令では、移動量が指定される。G292の機能は、ロボット60に座標系を設定させる機能(ロボット座標系設定)である。
 図4は、実施の形態1にかかる数値制御装置が用いるロボット関節補間指令を説明するための図である。ロボット関節補間指令は、稼働する軸のうち移動距離が最大となる軸の移動時間が最小となるようロボット60を制御する指令である。ロボット60が備えるロボットハンド61の位置を始点PAから終点PBまで移動させる場合に数値制御装置1Xがロボット関節補間を指令すると、ロボットコントローラ50Xは、ロボット60が有する軸のうち始点PAから終点PBまでの移動距離が最大となる軸を抽出し、抽出した軸の移動時間が最小となるようロボット60を制御する。
 ここで、ロボット関節補間を実行させる指令であるロボット関節補間指令の種類について説明する。図5は、実施の形態1にかかる数値制御装置が用いるロボット関節補間指令の一覧情報を示す図である。図6は、実施の形態1にかかる数値制御装置が用いるロボット関節補間指令のアドレスの一覧情報を示す図である。図5では、ロボット関節補間指令の一覧情報である関節補間情報103を示しており、図6では、ロボット関節補間指令のアドレスの一覧情報であるアドレス情報104を示している。
 図5に示すように、ロボット関節補間指令には、3種類の指令方式がある。図6に示すアドレス情報104では、ロボット関節補間指令のアドレスと、アドレスが示す意味と、アドレスの説明とが対応付けされている。
 ロボット関節補間指令のうち、一つ目の指令方式は座標指令方式である。以下の説明では、ロボット関節補間指令の座標指令方式を座標指令方式CM1という。座標指令方式CM1は、ロボット座標上で指定した位置にロボット60の位置を制御する指令方式である。座標指令方式CM1では、「G200 RX_ RY_ RZ_ RA_ RB_ RC_ RS_ RT_ R_」のフォーマットでロボット関節補間が指令される。RX、RY、RZ、RA、RB、RC、RS、RTは、何れもロボット60への指令である。
 座標指令方式CM1におけるRX_、RY_、RZ_は、ロボット直交座標指令であり、RA_、RB_、RC_は、ロボット回転座標指令である。ロボット直交座標指令は、ロボット60の直交座標系(X軸、Y軸、Z軸)における座標(X座標、Y座標、Z座標)を指定した指令である。ロボット回転座標指令は、ロボット60の回転座標系(A軸、B軸、C軸)における座標(A座標、B座標、C座標)を指定した指令である。換言すると、座標指令方式CM1では、ロボット関節補間指令のアドレスが、X座標、Y座標、Z座標、A座標、B座標、C座標で示される。
 また、座標指令方式CM1におけるRS_はロボット姿勢データ(1)であり、RT_はロボット姿勢データ(2)である。ロボット姿勢データ(1)およびロボット姿勢データ(2)は、ロボット60の姿勢を指定したデータである。ロボット60は、複数の関節を有しているので、1つの位置が指定された場合であっても、種々の姿勢をとることができる。ロボット姿勢データ(1)およびロボット姿勢データ(2)では、ロボット60にとらせる姿勢が指定される。
 また、座標指令方式CM1におけるR_は、連続動作モードであるか否かを指定した指令である。R0は、連続動作が有効であり、R1は、連続動作が無効である。なお、座標指令方式CM1においてR_が省略されている場合には、R0として扱われる。このように、座標指令方式CM1の指令は、移動距離が最大となる軸の移動時間が最小となるよう、ロボット座標上で指定された位置にロボット60の位置を制御する指令である。
 ロボット関節補間指令のうち、二つ目の指令方式は、軸移動量指令方式である。以下の説明では、ロボット関節補間指令の軸移動量指令方式を軸移動量指令方式AM1という。ロボット関節補間指令の軸移動量指令方式AM1は、ロボット60の関節軸で指定した位置にロボット60の位置を制御する指令方式である。
 軸移動量指令方式AM1では、「G200 A1=_ A2=_ A3=_ A4=_ A5=_ A6=_ R_」のフォーマットでロボット関節補間指令が設定される。軸移動量指令方式AM1が増分値指令の場合、Ax=_は、ロボット60の回転軸である関節軸の軸移動量を示し、軸移動量指令方式AM1が絶対値指令の場合、Ax=_は、ロボット60の回転軸である関節軸の軸角度を示す。例えば、絶対値指令でA1=60の場合、関節軸は60°の位置に移動する。xは、関節軸の軸名称であり、ここでは、1~6の何れかである。例えば、軸移動量指令方式AM1におけるA1=abc(a,b,cは数字)は、角度abcにロボット60の関節を移動させる指令である。軸移動量であるAx=_の単位は、ロボット60の設定に関わらず角度である。
 このように、軸移動量指令方式AM1の指令は、移動距離が最大となる軸の移動時間が最小となるよう、ロボット60の関節軸で指定した位置にロボット60の位置を制御する指令である。軸移動量指令方式AM1におけるR_は、座標指令方式CM1におけるR_と同様に、連続動作モードであるか否かを指定した指令である。
 ロボット関節補間指令のうち、三つ目の指令方式は、教示位置指令方式である。以下の説明では、ロボット関節補間指令の教示位置指令方式を教示位置指令方式TM1という。ロボット関節補間指令の教示位置指令方式TM1は、予め教示された位置にロボット60の位置を制御する指令方式である。
 教示位置指令方式TM1では、「G200 P_ R_」のフォーマットでロボット関節補間が指令される。教示位置指令方式TM1におけるP_は、教示位置でありロボット60を移動させる位置を示している。教示位置は、数値制御装置1Xに記憶させたロボット60の指令位置である。このように、教示位置指令方式TM1の指令は、移動距離が最大となる軸の移動時間が最小となるよう、教示位置にロボット60の位置を制御する指令である。教示位置指令方式TM1におけるR_は、座標指令方式CM1におけるR_と同様に、連続動作モードであるか否かを指定した指令である。
 図7は、実施の形態1にかかる数値制御装置が用いる連続動作設定指令を説明するための図である。連続動作設定指令は、ロボット60の位置を、途中位置P2を経由させずに開始位置P1から到達位置P3まで移動させる指令である。連続動作設定指令が設定されている場合、すなわち連続動作設定が有効である場合、数値制御装置1Xは、経路T2(実線で示す軌跡)に沿ってロボット60を移動させる。一方、連続動作設定指令が設定されていない場合、すなわち連続動作設定が無効である場合、数値制御装置1Xは、経路T1(破線で示す軌跡)に沿ってロボット60を移動させる。すなわち、連続動作設定が無効である場合、数値制御装置1Xは、ロボット60の位置を、途中位置P2を経由させて開始位置P1から到達位置P3まで移動させる。
 つぎに、図8および図9を用いてロボット直線補間を説明する。図8は、実施の形態1にかかる数値制御装置が用いるロボット直線補間指令を説明するための図である。ロボット直線補間指令は、ロボット60が備えるロボットハンド61の位置を始点PCから終点PDまで直線補間で移動させる指令である。
 ここで、ロボット直線補間を実行させる指令であるロボット直線補間指令の種類について説明する。図9は、実施の形態1にかかる数値制御装置が用いるロボット直線補間指令の一覧情報を示す図である。図9では、ロボット直線補間指令の一覧情報である直線補間情報105を示している。図9に示すように、ロボット直線補間指令には、2種類の指令方式がある。
 ロボット直線補間指令のうちの第1の指令方式は座標指令方式である。以下の説明では、ロボット直線補間指令の座標指令方式を座標指令方式CM2という。座標指令方式CM2は、ロボット座標上で指定した位置にロボット60の位置を制御する指令方式である。座標指令方式CM2では、「G201 RX_ RY_ RZ_ RA_ RB_ RC_ RS_ RT_ R_」のフォーマットでロボット直線補間が指令される。座標指令方式CM2におけるRX_、RY_、RZ_、RA_、RB_、RC_、RS_、RT_、R_のアドレスおよび意味は、座標指令方式CM1におけるRX_、RY_、RZ_、RA_、RB_、RC_、RS_、RT_、R_と同じアドレスおよび意味である。
 ロボット直線補間指令のうちの第2の指令方式は教示位置指令方式である。以下の説明では、ロボット直線補間指令の教示位置指令方式を教示位置指令方式TM2という。教示位置指令方式TM2では、「G201 P_ R_」のフォーマットで教示位置が指令される。教示位置指令方式TM2のP_、R_は、教示位置指令方式TM1のP_、R_と同じである。
 つぎに、図10および図11を用いてロボット円弧補間を説明する。図10は、実施の形態1にかかる数値制御装置が用いるロボット円弧補間指令を説明するための図である。ロボット円弧補間指令は、ロボット60が備えるロボットハンド61の位置を、始点PEから補助点HPを通過して終点PFまで、円弧補間で移動させる指令である。
 ここで、ロボット円弧補間を実行させる指令であるロボット円弧補間指令の種類について説明する。図11は、実施の形態1にかかる数値制御装置が用いるロボット円弧補間指令の一覧情報を示す図である。図11では、ロボット円弧補間指令の一覧情報である円弧補間情報106を示している。
 図11に示すように、ロボット円弧補間指令には、2種類の指令方式がある。ロボット円弧補間指令のうちの第1の指令方式は座標指令方式である。以下の説明では、ロボット円弧補間指令の座標指令方式を座標指令方式CM3という。座標指令方式CM3は、ロボット座標上で指定した位置にロボット60の位置を制御する指令方式である。座標指令方式CM3では、「G202 RX_ RY_ RZ_ RA_ RB_ RC_ RS_ RT_ HX_ HY_ HZ_ HA_ HB_ HC_ HS_ HT_ R_ W_」のフォーマットでロボット円弧補間が指令される。座標指令方式CM3におけるRX_、RY_、RZ_、RA_、RB_、RC_、RS_、RT_、R_のアドレスおよび意味は、座標指令方式CM1におけるRX_、RY_、RZ_、RA_、RB_、RC_、RS_、RT_、R_と同じアドレスおよび意味である。
 座標指令方式CM3におけるHX_ HY_ HZ_ HA_ HB_ HC_ HS_ HT_は、補助点HPにおけるロボット座標系の値を示している。具体的には、座標指令方式CM3におけるHA_、HB_、HC_は、それぞれA軸、B軸、C軸のロボット回転座標であり、座標指令方式CM3におけるHX_、HY_、HZ_は、それぞれX軸、Y軸、Z軸のロボット直交座標である。
 また、座標指令方式CM3におけるHS_は、補助点HPにおけるロボット姿勢データ(1)であり、HT_は、補助点HPにおけるロボット姿勢データ(2)である。また、座標指令方式CM3におけるW_は、円弧補間指令で移動する角度である。W30が指令された場合、ロボット60の全体を支える土台は、補助点HPを経由して終点PFに向かう円弧経路上を30°分移動する。
 ロボット円弧補間指令のうちの第2の指令方式は教示位置指令方式である。以下の説明では、ロボット円弧補間指令の教示位置指令方式を教示位置指令方式TM3という。教示位置指令方式TM3では、「G202 P_ HP_ R_」のフォーマットで教示位置が指令される。
 教示位置指令方式TM3におけるP_は、教示位置(指定された終点)でありロボット60を移動させる位置を示している。教示位置指令方式TM3におけるHP_は、円弧形状を決めるための補助点HPの教示位置である。教示位置指令方式TM3のP_、R_は、教示位置指令方式TM1のP_、R_と同じである。
 次に、図12から図15を用いてロボット60に対する方向角の制御について説明する。図12は、実施の形態1にかかる数値制御装置によって方向角が設定されていない場合のロボットに対する制御を説明するための図である。図13は、実施の形態1にかかる数値制御装置によって方向角が設定されている場合のロボットに対する制御を説明するための図である。
 図12および図13では、数値制御装置1Xが直線補間を実行する場合の、ロボット60のロボットハンド61の動作を示している。方向角は、基準方向Q1に対するずれ角である。したがって、方向角の制御指定が有る場合、図13に示すように、ロボットハンド61は、直線補間移動する間に基準方向Q1に平行な方向に移動する。すなわち、方向角の制御指定が有る場合、ロボットハンド61は、一定方向を向いて移動する。一方、方向角の制御指定が無い場合、図12に示すように、ロボットハンド61は、直線補間移動する間に基準方向Q1に対して種々の傾きを発生させながら移動する。
 方向角制御パラメータ設定指令では、「G243.1 H_」のフォーマットで方向角の制御指定の有無が指令される。「G243.1 H_」におけるH_は、方向角の制御指定の「あり」または「なし」を指定する指令である。H0は、方向角の制御指定が有効であり、H1は、方向角の制御指定が無効である。
 ここで、NCプログラムで用いられる指令軸(NC軸)と、ロボットプログラムで用いられる指令軸(ロボット軸)との関係について説明する。図14は、実施の形態1にかかる数値制御装置で用いられる、NC座標系とロボット座標系との対応関係を示す図である。図14では、NCプログラムで用いられるNC座標系のNC軸と、ロボットプログラムで用いられるロボット座標系のロボット軸との対応関係である対応関係情報102を示している。
 対応関係情報102は、NCプログラムで設定されるアドレスとロボット座標系に設定する座標との対応関係、およびNCプログラムで設定される軸名称とロボット座標系に設定する軸名称との対応関係を含んでいる。
 NCプログラムで設定されるRX、RY、RZは直行軸を表しており、RX、RY、RZは、ロボット座標系のX、Y、Zに対応する。すなわち、RX、RY、RZのアドレスは、それぞれロボットプログラムでのX、Y、Zの座標に対応する。このため、ロボット60に対して、X、Y、Zの座標を設定したい場合、NCプログラムに対して、RX、RY、RZのアドレスにX、Y、Zの値を設定しておけばよい。
 NCプログラムで設定されるRA、RB、RCは回転軸を表しており、RA、RB、RCは、ロボット座標系のA、B、Cに対応する。すなわち、RA、RB、RCのアドレスは、それぞれロボットプログラムでのA、B、Cの座標に対応する。このため、ロボット60に対して、A、B、Cの座標を設定したい場合、NCプログラムに対して、RA、RB、RCのアドレスにA、B、Cの値を設定しておけばよい。
 NCプログラムで設定されるRS、RTは、ロボット60の姿勢を示しており、RS、RTのアドレスは、それぞれロボットプログラムでのS、Tに対応する。このため、ロボット60に対して、S、Tの姿勢を設定したい場合、NCプログラムに対して、RS、RTのアドレスにS、Tの値を設定しておけばよい。ロボット60の関節(回転軸)は、NC指令ではAx=で表され、ロボット座標ではAxで表される。図14では、xが1~6の6軸である場合を示している。
 このように、数値制御装置1Xでは、対応関係情報102において、NCプログラムにおける指令軸(指令座標)とロボットプログラムにおける指令軸(指令座標)とが対応付けされている。NCプログラムには、工作機械70用のNCプログラムと、ロボット60用のNCプログラムであるNCロボットプログラムとを格納しておく。数値制御装置1Xのプログラム変換部414は、対応関係情報102に基づいて、NCロボットプログラムをロボットプログラムに変換し、ロボットプログラムを用いてロボット60を制御する。
 次に、数値制御装置1Xによる、NCプログラムからロボットプログラムへの変換処理手順について説明する。図15は、実施の形態1にかかる制御システムによる、NCプログラムを用いたロボット制御の処理手順を示すフローチャートである。
 解析処理部37のロボット指令解析部371は、ロボットモードがオンであるか否かを判定する(ステップS1)。具体的には、ロボット指令解析部371は、G198のモード実行中(ロボット指令が有効)であるか、G199のモード実行中(ロボット指令が無効)であるかを判定する。ロボット指令解析部371は、解析結果を、記憶部34を介してモード設定部412に送る。
 ロボットモードがオフである場合(ステップS1、No)、数値制御装置1Xは、NCプログラムからロボットプログラムへの変換処理を行わない。一方、ロボットモードがオンである場合(ステップS1、Yes)、モード設定部412は、この後ロボット60への指令が来ることをプログラム変換部414に通知する。
 ロボット指令解析部371は、G198の後に続くブロックの指令を解析する。ロボット指令解析部371が解析する指令の例は、以下の(機能1)から(機能8)を指定した指令である(ステップS2)。
(機能1)ロボット座標系設定
(機能2)ロボット絶対値指令
(機能3)ロボット増分値指令
(機能4)方向角制御パラメータ設定
(機能5)ロボット関節補間
(機能6)連続動作の指定
(機能7)ロボット直線補間
(機能8)ロボット円弧補間
 ロボット指令解析部371は、解析結果をロボット制御部41Xまたは記憶部34の共有エリア345に送る。例えば、ロボット指令解析部371は、解析結果として、ロボット座標系設定を指示するロボット座標系設定指令を座標設定部411に送る。また、ロボット指令解析部371は、解析結果として、位置制御時の制御モードである位置制御モードを示す情報を記憶部34の共有エリア345に送る。
 これにより、数値制御装置1Xは、ロボット座標系および位置制御モードを設定する(ステップS3)。具体的には、座標設定部411は、ロボット座標系設定指令に基づいて、ロボット60の座標系に、ベース座標系またはツール座標系を設定する。ロボット制御部41Xは、座標設定部411がロボット座標系設定指令に対応する座標系を設定した後は、設定した座標系でロボット60を動作させる。これにより、ロボット60は、座標設定部411が設定した座標系で動作する。
 また、ロボット指令解析部371は、位置制御モードを示す情報として、ロボット絶対値指令のモードを実行中であること(絶対値指令実行中)を示す情報、またはロボット増分値指令でのモードを実行中であること(増分値指令実行中)を示す情報を共有エリア345に格納する。これにより、プログラム変換部414は、ロボット指令毎に、共有エリア345内に格納されている情報を参照し、絶対値指令実行中であるか増分値指令実行中であるかを確認する。プログラム変換部414は、絶対値指令実行中である場合には、ロボット指令の位置指令をロボット絶対値指令として扱い、増分値指令実行中である場合には、ロボット指令の位置指令をロボット増分値指令として扱う。
 次に、プログラム変換部414は、ロボット指令解析部371から送られてくるロボット指令のうち、以下の(機能4)から(機能8)を指定した指令に対して各動作のプログラム変換を行う。すなわち、プログラム変換部414は、NCロボットプログラムをロボットプログラムに変換する(ステップS4)。
(機能4)方向角制御パラメータ設定
(機能5)ロボット関節補間
(機能6)連続動作の指定
(機能7)ロボット直線補間
(機能8)ロボット円弧補間
 次に、プログラム変換部414は、変換したロボットプログラムを、ロボットコントローラ50Xに送信する(ステップS5)。ロボットコントローラ50Xは、プログラム変換部414から受信したロボットプログラムに従って、ロボット60を制御する(ステップS6)。
 この後、ロボット指令解析部371が、ロボットモードのオフ指令(G199)を解析すると、数値制御装置1Xは、ロボットモードをオフにして、ロボット60への制御を終了する(ステップS7)。
 ここで、プログラム変換部414によるNCロボットプログラムからロボットプログラムへの変換処理の例について説明する。図16は、実施の形態1にかかる数値制御装置による、NCプログラムからロボットプログラムへの変換処理を説明するための図である。図16では、NCロボットプログラムを含んだ変換前のNCプログラム201と、変換後のロボットプログラム202とを図示している。プログラム変換部414は、NCプログラム201に含まれるNCロボットプログラムをロボットプログラム202に変換する。
 プログラム変換部414は、N11のG198によってロボット指令モードがオンになった後、N16のG199によってロボット指令モードがオフとなるまでのNCロボットプログラムをロボットプログラムに変換する。
 NCプログラム201に含まれている、「N13 G200 RX10. RY10. RZ10. RA10. RB10. RC10. RS1 RT5;(指令座標(10, 10, 10, 10, 10, 10, 1, 5))」、および「N14 RX200.;(指令座標(200, 10, 10, 10, 10, 10, 1, 5))」は、ロボット関節補間である。プログラム変換部414は、これらのロボット関節補間を、ロボット指令一覧情報101、対応関係情報102、関節補間情報103、およびアドレス情報104を用いて、ロボット関節補間に対応するロボットプログラム命令に変換する。具体的には、プログラム変換部414は、NCプログラム201のN13を、「N13 MOVEA (10.,10.,10.,10.,10.,10.)(1,5,0);(指令座標(10, 10, 10, 10, 10, 10, 1, 5, 0))」に変換する。また、プログラム変換部414は、NCプログラム201のN14を、「N14 MOVEA (200.,10.,10.,10.,10.,10.)(1,5,0);(指令座標(200, 10, 10, 10, 10, 10, 1, 5, 0))」に変換する。なお、NCプログラム201では、R_が省略されているので、プログラム変換部414は、ロボットプログラム命令において連続動作を有効としている。
 また、NCプログラム201に含まれている、「N15 G201 RX30.;(指令座標(30, 10, 10, 10, 10, 10, 1, 5))」は、ロボット直線補間である。プログラム変換部414は、このロボット直線補間を、ロボット指令一覧情報101、対応関係情報102、アドレス情報104、および直線補間情報105を用いて、ロボット直線補間に対応するロボットプログラム命令に変換する。具体的には、プログラム変換部414は、NCプログラム201のN15を、「N15 MOVEB (30.,10.,10.,10.,10.,10.)(1,5,0);(指令座標(30, 10, 10, 10, 10, 10, 1, 5, 0))」に変換する。なお、NCプログラム201にロボット円弧補間が含まれている場合、プログラム変換部414は、ロボット円弧補間を、MOVECで示されるロボットプログラム命令に変換する。
 次に、図17および図18を用いて工作機械70とロボット60との連携動作について説明する。図17は、実施の形態1にかかる数値制御装置によって制御される、工作機械およびロボットの動作手順を説明するための図である。
 制御システム100Aでは、ロボット60が、未加工品置き場75に置いてある未加工の加工ワーク82を工作機械70にロードする(ST1)。工作機械70は、工具71を用いて加工ワーク82を加工する(ST2)。そして、ロボット60が、加工済みの加工ワーク82(完成品)を工作機械70からアンロード(ST3)し、加工済みの加工ワーク82を完成品置き場77の仮置き場76に置く。その後、ロボット60が、外部ツールであるバリ取り工具84をロボットハンド61でつかみ、バリ取り工具84が加工済みの加工ワーク82のバリ取りを行う(ST4)。なお、以下の説明では、未加工の加工ワーク82を未加工ワークといい、加工済みの加工ワーク82を加工済みワークという場合がある。
 図18は、図17に示した動作が実行される際に用いられるNCプログラムを示す図である。図18に示すNCプログラム501は、図17に示した動作を実行するためのロボット指令を含んでいる。
 NCプログラム501のうちの第1系統は、工作機械70の動作が記述されたNCプログラムであり、工作機械70を動作させるための指令が含まれている。NCプログラム501のうちの第2系統は、ロボット60の動作が記述されたNCプログラム(NCロボットプログラム)であり、ロボット60を動作させるためのロボット指令が含まれている。第1系統および第2系統は、工作機械70の動作とロボット60の動作との間の連携(同期)を取りながら、工作機械70およびロボット60を動作させることができる。
 ここでは、第1系統のNCプログラムおよび第2系統のNCプログラムといった表現は用いず、各々のNCプログラムの先頭に記載されているシーケンス番号(N番号)を用いて説明する。以下、数値制御装置1Xが各指令を実行した場合の、数値制御装置1Xでの処理、ロボット60の動作、工作機械70の動作について説明する。なお、数値制御装置1Xからロボット60への指示の内容、数値制御装置1Xから工作機械70への指示の内容については、説明を省略する場合がある。
<N110、N550での待ち合わせまでの処理>
 N500では、数値制御装置1Xが、ロボットモードのオン指令を実行し、ロボットモードをオンにする。
 N510では、数値制御装置1Xが、ロボット座標を設定する。
 N520では、ロボット60が、未加工ワークを把持する位置へ移動する。
 N530では、ロボット60が、未加工ワークを把持する。
 N540では、ロボット60が、未加工ワークをロード位置へ位置決めする。
 N550では、ロボット60が、工作機械70において加工ワーク82を把持するチャックが開くのを待つ。
 N100では、工作機械70がチャックを開き、N110では、数値制御装置1Xが、工作機械70のチャックを開いたことをロボット指令に伝える。ここでの数値制御装置1Xは、工作機械70のチャックを開いたことを、N550の「!1L1」(チャック開待ち)に伝える。これらのN110およびN550の動作は、補間処理部38のロボット指令待ち合わせ部381と、ロボット制御部41XのNC指令待ち合わせ部413との間で記憶部34を介して行われる。
 具体的には、ロボット指令待ち合わせ部381が、N110を実行したことを示す情報を記憶部34に格納し、NC指令待ち合わせ部413が、N550を実行したことを示す情報を記憶部34に格納する。また、ロボット指令待ち合わせ部381は、N550を実行したことを示す情報を記憶部34から読み出し、NC指令待ち合わせ部413は、N110を実行したことを示す情報を記憶部34から読み出す。
 ロボット指令待ち合わせ部381は、N110を実行し、かつN550を実行したことを示す情報を記憶部34から読み出した後に、N110の次のブロックの処理を実行する。NC指令待ち合わせ部413は、N550を実行しかつN110を実行したことを示す情報を記憶部34から読み出した後に、N550の次のブロックの処理を実行する。すなわち、数値制御装置1Xは、N110およびN550の両方を実行した後、N120およびN560を実行する。このように、ロボット60は、工作機械70によってチャックが開けられるまで、次の処理の実行を待つ。
 ここで、N110、N550で用いた待ち合わせ指令について説明する。「!2L1」および「!1L1」は、待ち合わせ指令(同期命令)であり、「!2L1」および「!1L1」の両方が実行されるまで数値制御装置1Xは、N110の次のブロックの処理およびN550の次のブロックの処理を実行しない。すなわち、待ち合わせ指令があった場合、数値制御装置1Xは、工作機械70とロボット60との間の動作を同期させる。
 数値制御装置1Xは、「!mLn」の「m」が「1」の場合には第1系統の処理を待ち、「m」が「2」の場合には第2系統の処理を待つ。具体的には、工作機械70への指令の実行中に工作機械70への指令内にロボット60の動作を待つ指令(!2Ln:第1の待機指令)が現れると、ロボット指令待ち合わせ部381が、ロボット60の動作に対して待ち合わせを実行する。すなわち、ロボット指令待ち合わせ部381が、第1の待機指令に対応するロボット60の動作(!1Ln)が完了するまで工作機械70の動作を待機させる。
 また、ロボット60への指令の実行中にロボット60への指令内に工作機械70の動作を待つ指令(!1Ln:第2の待機指令)が現れると、NC指令待ち合わせ部413が、工作機械70の動作に対して待ち合わせを実行する。すなわち、NC指令待ち合わせ部413が、第2の待機指令に対応する工作機械70の動作(!2Ln)が完了するまでロボット60の動作を待機させる。このように、「!1Ln」および「!2Ln」といった待ち合わせ指令があると、制御演算部2Xは、工作機械70とロボット60との同期を実行する。
 「!mLn」の「n」(nは自然数)は、待ち合わせ指令の識別番号であり、同じ識別番号が付された指令間で待ち合わせ処理が行われる。以下、NCプログラム501では、待ち合わせ指令を行う場合、N110およびN550と同様の動作によって待ち合わせを行うので、以降の説明では待ち合わせ処理の詳細な説明を省略する。なお、本実施の形態では、待ち合わせ指令に「!2L1」、「!1L1」といった記述を用いているが、待ち合わせ指令の記述は、「!2L1」、「!1L1」に限られることはなく、他の文字コードであってもよい。
<N120、N570での待ち合わせまでの処理>
 N560では、ロボット60が未加工ワークを工作機械70のチャックにロードする。N570では、ロボット60が工作機械70の動作を待ち(!1L2)、N120では、工作機械70がロボット60の動作を待つ(!2L2)。すなわち、工作機械70は、未加工ワークがロボット60によってロードされるのを待つ。
<N140、N580での待ち合わせまでの処理>
 数値制御装置1Xは、N120およびN570の両方を実行した後、N130およびN580を実行する。N130では、工作機械70がチャックを閉じて、未加工ワークを把持する。N140では、工作機械70がロボット60の動作を待ち(!2L3)、N580では、ロボット60が工作機械70の動作を待つ(!1L3)。すなわち、ロボット60は、工作機械70がチャックを閉じるのを待つ。
<N150、N610での待ち合わせまでの処理>
 数値制御装置1Xは、N140およびN580の両方を実行した後、N150およびN590を実行する。すなわち、工作機械70がチャックを閉じた後、N590では、ロボット60が、ロボットハンド61を開ける。これにより、ロボット60は、未加工ワークを開放する。N600では、ロボット60が、工作機械70の外側にロボットハンド61を退避させる。
 N610では、ロボット60が工作機械70の動作を待ち(!1L4)、N150では、工作機械70がロボット60の動作を待つ(!2L4)。すなわち、工作機械70は、ロボットハンド61が工作機械70の外側に移動して未加工ワークのロードが完了するのを待つ。
<N220、N620での待ち合わせまでの処理>
 数値制御装置1Xは、N150およびN610の両方を実行した後、N160およびN620を実行する。すなわち、未加工ワークのロードが完了すると、N160では、工作機械70が、加工ワーク82がロードされる際に通過する自動ドアを閉じる。この後、工作機械70が、N170~N210に対応する処理、すなわち加工ワーク82への加工を実行する。
 N220では、工作機械70がロボット60の動作を待ち(!2L5)、N620では、ロボット60が工作機械70の動作を待つ(!1L5)。すなわち、ロボット60は、工作機械70が加工ワーク82の加工が完了するのを待つ。
<N240、N630での待ち合わせまでの処理>
 数値制御装置1Xは、N220およびN620の両方を実行した後、N230およびN630を実行する。すなわち、工作機械70が加工を完了すると、N230では、工作機械70が自動ドアを開ける。N240では、工作機械70がロボット60の動作を待ち(!2L6)、N630では、ロボット60が工作機械70の動作を待つ(!1L6)。すなわち、ロボット60は、工作機械70が自動ドアのオープンを完了するのを待つ。
<N250、N680での待ち合わせまでの処理>
 数値制御装置1Xは、N240およびN630の両方を実行した後、N240およびN640を実行する。すなわち、工作機械70が自動ドアを開けると、N640では、ロボット60が、ロボットハンド61を工作機械70のチャックの前方に移動させる。N650では、ロボット60が、ロボットハンド61を開き、N660では、ロボット60が、ロボットハンド61を加工済みワークの把持位置へ移動させ、N670では、ロボット60が、ロボットハンド61を閉じることによって加工済みワークを把持する。
 N680では、ロボット60が工作機械70の動作を待ち(!1L7)、N250では、工作機械70がロボット60の動作を待つ(!2L7)。すなわち、工作機械70は、ロボット60による加工済みワークの把持を待つ。
<N270、N690での待ち合わせまでの処理>
 数値制御装置1Xは、N250およびN680の両方を実行した後、N260およびN690を実行する。すなわち、ロボット60が、ロボットハンド61を閉じると、N260では、工作機械70が、チャックを開放する。N270では、工作機械70がロボット60の動作を待ち(!2L8)、N690では、ロボット60が工作機械70の動作を待つ(!1L8)。すなわち、ロボット60は、工作機械70がチャックを開放するのを待つ。
<N290、N720での待ち合わせまでの処理>
 数値制御装置1Xは、N270およびN690の両方を実行した後、N280およびN700を実行する。すなわち、ロボット60が、ロボットハンド61を閉じると、N280では、工作機械70が、工具71を交換し、N700では、ロボット60が、加工済みワークを把持したロボットハンド61を工作機械70の上部に退避させ、N710では、ロボット60が、加工済みワークを把持したロボットハンド61を自動ドアの前部に移動させる。
 N720では、ロボット60が工作機械70の動作を待ち(!1L9)、N290では、工作機械70がロボット60の動作を待つ(!2L9)。すなわち、ロボット60は、工作機械70による工具71の交換を待ち、工作機械70は、ロボット60が加工ワーク82をアンロードさせるのを待つ。ここでの加工ワーク82のアンロード処理は、加工済みワークを工作機械70の上部に退避させ、加工済みワークを把持したロボットハンド61自動ドアの前部に移動させる処理である。
<N290、N720での待ち合わせの後の処理>
 ロボット60がロボットハンド61を自動ドアの前部に移動させると、N300では、工作機械70が、自動ドアを閉じる。また、工作機械70が工具71を交換すると、N730では、ロボット60が加工済みワークを仮置き場76へ移動させ、N740では、ロボット60が、加工済みワークを、仮置き場76へ仮置きし、N750では、ロボット60が、ロボットハンド61を開く。これにより、ロボットハンド61は、加工済みワークを開放して仮置き場76へ載置する。
 N760では、ロボット60が、ロボットハンド61を工具置き場に移動させ、N770では、ロボット60が、バリ取り工具84を把持する。N780では、ロボット60が、ロボットハンド61で把持したバリ取り工具84を、加工済みワークの仮置き場76へ移動させ、N790では、ロボット60が、バリ取り工具84を使って、加工済みワークのバリ取りを行う。
 数値制御装置1Xは、図18に示したNCプログラム501を用いて、ロボット60および工作機械70を制御する。このとき、数値制御装置1Xは、第2系統のロボット指令をロボットプログラムに変換したうえで、ロボット60を制御する。これにより、制御システム100Aのユーザは、ロボットプログラムの知識がなくても、NCプログラムでNCロボットプログラムをプログラミングでき、NCプログラムでロボット60を制御することができるので、段取り等の作業効率が向上する。また、ロボットプログラムは、NCプログラムで記述されるので、工作機械70とロボット60との特定のタイミングにおける同期動作(ロボット60のスタート時、ロボット60の動作途中、ロボット60の動作完了時)を容易にプログラミングすることができ、段取り等の作業効率が向上する。
 本実施の形態の数値制御装置1Xを用いない場合、ロボットのユーザが、NCプログラムとは別にロボットプログラムを作成しておく必要がある。この場合、工作機械とロボットとの両方を利用するユーザは、NCプログラムおよびロボットプログラムの両方の知識を持っている必要がある。すなわち、数値制御装置1Xを用いない場合、ロボットプログラムの知識が無ければ、ロボットを制御できない。一方、数値制御装置1Xを用いる場合、制御システム100Aのユーザは、NCプログラムの知識があれば、工作機械70およびロボット60を制御することができる。
 このように実施の形態1によれば、NCプログラムとロボットプログラムとの対応関係である対応関係情報102に基づいて、NCプログラム内のロボット60への指令をロボットプログラムに変換するので、NCプログラムを用いてロボット60を制御することが可能となる。
 また、数値制御装置1Xが、ロボット指令待ち合わせ部381およびNC指令待ち合わせ部413を備えているので、NCプログラムおよびロボットプログラムの両方を同時に実行した場合であっても工作機械70とロボット60との間で同期をとることができる。
 また、本実施の形態を用いれば、NCプログラムとロボットプログラムとを図18のように並べて確認できるので、プログラム作成時に工作機械70とロボット60との同期処理を簡単に確認することができる。
 従来のように、NCプログラムとロボットプログラムとをそれぞれ作成する場合、NCプログラムを記憶しておくメモリに加えて、ロボットプログラムを記憶しておくメモリが必要であったが、本実施の形態を用いれば、ロボットプログラムを記憶しておくメモリが不要となり、装置構成を簡略化することができる。
実施の形態2.
 次に、図19から図21を用いてこの発明の実施の形態2について説明する。実施の形態2では、数値制御装置によって入力された指令座標に基づいてロボット60を制御することができるロボットインタフェース(IF:InterFace)をロボットコントローラが備えている。数値制御装置は、ロボットIFにアクセスし、ロボットIFに指令座標を入力することで、ロボットIFにロボット60を制御させる。
 図19は、実施の形態2にかかる数値制御装置の構成例を示す図である。図19の各構成要素のうち図2に示す実施の形態1の数値制御装置1Xと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
 実施の形態2にかかる数値制御装置1Yは、数値制御装置1Xが備えている制御演算部2Xの代わりに制御演算部2Yを備えている。また、数値制御装置1Yは、数値制御装置1Xが備えているロボットコントローラ50Xの代わりにロボットコントローラ50Yを備えている。
 ロボットコントローラ50Yは、ロボットIF510を備えている。ロボットIF510は、ロボット60に接続されており、ロボット60を制御する。ロボットIF510では、ロボット60への制御内容毎に関数が割り当てられている。すなわち、ロボットIF510では、ロボット60への動作指示と、関数とが対応付けされている。
 ロボットIF510は、制御演算部2Yから関数が指定されると、指定された関数に対応する動作をロボット60に指示する。具体的には、ロボットIF510は、ロボット60を制御するための関数に対して制御演算部2Yから指令座標(引数)が指定されると、指定された指令座標に基づいて、ロボット60を制御する。すなわち、ロボットIF510は、制御演算部2Yからアクセスされると、予め設定されている処理をロボット60に実行する。このように、ロボットIF510は、ロボット60の座標系で規定された関数および指令座標でアクセスされた場合に関数および指令座標に対応する処理をロボット60に実行する。
 ロボット60への制御内容に割り当てられた関数には、ロボット関節補間に用いられる関数、ロボット直線補間に用いられる関数、ロボット円弧補間に用いられる関数などがある。ロボット60は、複数種類の動作を実行するので、ロボットIF510へは、複数種類の関数が設定されている。
 制御演算部2Yは、制御演算部2Xが備えているロボット制御部41Xの代わりに、ロボット制御部41Yを備えている。ロボット制御部41Yは、プログラム変換部414の代わりにロボットIFアクセス部415を備えている。
 ロボットIFアクセス部415は、NCプログラムのうちのNCロボットプログラムに基づいて、ロボット60を制御させる際に用いる関数を決定し、ロボット60を制御させる際に用いる指令座標を算出する。ロボットIF510へのアクセス部であるロボットIFアクセス部415は、ロボット60を制御させる関数を指定したうえで、指令座標をロボットIF510に入力する。すなわち、ロボットIFアクセス部415は、NCロボットプログラムに対応する関数および指令座標でロボットIF510にアクセスする。
 実施の形態1では、プログラム変換部414が、NCプログラム内のロボット指令をロボットプログラムに変換して、ロボットコントローラ50Xに送信したが、実施の形態2では、ロボットIFアクセス部415が、ロボットIF510に直接アクセスして指令座標を入力する。
 ここで、ロボットIFアクセス部415によるロボットIF510へのアクセス例について説明する。図20は、実施の形態2にかかる数値制御装置によるロボットIFへのアクセス処理を説明するための図である。図20では、NCロボットプログラムを含んだ変換前のNCプログラム203と、ロボットIF510にアクセスする際に用いられるアクセスデータ204とを図示している。NCプログラム203は、実施の形態1の図16で説明したNCプログラム201と同様の指令を有したプログラムであり、ブロック番号のみ異なる。
 ロボットIFアクセス部415は、アクセスデータ204を格納している。アクセスデータ204は、ロボットIF510にアクセスするためのデータであり、ロボット60の動作内容を指定した関数と、ロボット60を制御する際に用いられる指令座標(データ)とを含んでいる。
 ロボットIFアクセス部415は、N21のG198によってロボット指令モードがオンになった後、N26のG199によってロボット指令モードがオフとなるまでのNCロボットプログラムに対し、ロボットIF510にアクセスする。具体的には、ロボットIFアクセス部415は、対応関係情報102およびNCプログラム203に含まれるNCロボットプログラムに基づいて、アクセスデータ204に含まれる関数およびデータを抽出し、抽出した関数およびデータでロボットIF510にアクセス(呼び出し及び実行)する。ここでのNCプログラム203には、NCロボットプログラムの指令として、N23、N24、N25の指令が含まれている。
 NCプログラム203に含まれている、「N23 G200 RX10. RY10. RZ10. RA10. RB10. RC10. RS1 RT5;(指令座標(10, 10, 10, 10, 10, 10, 1, 5))」および「N24 RX200. (指令座標(200, 10, 10, 10, 10, 10, 1, 5))」は、ロボット関節補間の指令である。ロボットIFアクセス部415は、これらのロボット関節補間の指令に基づいて、ロボット関節補間に対応する関数を抽出し、抽出した関数でロボットIF510にアクセスする。
 すなわち、ロボットIFアクセス部415は、上述したN23の指令に対してロボットIF510に、「N23 rciMoveDirect(10,10,10,10,10,10,1,5,0);(指令座標(10, 10, 10, 10, 10, 10, 1, 5, 0))」の内容でアクセスする。rciMoveDirectは、ロボットIF510に対してロボット関節補間を指定する関数である。
 また、ロボットIFアクセス部415は、上述したN24の指令に対してロボットIF510に、「N24 rciMoveDirect(200,10,10,10,10,10,1,5,0);(指令座標(200, 10, 10, 10, 10, 10, 1, 5, 0))」の内容でアクセスする。
 ロボットIFアクセス部415によるロボットIF510へのアクセスにより、ロボットIF510は、アクセスに対応する通信を実行する。これにより、ロボットコントローラ50Yは、関数に含まれる指令座標に従ってロボット60を制御する。すなわち、ロボットコントローラ50Yは、アクセスに対応する動作(ロボット関節補間)をロボット60に実行させる。これにより、ロボット60は、関節補間されながら目標値に移動する。
 また、NCプログラム203に含まれている、「N25 G201 RX30.;(指令座標(30, 10, 10, 10, 10, 10, 1, 5))」は、ロボット直線補間の指令である。ロボットIFアクセス部415は、このロボット直線補間の指令に基づいて、ロボット直線補間に対応する関数を生成し、生成した関数でロボットIF510にアクセスする。
 すなわち、ロボットIFアクセス部415は、上述したN25の指令に対してロボットIF510に、「N25 rciMoveLinear(30,10,10,10,10,10,1,5,0);(指令座標(30, 10, 10, 10, 10, 10, 1, 5, 0))」の内容でアクセスする。rciMoveLinearは、ロボットIF510に対してロボット直線補間を指定する関数である。ロボットIFアクセス部415によるロボットIF510へのアクセスにより、ロボットIF510は、アクセスに対応する動作(ロボット直線補間)をロボット60に実行させる。ロボットIF510は、関数に含まれる指令座標に従ってロボット60を制御する。これにより、ロボット60は、直線補間されながら目標値に移動する。
 次に、数値制御装置1Yによる、NCプログラムからアクセスデータを生成する処理の処理手順について説明する。図21は、実施の形態2にかかる数値制御装置によるアクセスデータの生成処理手順を示すフローチャートである。ここでは、数値制御装置1Yがアクセスデータ内の関数および指令座標を作成し、関数および指令座標に従ってロボットIF510にアクセスする処理を説明する。
 図21に示したステップS1からS3の処理は、実施の形態1の図15で説明した処理と同じ処理である。ステップS3の処理の後、ロボットIFアクセス部415は、NCプログラム内のNCロボットプログラムに基づいて、動作の種類毎に、ロボットIF510にアクセスする際に指定する関数を決定する。この関数には、NCロボットプログラムに設定されていた指令座標に対応する指令座標が設定されている。ロボットIFアクセス部415は、決定した関数を指定してロボットIF510にアクセスする。ロボットIFアクセス部415は、ロボットIF510にアクセスし(ステップS10)、例えば、以下の(機能4)から(機能8)の各動作に対応する関数を指定し、指令座標を入力する。
(機能4)方向角制御パラメータ設定
(機能5)ロボット関節補間
(機能6)連続動作の指定
(機能7)ロボット直線補間
(機能8)ロボット円弧補間
 ロボットIFアクセス部415が、ロボットIF510に関数を指定して指令座標を入力することにより、ロボットIF510は、指定された関数に指令座標のデータをセットする。ロボットコントローラ50Yは、ロボットIF510にセットされたデータに従ってロボット60を制御する(ステップS11)。
 この後、ロボット指令解析部371が、ロボットモードのオフ指令(G199)を解析すると、数値制御装置1Yは、ロボットモードをオフにして、ロボット60への制御を終了する(ステップS7)。
 このように実施の形態2によれば、ユーザは、ロボットプログラムの知識がなくても、ロボット60への指令をNCプログラムで作成することでNCプログラムによってロボット60を制御することができるので、段取り等の作業効率が向上する。
実施の形態3.
 次に、図22から図24を用いてこの発明の実施の形態3について説明する。実施の形態3では、工作機械70に配置された表示部4が表示する表示画面で、NCロボットプログラムの編集、ロボット60の状態の確認を行うことを可能とする。
 図22は、実施の形態3にかかる数値制御装置の構成例を示す図である。図22の各構成要素のうち図2に示す実施の形態1の数値制御装置1Xと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
 実施の形態3にかかる数値制御装置1Xaは、数値制御装置1Xが備えている制御演算部2Xの代わりに制御演算部2Xaを備えている。また、制御演算部2Xaは、制御演算部2Xと比較して、入力制御部32の代わりに入力制御部32aを備え、画面処理部31の代わりに画面処理部31aを備えている。
 入力制御部32aは、NCロボットプログラム編集部321を備え、画面処理部31aは、NCロボットデータ表示部311を備えている。NCロボットプログラム編集部321は、ユーザが入力操作部3Xに入力した情報に基づいて、NCロボットプログラムを編集する。NCロボットプログラム編集部321は、編集後のNCロボットプログラムを、データ設定部33を介して記憶部34に記憶させる。NCロボットデータ表示部311は、記憶部34から、編集後のNCロボットプログラムを読み出して、表示部4に表示する。また、数値制御装置1Xaの表示部4は、後述する編集画面401、ロボット状態表示画面402を表示する。
 図23は、実施の形態3にかかる数値制御装置が表示する、NCロボットプログラムの編集画面の例を示す図である。図23では、NCロボットプログラムを編集する際に表示される画面である編集画面401を示している。編集画面401では、入力領域A1と、ガイダンス表示領域A2と、指令設定データ入力領域A3と、ヘルプ表示領域A4と、編集内容表示領域A5とが表示される。
 入力領域A1は、NCロボットプログラムとして入力された内容を表示する領域である。NCロボットプログラムは、編集内容表示領域A5に表示される。編集内容表示領域A5にカーソルがある場合にキーボード等の入力装置で文字を入力することにより、NCロボットプログラムを作成することができる。ガイダンス表示領域A2は、ロボット指令の動作、設定項目の意味等をイメージ図およびガイダンスで表示する領域である。ガイダンス表示領域A2に表示される内容は、選択中のロボット指令に応じて切替わる。
 指令設定データ入力領域A3は、作成するロボット指令のデータ(数値等)が入力されると、入力されたデータを表示する領域である。ヘルプ表示領域A4は、カーソル位置の設定項目の意味および設定範囲を表示する領域である。編集内容表示領域A5は、編集されたNCロボットプログラムを表示する領域である。編集画面401では、編集内容表示領域A5が、編集画面401の右側の領域に配置されている。インプットキーが押下されると、編集されたNCロボットプログラムが編集内容表示領域A5に表示される。
 編集画面401へのデータの入力は、入力操作部3Xにデータを入力することによって行われる。入力操作部3Xに入力されたコード等は、NCロボットプログラム編集部321に送られる。NCロボットプログラム編集部321は、入力操作部3Xに入力されたコードに応じた処理を実行することによって、NCロボットプログラムを編集する。NCロボットプログラム編集部321で編集されたNCロボットプログラムは、記憶部34のNCプログラム記憶エリア343に格納される。
 また、NCロボットデータ表示部311は、編集されたNCロボットプログラムを、NCプログラム記憶エリア343から読み出して、表示部4に表示する。
 また、ロボット60の動作中は、表示部4に表示されるロボット状態表示画面でロボット60の状態、ロボット60のデータを確認することができる。ここで、ロボット60の状態を表示する状態表示画面、すなわちロボット状態表示画面について説明する。
 図24は、実施の形態3にかかる数値制御装置が表示するロボット状態表示画面の例を示す図である。ロボット状態表示画面402では、以下の(B1)から(B8)の内容が表示される。
 (B1)ロボットコントローラ接続状態
 (B2)ロボットコントローラステータス
 (B3)運転モード
 (B4)手動モード
 (B5)ロボット動作ステータス
 (B6)ロボットオーバライド
 (B7)ロボット座標系表示
 (B8)モーダル表示
 (B1)
 ロボットコントローラ接続状態は、ロボットコントローラ50Xがロボット60に接続されているか否かを示す。
 (B2)
 ロボットコントローラステータスは、ロボットコントローラ50Xの状態を示す。
 (B3)
 運転モードは、ロボット60の運転モードを示す。運転モードには、自動運転モードと手動運転モードとがある。
 (B4)
 手動モードは、運転モードが手動運転モードである場合に、ロボット増分値指令を手動で入力できる状態であるか否かを示す。
 (B5)
 ロボット動作ステータスは、ロボット60の動作状態を示す。ロボット動作ステータスには、ロボット60の停止中とロボット60の動作中とがある。
 (B6)
 ロボットオーバライドは、オーバライドスイッチの状態である。オーバライドスイッチは、NCプログラムで指定された送り速度に倍率を掛けるためのスイッチである。オーバライドスイッチは、入力操作部3X内に配置されている。図22では、オーバライドスイッチの図示を省略している。
 オーバライドスイッチは、NCロボットプログラムで指定された送り速度に倍率(オーバライド)を掛けるためのスイッチである。なお、オーバライドスイッチは、工作機械70用のNCプログラムで指定された送り速度に倍率を掛けてもよい。
 制御演算部22が備えるオーバライド制御部(図22では不図示)がオーバライドスイッチの操作状態を検出し、検出した状態に対応する割合(%)と速度データとを、ロボット制御部41Xに送る。ロボット制御部41Xは、例えば10%というデータを受け取った場合、ロボット60の速度が、速度データで示される速度の10%となるようにして、ロボットコントローラ50Xに速度データを送る。
 (B7)
 ロボット座標系表示は、ロボット60の座標系に設定されている座標系を示す。図24では、ベース座標系(B)の種類が「1」で示される種類であり、ツール座標系(T)の種類が「2」で示される種類であり、ツール座標系のツールタイプ(I)が「0」で示される種類である場合を示している。数値制御装置1Xaは、ロボット座標系設定指令によってベース座標系が指定されている場合は、「1」で示される種類のベース座標系でロボット60を動作させ、ロボット座標系設定指令によってツール座標系が指定されている場合は、「2」で示される種類のツール座標系でロボット60を動作させる。
 (B8)
 モーダル表示は、実行中のモーダル指令を示している。
 数値制御装置1Xaでは、記憶部34の表示データ記憶エリア344にまとめて格納されているロボット60に関連するデータを、NCロボットデータ表示部311が読み出して、表示部4に表示する。
 このように、数値制御装置1Xaのユーザは、NCロボットプログラムの編集、ロボット60の状態の確認をロボットコントローラ50Xに対して行わなくてもよく、数値制御装置1XaでNCロボットプログラムの編集およびロボット60の状態表示を行うことができる。したがって、プログラム作成の作業効率が向上する。
実施の形態4.
 次に、図25から図28を用いてこの発明の実施の形態4について説明する。実施の形態4では、数値制御装置が備える手動ハンドルまたはジョグスイッチを用いてロボット60を手動操作する。
 図25は、実施の形態4にかかる数値制御装置を備えた制御システムの構成を示す図である。図25の各構成要素のうち図1に示す実施の形態1の制御システム100Aと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
 制御システム100Bは、工作機械70と、数値制御装置1Zと、ロボットコントローラ50Xと、ロボット60とを備えている。数値制御装置1Zは、CNCユニット6と、入力操作部3Zとを備えている。
 入力操作部3Zは、入出力ユニット51、非常停止ボタン52、手動ハンドル55および操作盤54を備えている。図25に示したように、手動ハンドル55は、工作機械70に配置される数値制御装置1Zに1つだけ配置されている。このように、工作機械には1つの手動ハンドルしか実装されていないケースが多い。したがって、制御システム100Bでは、1つの手動ハンドル55を工作機械70用と、ロボット60用とに切り替えて用いる。
 操作盤54は、実施の形態1で説明した操作盤53の機能に加えて、ジョグスイッチ57と、オーバライドスイッチ56と、切替スイッチ58とを備えている。
 手動ハンドル55は、工作機械70およびロボット60を手動で操作するためのハンドルである。本実施の形態では、工作機械70を手動でハンドル操作する場合と、ロボット60を手動でハンドル操作する場合とで同一の手動ハンドル55が用いられる。なお、手動ハンドル55は、操作盤54に配置されてもよい。
 オーバライドスイッチ56は、NCロボットプログラムで指定された送り速度に倍率(オーバライド)を掛けるためのスイッチである。なお、オーバライドスイッチ56は、工作機械70用のNCプログラムで指定された送り速度に倍率を掛けてもよい。
 ジョグスイッチ57は、工作機械70およびロボット60をジョグ操作するためのスイッチである。なお、ジョグスイッチ57は、工作機械70へのジョグ操作のみに用いられてもよい。この場合、ロボット60へのジョグ操作は、表示部4に表示されている画面に対して行われる。
 手動ハンドル55およびジョグスイッチ57が手動操作部である。また、工作機械70への手動操作が第1の手動操作であり、ロボット60への手動操作が第2の手動操作である。
 切替スイッチ58は、手動ハンドル55およびジョグスイッチ57を、ロボット60用または工作機械70用に切替えるスイッチである。切替スイッチ58は、ハンドル操作による操作対象を切替える。すなわち、切替スイッチ58は、ハンドル操作またはジョグスイッチ57に対応するデータを、工作機械70への操作を示す操作データとして後述する制御演算部2Zに入力するか、ロボット60へのハンドル操作を示す操作データとして制御演算部2Zに入力するかを切替える。
 図26は、実施の形態4にかかる数値制御装置の構成例を示す図である。図26の各構成要素のうち図2に示す実施の形態1の数値制御装置1Xと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。なお、図26では、入力操作部3Zが備える構成要素として、手動ハンドル55、ジョグスイッチ57、およびオーバライドスイッチ56を図示しているが、その他の構成要素の図示は省略していている。
 数値制御装置1Zは、制御演算部2Xの代わりに制御演算部2Zを備えている。制御演算部2Zは、制御信号処理部35Xの代わりに制御信号処理部35Zを備えている。制御信号処理部35Zは、ハンドル切替部351、およびロボット軸選択部352を備えている。
 ハンドル切替部351は、操作盤54に対し、ハンドル操作による操作対象を切り替える切替スイッチ58の状態を確認し、手動ハンドル55が、工作機械70を制御する状態にあるか、ロボット60を制御する状態にあるかを判定する。ハンドル切替部351は、切替スイッチ58の状態に基づいて、手動ハンドル55に対するハンドル操作を、ロボット60へのハンドル操作として扱うか、工作機械70へのハンドル操作として扱うかを切替える。
 ハンドル切替部351は、ハンドル操作をロボット60へのハンドル操作として扱う場合には、ハンドル操作に対応するデータを、ロボット60を操作するためのデータとして共有エリア345に格納する。ロボット60を操作するためのデータは、手動ハンドル55がハンドル操作に対して出力するハンドルパルスジェネレータのデータであり、ロボット60の特定の箇所を移動させる移動量に対応している。
 ハンドル切替部351は、ハンドル操作を工作機械70へのハンドル操作として扱う場合には、ハンドル操作に対応するデータを、工作機械70を操作するためのデータとして共有エリア345に格納する。工作機械70を操作するためのデータは、手動ハンドル55がハンドル操作に対して出力するハンドルパルスジェネレータのデータであり、工作機械70の特定の箇所を移動させる移動量に対応している。
 PLC操作部5または操作盤54には、NC軸を指定するボタンがNC軸毎に配置されている。NC軸を指定するボタンは、ロボット60を制御する状態にある場合には、ロボット軸を指定するボタンとして使用される。
 ロボット軸選択部352は、ロボット60を制御する状態にある場合、NC軸を指定するボタンとロボット軸を指定するボタンとの対応関係を示す情報に基づいて、ユーザによって指定されたボタンに対応するロボット軸を選択する。NC軸とロボット軸との対応関係を示す情報は、例えば、記憶部34に格納されている。ロボット軸選択部352は、選択したロボット軸を共有エリア345に格納する。
 また、制御演算部2Zは、手動操作データ変換部42と、オーバライド制御部43とを備える。手動操作データ変換部42は、手動ハンドル55がロボット60を操作する状態にある場合、ユーザによるハンドル操作に対応するデータを読み取る。ハンドル操作に対応するデータは、ハンドルパルスジェネレータのデータであり、ロボット60を移動させる移動量に対応している。手動操作データ変換部42は、ハンドル操作に対応するデータがロボット60を操作するためのデータである場合に、ハンドルパルスジェネレータのデータを共有エリア345から読み出す。
 手動操作データ変換部42は、読み出したデータを、操作盤54への操作によって選択されたロボット軸のデータ(ロボット座標系のデータ)として、ロボットコントローラ50Xに送る。すなわち、手動操作データ変換部42は、ロボット軸選択部352で選択されたロボット軸と共有エリア345に保存された移動量とを指定したロボットプログラムを作成してロボットコントローラ50Xに送る。手動操作データ変換部42は、複数のロボット軸が選択されている場合、ロボット60を操作するためのデータを、各ロボット軸に分配する。
 オーバライド制御部43は、オーバライドスイッチ56の状態を検出し、検出した状態に対応する速度データの割合を、手動操作データ変換部42に送る。
 手動ハンドル55が工作機械70を制御する状態にある場合、数値制御装置1Zは、ユーザによるハンドル操作に対して工作機械70を操作する。
 また、ジョグスイッチ57が用いられる場合、手動ハンドル55と同様な方法によって、ジョグ操作を工作機械70用またはロボット60用に切替えてもよい。ジョグスイッチ57でロボット60が操作される場合、手動操作データ変換部42が、ジョグ操作に対応するデータを共有エリア345から読み出し、読み出したデータを、ユーザによって選択されたロボット軸のデータに変換してロボットコントローラ50Xに送る。ロボット60を操作するためのデータは、ジョグスイッチ57がジョグ操作に対して出力するデータであり、ロボット60の特定の箇所を移動させる移動量に対応している。
 また、ジョグスイッチ57で工作機械70が操作される場合、補間処理部38が、ジョグ操作に対応するデータを共有エリア345から読み出し、読み出したデータを、ユーザによって選択された駆動軸または主軸のデータに変換して工作機械70に送る。
 なお、数値制御装置1Zは、ロボット60へのジョグ操作を受け付ける画面であるジョグ操作受付画面を表示部4に表示させてもよい。図27は、実施の形態4にかかる数値制御装置が表示するジョグ操作受付画面の例を示す図である。
 ジョグ操作受付画面403は、ロボット60に対する操作対象として選択可能なロボット軸の名称を表示する領域C1を有している。ジョグ操作受付画面403において、ユーザが所望のロボット軸の名称をタッチすることでロボット軸が選択される。図27に示す例では、ロボット軸としてX軸が選択されている場合を示している。
 また、ジョグ操作受付画面403は、ジョグ操作を行うためのジョグボタンC2を表示する。ジョグボタンC2がユーザによって押下またはタッチされると、数値制御装置1Zは、ロボット軸のX軸へのジョグ操作(手動操作)を受け付ける。このとき、ロボット60の動作が速すぎる場合であって、かつロボット60を手動操作で制御する状態にある場合には、オーバライドスイッチ56によってロボット60の速度を下げることも可能である。
 ユーザによってオーバライドスイッチ56が操作された場合、オーバライド制御部43がオーバライドスイッチ56の状態を検出し、検出した状態に対応する割合(%)と速度データとを、手動操作データ変換部42に送る。手動操作データ変換部42は、例えば10%というデータを受け取った場合、ロボット60の速度が、速度データで示される速度の10%となるようにして、ロボットコントローラ50Xに速度データを送る。
 このように実施の形態4によれば、数値制御装置1Zのユーザは、ロボット60への手動操作をロボットコントローラ50Xに対して行わなくてもよく、数値制御装置1Zでロボット60への手動操作を行えるので、ユーザがロボットハンド61の位置を教示する教示作業などの作業効率が向上する。
 ここで、数値制御装置1Xが備える制御演算部2X、数値制御装置1Xaが備える制御演算部2Xa、数値制御装置1Yが備える制御演算部2Y、および数値制御装置1Zが備える制御演算部2Zのハードウェア構成について説明する。なお、制御演算部2X,2Xa,2Y,2Zは、同様のハードウェア構成を有しているので、ここでは制御演算部2Xのハードウェア構成について説明する。
 図28は、実施の形態1にかかる制御演算部のハードウェア構成例を示す図である。制御演算部2Xは、図28に示したプロセッサ301およびメモリ302により実現することができる。プロセッサ301の例は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、DSP(Digital Signal Processor)ともいう)またはシステムLSI(Large Scale Integration)である。メモリ302の例は、RAM(Random Access Memory)またはROM(Read Only Memory)である。
 制御演算部2Xは、プロセッサ301が、メモリ302で記憶されている、制御演算部2Xの動作を実行するためのプログラムを読み出して実行することにより実現される。また、このプログラムは、制御演算部2Xの手順または方法をコンピュータに実行させるものであるともいえる。メモリ302は、プロセッサ301が各種処理を実行する際の一時メモリにも使用される。
 プロセッサ301が実行するプログラムは、コンピュータで実行可能な、データ処理を行うための複数の命令を含むコンピュータ読取り可能かつ非遷移的な(non-transitory)記録媒体を有するコンピュータプログラムプロダクトであってもよい。プロセッサ301が実行するプログラムは、複数の命令がデータ処理を行うことをコンピュータに実行させる。
 また、制御演算部2Xを専用のハードウェアで実現してもよい。また、制御演算部2Xの機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
 なお、実施の形態1から4で説明した内容を組み合わせてもよい。例えば、数値制御装置1Xa,1Yは、制御システム100Aに配置されてもよいし、制御システム100Bに配置されてもよい。また、数値制御装置1Zは、制御システム100Aに配置されてもよい。また、制御演算部2Y,2Zには、画面処理部31および入力制御部32の代わりに画面処理部31aおよび入力制御部32aが配置されてもよい。また、数値制御装置1Xa,1Zには、ロボット制御部41Xおよびロボットコントローラ50Xの代わりにロボット制御部41Yおよびロボットコントローラ50Yが配置されてもよい。
 以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
 1X,1Xa,1Y,1Z 数値制御装置、2X,2Xa,2Y,2Z 制御演算部、3X,3Z 入力操作部、4 表示部、6 CNCユニット、31,31a 画面処理部、32,32a 入力制御部、34 記憶部、35X,35Z 制御信号処理部、37 解析処理部、38 補間処理部、41X,41Y ロボット制御部、42 手動操作データ変換部、43 オーバライド制御部、50X,50Y ロボットコントローラ、51 入出力ユニット、52 非常停止ボタン、53,54 操作盤、55 手動ハンドル、56 オーバライドスイッチ、57 ジョグスイッチ、58 切替スイッチ、60 ロボット、61 ロボットハンド、70 工作機械、71 工具、75 未加工品置き場、76 仮置き場、77 完成品置き場、82 加工ワーク、84 バリ取り工具、90 駆動部、100A,100B 制御システム、101 ロボット指令一覧情報、102 対応関係情報、103 関節補間情報、104 アドレス情報、105 直線補間情報、106 円弧補間情報、201,203,501 NCプログラム、202 ロボットプログラム、204 アクセスデータ、301 プロセッサ、302 メモリ、311 NCロボットデータ表示部、321 NCロボットプログラム編集部、343 NCプログラム記憶エリア、345 共有エリア、351 ハンドル切替部、352 ロボット軸選択部、371 ロボット指令解析部、381 ロボット指令待ち合わせ部、401 編集画面、402 ロボット状態表示画面、403 ジョグ操作受付画面、411 座標設定部、412 モード設定部、413 NC指令待ち合わせ部、414 プログラム変換部、415 ロボットIFアクセス部、510 ロボットIF、HP 補助点、P1 開始位置、P2 途中位置、P3 到達位置、PA,PC,PE 始点、PB,PD,PF 終点、Q1 基準方向、T1,T2 経路。

Claims (9)

  1.  工作機械およびロボットを、第1の座標系で規定された数値制御プログラムを用いて制御する制御演算部を有し、
     前記制御演算部は、
     第1のプログラム言語で記述された前記工作機械への指令である第1の指令と前記第1のプログラム言語で記述された前記ロボットへの指令である第2の指令とを含んだ前記数値制御プログラムを記憶する記憶部と、
     前記第2の指令を、前記ロボットを制御する際に用いられるロボットプログラムである第3の指令に変換する変換部と、
     を備え、
     前記制御演算部は、前記第1の指令を用いて前記工作機械を制御し、前記第3の指令を用いて前記ロボットを制御する、
     ことを特徴とする数値制御装置。
  2.  前記第1の指令および前記第2の指令は、前記第1の座標系で規定されており、
     前記第3の指令は、第2の座標系で規定されるとともに第2のプログラム言語で記述されており、
     前記変換部は、
     前記第2の指令を、前記第1の座標系と前記第2の座標系との対応関係に基づいて前記第3の指令に変換する、
     ことを特徴とする請求項1に記載の数値制御装置。
  3.  工作機械およびロボットを、第1の座標系で規定された数値制御プログラムを用いて制御する制御演算部を有し、
     前記制御演算部は、
     第1のプログラム言語で記述された前記工作機械への指令である第1の指令と前記第1のプログラム言語で記述された前記ロボットへの指令である第2の指令とを含んだ前記数値制御プログラムを記憶する記憶部と、
     前記第2の指令を受けると、前記ロボットに指令を送るロボットインタフェースにアクセスするアクセス部と、
     を備え、
     前記制御演算部は、前記第1の指令に基づいて前記工作機械を制御し、前記アクセス部による前記ロボットインタフェースへのアクセスによって前記ロボットを制御する、
     ことを特徴とする数値制御装置。
  4.  前記ロボットインタフェースは、第2の座標系で規定された関数および指令座標でアクセスされた場合に前記関数および前記指令座標に対応する処理を前記ロボットに実行し、
     前記アクセス部は、前記ロボットインタフェースに対し、前記第1の座標系と前記第2の座標系との対応関係に基づいて、前記第2の指令に対応する関数および指令座標でアクセスする、
     ことを特徴とする請求項3に記載の数値制御装置。
  5.  前記数値制御プログラムは、前記工作機械と前記ロボットとの間の同期命令を含み、
     前記制御演算部は、
     前記第1の指令の実行中に前記第1の指令内に前記ロボットの動作を待つ第1の待機指令が現れると、前記第1の待機指令に対応する前記ロボットの動作が完了するまで前記工作機械の動作を待機させる第1の待ち合わせ部と、
     前記第2の指令の実行中に前記第2の指令内に前記工作機械の動作を待つ第2の待機指令が現れると、前記第2の待機指令に対応する前記工作機械の動作が完了するまで前記ロボットの動作を待機させる第2の待ち合わせ部と、
     をさらに備える、
     ことを特徴とする請求項1から4の何れか1つに記載の数値制御装置。
  6.  前記数値制御プログラムを編集する際の編集画面、前記ロボットの状態を表示する状態表示画面を表示する表示部をさらに有する、
     ことを特徴とする請求項1から5の何れか1つに記載の数値制御装置。
  7.  第1の座標系で規定された工作機械への第1の手動操作および第2の座標系で規定されたロボットへの第2の手動操作を、前記第1の座標系への操作として受け付ける手動操作部と、
     前記工作機械および前記ロボットを制御する制御演算部と、
     を有し、
     前記制御演算部は、
     前記手動操作部が受け付けた操作に対応するデータである操作データを、前記第1の手動操作または前記第2の手動操作のいずれであるかを判定する制御信号処理部と、
     前記第2の手動操作として判定された操作データを前記第2の座標系への操作データに変換する手動操作データ変換部と、
     を備えることを特徴とする数値制御装置。
  8.  前記制御演算部は、前記ロボットの動作に対するオーバライドの指示を受け付けると、前記ロボットの動作に対してオーバライドをかける、
     ことを特徴とする請求項1から7の何れか1つに記載の数値制御装置。
  9.  工作機械およびロボットを、第1の座標系で規定された数値制御プログラムを用いて制御する制御ステップを有し、
     前記制御ステップは、
     第1のプログラム言語で記述された前記工作機械への指令である第1の指令と前記第1のプログラム言語で記述された前記ロボットへの指令である第2の指令とを含んだ前記数値制御プログラムを記憶する記憶ステップと、
     前記第2の指令を、前記ロボットを制御する際に用いられるロボットプログラムである第3の指令に変換する変換ステップと、
     前記第1の指令を用いて前記工作機械を制御し、前記第3の指令を用いて前記ロボットを制御する制御ステップと、
     を含むことを特徴とする数値制御方法。
PCT/JP2019/000389 2019-01-09 2019-01-09 数値制御装置および数値制御方法 WO2020144772A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE112019006613.7T DE112019006613T5 (de) 2019-01-09 2019-01-09 Numerische Steuerungsvorrichtung und numerisches Steuerungsverfahren
US17/417,766 US20220011754A1 (en) 2019-01-09 2019-01-09 Numerical control device and numerical control method
CN201980087690.XA CN113260931B (zh) 2019-01-09 2019-01-09 数控装置及数控方法
JP2019554952A JP6647472B1 (ja) 2019-01-09 2019-01-09 数値制御装置および数値制御方法
PCT/JP2019/000389 WO2020144772A1 (ja) 2019-01-09 2019-01-09 数値制御装置および数値制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/000389 WO2020144772A1 (ja) 2019-01-09 2019-01-09 数値制御装置および数値制御方法

Publications (1)

Publication Number Publication Date
WO2020144772A1 true WO2020144772A1 (ja) 2020-07-16

Family

ID=69568126

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/000389 WO2020144772A1 (ja) 2019-01-09 2019-01-09 数値制御装置および数値制御方法

Country Status (5)

Country Link
US (1) US20220011754A1 (ja)
JP (1) JP6647472B1 (ja)
CN (1) CN113260931B (ja)
DE (1) DE112019006613T5 (ja)
WO (1) WO2020144772A1 (ja)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020170356A (ja) * 2019-04-03 2020-10-15 ファナック株式会社 加工制御システム及び加工システム
JP7004868B1 (ja) * 2020-07-17 2022-02-07 三菱電機株式会社 数値制御装置および数値制御方法
WO2022097719A1 (ja) * 2020-11-09 2022-05-12 ファナック株式会社 数値制御システム及び産業機械の制御方法
WO2022102578A1 (ja) * 2020-11-13 2022-05-19 ファナック株式会社 数値制御装置、及び数値制御システム
WO2022131173A1 (ja) * 2020-12-15 2022-06-23 ファナック株式会社 数値制御システム及び産業機械の制御方法
WO2022163744A1 (ja) * 2021-01-29 2022-08-04 ファナック株式会社 ロボット制御装置及び数値制御システム
WO2022186255A1 (ja) * 2021-03-05 2022-09-09 ファナック株式会社 指令生成装置及びコンピュータプログラム
WO2022191057A1 (ja) * 2021-03-10 2022-09-15 ファナック株式会社 動作経路生成装置、数値制御装置、数値制御システム、及びコンピュータプログラム
WO2022191218A1 (ja) * 2021-03-08 2022-09-15 京セラ株式会社 プログラム管理装置、ロボット制御システム、及びプログラム管理方法
JP7183488B1 (ja) * 2022-06-09 2022-12-05 三菱電機株式会社 加工プログラム作成装置および加工プログラム作成方法
WO2022269896A1 (ja) * 2021-06-25 2022-12-29 ファナック株式会社 数値制御システム
JP7256931B1 (ja) * 2022-08-26 2023-04-12 ファナック株式会社 数値制御システム、数値制御装置、産業用装置及びコンピュータプログラム
JP7448736B1 (ja) 2023-09-22 2024-03-12 ファナック株式会社 数値制御装置及び数値制御システム

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7332443B2 (ja) * 2019-11-20 2023-08-23 ファナック株式会社 ロボット制御装置及びロボット制御方法
DE112021003519T5 (de) 2020-06-30 2023-05-25 Fanuc Corporation Numerisches Steuersystem
DE112021003517T5 (de) 2020-06-30 2023-05-25 Fanuc Corporation Numerisches Steuersystem
CN116075400A (zh) 2020-08-11 2023-05-05 发那科株式会社 数值控制系统以及机器人控制方法
TWI804068B (zh) 2020-12-18 2023-06-01 日商發那科股份有限公司 數值控制裝置及數值控制系統
TWI826893B (zh) * 2021-01-29 2023-12-21 日商發那科股份有限公司 數值控制裝置及數值控制系統
CN114474108B (zh) * 2022-01-13 2024-01-16 湖南中南智能装备有限公司 一种usb控制手柄联动控制机器人的方法
JP7288157B1 (ja) 2022-11-07 2023-06-06 ファナック株式会社 数値制御装置及び数値制御システム
JP7355965B1 (ja) 2023-02-07 2023-10-03 ファナック株式会社 数値制御装置及び数値制御システム

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07276187A (ja) * 1994-04-07 1995-10-24 Mitsubishi Electric Corp 生産装置
JPH09305213A (ja) * 1996-05-15 1997-11-28 Nachi Fujikoshi Corp ロボット制御装置
JP2000194409A (ja) * 1998-12-25 2000-07-14 Kawasaki Heavy Ind Ltd ロボットのプログラム変換装置
JP2002236668A (ja) * 2001-02-13 2002-08-23 Matsushita Electric Ind Co Ltd ロボット制御装置
JP2009279608A (ja) * 2008-05-21 2009-12-03 Fanuc Ltd ロボットおよびプレス機械を含むシステム、複数のロボットを含むシステム、ならびにそのようなシステムにおいて使用されるロボットの制御装置
JP2011048467A (ja) * 2009-08-25 2011-03-10 Fanuc Ltd 加工システム
JP2013134786A (ja) * 2011-12-22 2013-07-08 Fanuc Robotics America Inc ロボットによる数値制御プログラムの実行
JP2016024662A (ja) * 2014-07-22 2016-02-08 ファナック株式会社 左手座標系対応の数値制御装置
JP2017134722A (ja) * 2016-01-29 2017-08-03 ファナック株式会社 共通の言語仕様のプログラムにて複数の種類の製造装置を駆動する製造システム
JP2018153883A (ja) * 2017-03-16 2018-10-04 株式会社安川電機 コントロールシステム、コントローラ及び制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS57113114A (en) * 1980-12-30 1982-07-14 Fanuc Ltd Robot control system
JPH0782372B2 (ja) * 1987-07-15 1995-09-06 株式会社日立製作所 ロボットア−ムの制御方法
JPH01133111A (ja) * 1987-11-19 1989-05-25 Yamazaki Mazak Corp 数値制御工作機械の運転制御方法
JP3264705B2 (ja) * 1992-10-26 2002-03-11 シチズン時計株式会社 数値制御工作機械のロボットハンドの制御方法
JP2672759B2 (ja) * 1993-02-17 1997-11-05 株式会社アマダメトレックス ロボットの動作プログラム生成装置
JP2001154717A (ja) * 1999-09-13 2001-06-08 Fanuc Ltd ロボットと機械の結合システム
JP4203696B2 (ja) * 1999-10-20 2009-01-07 株式会社安川電機 産業用機械の動作確認方法および装置
JP5480198B2 (ja) * 2011-05-17 2014-04-23 ファナック株式会社 学習制御機能を備えたスポット溶接ロボット
JP2014018939A (ja) * 2012-07-23 2014-02-03 Daihen Corp ロボット制御装置
JP3199724U (ja) 2015-03-23 2015-09-10 左近 森 へら根がかり防止メガネ形サルカン

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07276187A (ja) * 1994-04-07 1995-10-24 Mitsubishi Electric Corp 生産装置
JPH09305213A (ja) * 1996-05-15 1997-11-28 Nachi Fujikoshi Corp ロボット制御装置
JP2000194409A (ja) * 1998-12-25 2000-07-14 Kawasaki Heavy Ind Ltd ロボットのプログラム変換装置
JP2002236668A (ja) * 2001-02-13 2002-08-23 Matsushita Electric Ind Co Ltd ロボット制御装置
JP2009279608A (ja) * 2008-05-21 2009-12-03 Fanuc Ltd ロボットおよびプレス機械を含むシステム、複数のロボットを含むシステム、ならびにそのようなシステムにおいて使用されるロボットの制御装置
JP2011048467A (ja) * 2009-08-25 2011-03-10 Fanuc Ltd 加工システム
JP2013134786A (ja) * 2011-12-22 2013-07-08 Fanuc Robotics America Inc ロボットによる数値制御プログラムの実行
JP2016024662A (ja) * 2014-07-22 2016-02-08 ファナック株式会社 左手座標系対応の数値制御装置
JP2017134722A (ja) * 2016-01-29 2017-08-03 ファナック株式会社 共通の言語仕様のプログラムにて複数の種類の製造装置を駆動する製造システム
JP2018153883A (ja) * 2017-03-16 2018-10-04 株式会社安川電機 コントロールシステム、コントローラ及び制御方法

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11565414B2 (en) 2019-04-03 2023-01-31 Fanuc Corporation Machining control system and machining system
JP7060540B2 (ja) 2019-04-03 2022-04-26 ファナック株式会社 加工制御システム及び加工システム
JP2020170356A (ja) * 2019-04-03 2020-10-15 ファナック株式会社 加工制御システム及び加工システム
JP7004868B1 (ja) * 2020-07-17 2022-02-07 三菱電機株式会社 数値制御装置および数値制御方法
WO2022097719A1 (ja) * 2020-11-09 2022-05-12 ファナック株式会社 数値制御システム及び産業機械の制御方法
WO2022102578A1 (ja) * 2020-11-13 2022-05-19 ファナック株式会社 数値制御装置、及び数値制御システム
WO2022131173A1 (ja) * 2020-12-15 2022-06-23 ファナック株式会社 数値制御システム及び産業機械の制御方法
WO2022163744A1 (ja) * 2021-01-29 2022-08-04 ファナック株式会社 ロボット制御装置及び数値制御システム
WO2022186255A1 (ja) * 2021-03-05 2022-09-09 ファナック株式会社 指令生成装置及びコンピュータプログラム
WO2022191218A1 (ja) * 2021-03-08 2022-09-15 京セラ株式会社 プログラム管理装置、ロボット制御システム、及びプログラム管理方法
WO2022191057A1 (ja) * 2021-03-10 2022-09-15 ファナック株式会社 動作経路生成装置、数値制御装置、数値制御システム、及びコンピュータプログラム
WO2022269896A1 (ja) * 2021-06-25 2022-12-29 ファナック株式会社 数値制御システム
JP7183488B1 (ja) * 2022-06-09 2022-12-05 三菱電機株式会社 加工プログラム作成装置および加工プログラム作成方法
WO2023238346A1 (ja) * 2022-06-09 2023-12-14 三菱電機株式会社 加工プログラム作成装置および加工プログラム作成方法
JP7256931B1 (ja) * 2022-08-26 2023-04-12 ファナック株式会社 数値制御システム、数値制御装置、産業用装置及びコンピュータプログラム
WO2024042728A1 (ja) * 2022-08-26 2024-02-29 ファナック株式会社 数値制御システム、数値制御装置、産業用装置及びコンピュータプログラム
JP7448736B1 (ja) 2023-09-22 2024-03-12 ファナック株式会社 数値制御装置及び数値制御システム

Also Published As

Publication number Publication date
CN113260931B (zh) 2024-02-13
CN113260931A (zh) 2021-08-13
JPWO2020144772A1 (ja) 2021-02-18
JP6647472B1 (ja) 2020-02-14
US20220011754A1 (en) 2022-01-13
DE112019006613T5 (de) 2021-09-30

Similar Documents

Publication Publication Date Title
JP6647472B1 (ja) 数値制御装置および数値制御方法
JP5766762B2 (ja) 動作設定画面を備えた数値制御装置
JP2003195917A (ja) 数値制御装置
WO2022224425A1 (ja) 数値制御装置及び数値制御システム
JPH0527815A (ja) 産業用ロボツトの同期制御方法
WO2019012692A1 (ja) 数値制御装置および数値制御方法
WO2022034848A1 (ja) 数値制御システム及びロボット制御方法
JP3665344B2 (ja) ロボットのジョグ操作方法及びロボットのジョグ操作システム
JP2009066738A (ja) ロボットの教示装置
JPS58225406A (ja) 工業用ロボツト
JP3264705B2 (ja) 数値制御工作機械のロボットハンドの制御方法
JP4770076B2 (ja) 数値制御装置
JP7412664B1 (ja) 数値制御装置および数値制御方法
JPH0498301A (ja) 数値制御工作機械および数値制御装置
JP7183488B1 (ja) 加工プログラム作成装置および加工プログラム作成方法
JP4873082B2 (ja) 数値制御装置
JPH0736526A (ja) 数値制御装置
JP7157281B1 (ja) ロボット制御装置、数値制御システム及び数値制御方法
JPS5856105A (ja) 産業用ロボツト
JP3230886B2 (ja) 数値制御研削盤
WO2022131327A1 (ja) 数値制御装置及び数値制御システム
WO2023112342A1 (ja) 教示装置、制御装置、及び機械システム
JPH0573118A (ja) ロボツト制御装置
JPH0474205A (ja) 数値制御装置
JPH07230312A (ja) Cncシステム

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2019554952

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19909210

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 19909210

Country of ref document: EP

Kind code of ref document: A1