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

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

Info

Publication number
WO2020194752A1
WO2020194752A1 PCT/JP2019/013887 JP2019013887W WO2020194752A1 WO 2020194752 A1 WO2020194752 A1 WO 2020194752A1 JP 2019013887 W JP2019013887 W JP 2019013887W WO 2020194752 A1 WO2020194752 A1 WO 2020194752A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
unit
control device
numerical control
manual
Prior art date
Application number
PCT/JP2019/013887
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
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2019/013887 priority Critical patent/WO2020194752A1/ja
Priority to JP2019557001A priority patent/JP6811878B1/ja
Priority to CN201980094562.8A priority patent/CN113614660B/zh
Publication of WO2020194752A1 publication Critical patent/WO2020194752A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/06Safety devices
    • 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

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 device that simultaneously controls a machine tool that processes a work piece and a robot that conveys the work piece.
  • these numerical control devices there is a device in which a user can control a machine tool or a robot by operating a manual handle.
  • the numerical control device described in Patent Document 1 includes a manual switch for switching from control according to a machining program to manual operation, and when the manual switch is turned on, a speed signal is generated by rotation of a manual handle by user operation. Is generated, the speed of the shaft drive motor provided in the machine tool is controlled according to the speed signal, and the machine is moved along a predetermined movement path.
  • the manual operation is performed without knowing whether or not the manual operation may be performed. Therefore, for example, when the technique of Patent Document 1 is applied to a robot that moves the robot in a direction corresponding to a manual operation, the robot moved by the manual operation interferes with a machine tool that is driven and controlled according to a machining program. There was a problem that there was.
  • the present invention has been made in view of the above, and an object of the present invention is to obtain a numerical control device capable of manually operating a robot while preventing interference between the robot and a machine tool.
  • the present invention is a numerical control device used in a control system that controls a machine tool that processes a work piece and a robot that conveys the work piece. It has an input operation unit that accepts manual operations on the robot, a control calculation unit that controls the machine tool using a numerical control program, and controls the robot based on the manual operation.
  • the control calculation unit is a control system.
  • the manual operation is performed when the manual operation of the robot is permitted by the manual permission judgment unit and the manual permission judgment unit that determines whether or not the robot can be manually operated based on the state of, the manual operation is based on the manual operation. It includes a movement data transmission unit that generates a first movement command to the control device that controls the movement of the robot and transmits the first movement command to the control device.
  • the numerical control device has the effect of being able to manually operate the robot while preventing interference between the robot and the machine tool.
  • the figure for demonstrating the retrograde route which the numerical control device which concerns on Embodiment 3 causes a robot to execute.
  • a flowchart showing a processing procedure of a process in which the numerical control device according to the third embodiment reverses the operation of the robot.
  • 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 100 is a system that controls a machine tool 70 by using a numerical control (NC) program such as a G code program, and controls a robot 60 by a manual operation by a user.
  • NC numerical control
  • the control system 100 includes a machine tool 70, a numerical control device 1X, a robot controller 50, and a robot 60.
  • the numerical control device 1X is arranged in the machine tool 70, for example.
  • the numerical control device 1X of the first embodiment determines in the control system 100 whether or not the robot 60 may be allowed to be manually operated, and is in a state where the manual operation may be permitted. In addition, the manual operation of the robot 60 from the user is accepted.
  • the numerical control device 1X is a device that sends a command to the machine tool 70 for machining a machining work (workpiece) using a tool.
  • the numerical control device 1X is a device that performs CNC (Computer Numerical Control) and is connected to the input operation unit 3X.
  • the numerical control device 1X is connected to the machine tool 70, the input operation unit 3X, and the robot controller 50. Further, the robot controller 50 is connected to the input operation unit 3X and the robot 60. The numerical control device 1X and the robot controller 50 are connected via, for example, a LAN (Local Area Network).
  • LAN Local Area Network
  • the numerical control device 1X executes communication between the machine tool 70 and the input operation unit 3X, and the robot controller 50 communicates with the numerical control device 1X, the input operation unit 3X, and the robot 60. Perform communication.
  • the numerical control device 1X and the robot 60 are connected via the robot controller 50, and the numerical control device 1X controls the robot 60 via the robot controller 50.
  • the input operation unit 3X operates the robot 60 via the robot controller 50.
  • the robot controller 50 may be omitted.
  • the input operation unit 3X is a device for the user to operate the numerical control device 1X and the robot controller 50.
  • the input operation unit 3X includes an input / output unit 51, an emergency stop button 52, and an operation panel 53.
  • the input operation unit 3X operates the numerical control device 1X by sending a signal corresponding to the user operation to the numerical control device 1X.
  • 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 When the emergency stop button 52 is pressed by the user, it sends a signal for stopping the robot controller 50 to the robot controller 50 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 numerical control device 1X.
  • the emergency stop button 52 and the input / output unit 51 may be arranged on the operation panel 53.
  • the robot controller 50 controls the robot 60 according to an instruction sent from the numerical control device 1X. Further, the robot controller 50 stops the operation of the robot 60 when a signal is sent from the emergency stop button 52.
  • the robot 60 grips the machining work, which is the object to be machined, by the robot hand 61, and conveys the gripped machining work.
  • the robot 60 loads the machine tool 70 before machining and unloads the machine tool 70 after machining from the machine tool 70.
  • An example of the robot 60 is a manipulator.
  • the robot 60 may execute a process other than the transfer of the machined work.
  • the numerical control device 1X includes a control calculation unit 2X, which will be described later, a display unit 4, and a PLC operation unit 5.
  • the numerical control device 1X controls the machine tool 70 and the robot 60 by using the NC program. Further, when the numerical control device 1X receives a signal from the input operation unit 3X, the numerical control device 1X causes the machine tool 70 to execute a process corresponding to the received signal. Further, the numerical control device 1X 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 machine tool is machined while the tool and the machine tool are relatively moved by two or more drive shafts.
  • the first coordinate system which is the coordinate system of the machine tool 70
  • the second coordinate system which is the coordinate system of the robot 60
  • the machine tool 70 is controlled by a Cartesian coordinate system, for example, moving a tool or a workpiece in three axial directions.
  • the robot 60 includes a rotation axis, and drives, for example, in directions of 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 control device 1X includes a control calculation unit 2X, a display unit 4, and a PLC operation unit 5 such as a machine operation panel for operating a PLC (Programmable Logic Controller) 36.
  • FIG. 2 shows an input operation unit 3X, a machine tool 70, a robot controller 50, and a robot 60 together with a numerical control device 1X.
  • the machine tool 70 includes a drive unit 90 that drives a tool and a machining work.
  • 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, 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 servomotors 901 and 902 that move the tool in each axial direction defined on the numerical control device 1X, and detectors 97 and 98 that detect the positions and speeds of the servomotors 901 and 902. There is. Further, the drive unit 90 includes a servo control unit in each axial direction that controls the servomotors 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 servomotors 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 servomotor 901
  • the Z-axis servo control unit 92 controls the servomotor 902. Controls the Z-axis movement of the tool.
  • the machine tool 70 may be provided with two or more tool rests.
  • the drive unit 90 includes a set of X-axis servo control units 91, a Z-axis servo control unit 92, servomotors 901 and 902, and detectors 97 and 98 for each tool post.
  • the drive unit 90 includes a spindle motor 911 for rotating the spindle for rotating the workpiece, and a detector 211 for detecting the position and 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 includes a spindle servo control unit 200 that controls the spindle motor 911 based on a command from the numerical control device 1X.
  • the spindle servo control unit 200 performs feedback control to the spindle motor 911 based on the position and the 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 turrets.
  • the input operation unit 3X is a means for inputting information to the control calculation unit 2X.
  • the input operation unit 3X is composed of input means such as a keyboard, a button, or a mouse, and is controlled by receiving and controlling a user's input of commands to the numerical control device 1X, a user's manual operation to the robot 60, or an NC program or parameter. Input to the calculation unit 2X.
  • the input operation unit 3X includes a manual handle 55, a jog button 57, and an axis selection switch 59.
  • the axis selection switch 59 is a switch for selecting an axis to be manually operated with respect to the robot 60.
  • An example of the axis selection switch 59 is a coordinate system in the machine tool 70, in which a switch that specifies the X axis, a switch that specifies the Y axis, a switch that specifies the Z axis, a switch that specifies the A axis, and a switch that specifies the B axis. , A switch that specifies the C-axis.
  • the axis selection switch 59 sends axis information indicating which axis the pressed or touched axis is to the control calculation unit 2X. This axis information is sent to the robot manual operation unit 41X via the storage unit 34X.
  • the manual handle 55 is a handle for controlling the amount of movement of the robot 60 in the axial direction.
  • the manual handle 55 sends a movement amount corresponding to the operation to the control calculation unit 2X. This movement amount is sent to the robot manual operation unit 41X via the storage unit 34X.
  • the jog button 57 is a button for jogging the amount of movement of the robot 60 in the axial direction.
  • the jog button 57 sends a movement amount corresponding to the operation to the control calculation unit 2X. This movement amount is sent to the robot manual operation unit 41X via the storage unit 34X.
  • the display unit 4 is configured by a display means such as a liquid crystal display device, and displays information processed by the control calculation unit 2X on a display screen.
  • a display means such as a liquid crystal display device
  • 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 in the display unit 4.
  • the control calculation unit 2X which is a control unit, controls the machine tool 70 using an 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 34X, a screen processing unit 31, an analysis processing unit 37, a control signal processing unit 35, a PLC 36, and an interpolation processing unit 38. , A state determination unit 45, an acceleration / deceleration processing unit 39, an axis data output unit 40, a robot manual operation unit 41X, and a communication control unit 44.
  • the PLC 36 may be arranged outside the control calculation unit 2X.
  • the storage unit 34X 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. Specifically, control parameters, servo parameters, and tool data for operating the numerical control device 1X are stored in the parameter storage area 341.
  • the NC program used for machining the machining work is stored in the NC program storage area 343.
  • the screen display data displayed by 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 34X is provided with a shared area 345 for storing data that is temporarily used.
  • the screen processing unit 31 controls the display unit 4 to display the screen display data stored in the display data storage area 344.
  • the input control unit 32 receives the information input from the input operation unit 3X.
  • the data setting unit 33 stores the information received by the input control unit 32 in the storage unit 34X. That is, the input information received by the input operation unit 3X is written to the storage unit 34X via the input control unit 32 and the data setting unit 33.
  • the control signal processing unit 35 is connected to the PLC 36, and receives signal information from the PLC 36, such as a relay that operates the machine tool 70.
  • the control signal processing unit 35 writes the received signal information in the shared area 345 of the storage unit 34X. These signal information is referred to by the interpolation processing unit 38 during the processing operation.
  • the analysis processing unit 37 outputs an auxiliary command to the shared area 345
  • the control signal processing unit 35 reads the auxiliary command from the shared area 345 and sends it to the PLC 36.
  • Auxiliary commands are commands other than commands that operate the drive shaft, which is a numerical control shaft.
  • An example of an auxiliary command is an M code or a T code.
  • the PLC 36 stores a ladder program that describes the machine operation executed by the PLC 36.
  • the PLC 36 receives the T code or the M code which is the auxiliary command, the PLC 36 executes the process corresponding to the auxiliary command on 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 35 in order to execute the next block of the NC program.
  • control calculation unit 2X the control signal processing unit 35, the analysis processing unit 37, the interpolation processing unit 38, and the robot manual operation unit 41X are connected via the storage unit 34X, and information is provided via the storage unit 34X. Write and read.
  • the storage unit 34X is used to explain the writing and reading of information between the control signal processing unit 35, the analysis processing unit 37, the interpolation processing unit 38, and the robot manual operation unit 41X. May be omitted.
  • the selection of the NC program is performed by the user 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, using the cycle start of the machine operation panel or the like as a trigger, the analysis processing unit 37 reads the NC program of the selected NC program number from the NC program storage area 343. , Performs analysis processing for each block (each line) of the NC program.
  • the analysis processing unit 37 analyzes, for example, a G code (command related to shaft movement, etc.), a T code (tool change 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 35. If the analyzed line contains an M code, the analysis processing unit 37 sends the M code to the PLC 36 via the control signal processing unit 35.
  • 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 to the storage unit 34X via the control signal processing unit 35.
  • the interpolation processing unit 38 refers to the execution result written in the storage unit 34X.
  • 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 specified by the S code to the interpolation processing unit 38.
  • the spindle speed is the number of revolutions of the spindle per unit time.
  • the movement condition is a tool feed condition for moving the machining position, and is indicated by the speed at which the tool post is moved, the position at which the tool post is moved, and the like. For example, tool feed of a tool causes the tool to advance in the X-axis direction (+ X direction) and the Z-axis direction (+ Z direction).
  • the interpolation processing unit 38 generates data for controlling the machine tool 70 by using a command to the machine tool 70 among the analysis results by the analysis processing unit 37, and sends the data to the acceleration / deceleration processing unit 39.
  • the acceleration / deceleration processing unit 39 outputs data for controlling the machine tool 70 to the machine tool 70 via the axis data output unit 40.
  • the state determination unit 45 acquires the state data indicating the state of the machine tool 70 from the control signal processing unit 35, and corrects the data output by the axis data output unit 40 to the machine tool 70 based on the state data. For example, when the door of the machine tool 70 is open, the user may invade the machine tool 70. Therefore, the data output by the axis data output unit 40 to the machine tool 70 is output to the servomotors 901 and 902 and the spindle. Correct the data to stop the drive of the motor 911.
  • the communication control unit 44 is connected to the robot manual operation unit 41X and the robot controller 50.
  • the communication control unit 44 transmits the data sent from the robot manual operation unit 41X to the robot controller 50, and transmits the data sent from the robot controller 50 to the robot manual operation unit 41X.
  • An example of the data transmitted by the communication control unit 44 to the robot controller 50 is the movement amount of the axis generated by a manual operation (operation to the jog button 57 or the manual handle 55).
  • An example of data transmitted by the communication control unit 44 to the robot manual operation unit 41X is information indicating the state of the robot 60. In the following description, it may be omitted that the communication control unit 44 is used when explaining the transmission / reception of data between the robot manual operation unit 41X and the robot controller 50.
  • the robot manual operation unit 41X includes a manual availability determination unit 412 and a moving data transmission unit 413.
  • the movement data transmission unit 413 generates a movement command (first movement command) based on the axis information selected by the axis selection switch 59 and the movement amount sent from the jog button 57 or the manual handle 55, and moves.
  • the command is sent to the robot controller 50.
  • the numerical control device 1X can operate the robot 60 via the robot controller 50.
  • the manual availability determination unit 412 determines whether or not the robot 60 can be manually operated based on the state of the control system 100 (hereinafter referred to as the system state). That is, the manual operation availability determination unit 412 determines whether or not the robot 60 can be manually operated based on at least one state of the robot 60, the numerical control device 1X, and the machine tool 70. Various data possessed by the numerical control device 1X are referred to in determining whether or not it is possible.
  • the manual enable / disable determination unit 412 acquires the communication state between the robot controller 50 and the numerical control device 1X from the communication control unit 44, and when the communication between the robot 60 and the numerical control device 1X is not connected, Judge that manual operation is not possible.
  • Examples of the state of the robot 60 include the temperature of the parts constituting the robot 60, the communication state with the robot controller 50, whether or not an emergency stop is in progress, and the user invading the intrusion prohibited area around the robot 60. Whether or not it is.
  • An example of the state of the numerical controller 1X is the communication state with the robot controller 50. If the communication status with the robot controller 50 is not connected, the manual enable / disable determination unit 412 may have some abnormality, so the manual operation is performed without connecting the communication with the robot controller 50. Judge as impossible.
  • the manual availability determination unit 412 may acquire status data indicating the status of the machine tool 70 from the status determination unit 45 and determine whether or not manual operation is possible based on the status data.
  • An example of the state of the machine tool 70 is the open / closed state of the door of the housing surrounding the machine tool 70.
  • the manual operation possibility determination unit 412 determines that the manual operation is not possible because the user may invade the machine tool 70 when the door of the machine tool 70 is open. Further, when the door of the machine tool 70 is closed, the manual availability determination unit 412 determines that the manual operation is possible, but displays a caution message indicating that the door is closed on the display unit 4. As a result, the operator can prevent the robot 60 from interfering with the door of the machine tool 70 when manually teaching the robot 60 inside the machine tool 70.
  • the manual availability determination unit 412 may determine whether or not the robot 60 can be manually operated based on the state of the components in the control system 100. For example, the manual availability determination unit 412 may determine whether or not the robot 60 can be manually operated based on the detection values detected by various sensors such as the temperature sensor and the contact sensor arranged in the control system 100. In this case, if any of the sensors arranged in the control system 100 shows an abnormal detection value (a detection value higher than the judgment value), some abnormality may have occurred. Unit 412 determines that manual operation is not possible.
  • the manual availability determination unit 412 may acquire an alarm on the robot 60 side from the communication control unit 44 and determine whether or not manual operation is possible based on the acquired alarm. Further, the manual availability determination unit 412 may acquire a door opening / closing signal from the control signal processing unit 35 and determine whether or not manual operation is possible based on the door opening / closing signal. Further, the manual availability determination unit 412 determines whether or not the machine tool 70 is in automatic operation based on the signal to and from the PLC 36 input / output by the control signal processing unit 35 (ladder interface). If it is in automatic operation, it may be determined that manual operation is not possible. For example, the manual availability determination unit 412 may determine that manual operation is possible when the door is open and the vehicle is not automatically operated.
  • the screen processing unit 31 may display an alarm on the display unit 4 to notify the user that the manual operation is not possible. Further, when the manual operation possibility determination unit 412 determines that the manual operation is not possible, the movement command is not transmitted to the robot 60. As a result, even if the robot 60 is manually operated, the robot does not perform an operation corresponding to the manual operation, so that it is possible to visually notify the user that the manual operation is impossible.
  • the manual handle 55 may be used when manipulating the amount of axial movement of the machine tool 70. That is, the user may operate the robot 60 and the machine tool 70 with one manual handle 55.
  • a changeover switch (not shown) for switching the operation target by the manual handle 55 is arranged on the operation panel 53.
  • the control signal processing unit 35 confirms the state of the changeover switch with respect to the operation panel 53, and determines whether the manual handle 55 is in the state of controlling the machine tool 70 or in the state of controlling the robot 60. Based on the state of the changeover switch, the control signal processing unit 35 switches whether the handle operation on the manual handle 55 is treated as a handle operation on the robot 60 or as a handle operation on the machine tool 70.
  • the control signal processing unit 35 When the control signal processing unit 35 handles the steering wheel operation as a steering wheel operation to the robot 60, the control signal processing unit 35 stores the data corresponding to the steering wheel operation in the shared area 345 as the data for operating the robot 60.
  • the data for operating the robot 60 is the 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 robot 60.
  • the control signal processing unit 35 When the control signal processing unit 35 handles the handle operation as a handle operation to the machine tool 70, the control signal processing unit 35 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 the 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 part of the machine tool 70.
  • two manual handles a manual handle for operating the robot 60 and a manual handle for operating the machine tool 70, may be arranged instead of the manual handle 55.
  • FIG. 3 is a diagram showing a configuration example of two manual handles included in the control system according to the first embodiment.
  • FIG. 3 illustrates a numerical control device 1X, an input / output unit 51, a manual handle 55A for operating the robot 60, and a manual handle 55B for operating the machine tool 70.
  • Both the manual handles 55A and 55B are connected to the input / output unit 51.
  • the user When operating the robot 60, the user operates the manual handle 55A. As a result, the manual handle 55A sends the movement amount of the robot 60 corresponding to the operation to the numerical control device 1X.
  • the user operates the manual handle 55B when operating the machine tool 70. As a result, the manual handle 55B sends the movement amount of the machine tool 70 corresponding to the operation to the numerical control device 1X.
  • FIG. 4 is a flowchart showing a procedure for determining whether or not the robot can be manually operated by the numerical control device according to the first embodiment.
  • the manual enable / disable determination unit 412 can manually operate the robot 60 based on the system state, that is, at least one state of the robot 60, the numerical control device 1X, and the machine tool 70. Whether or not it is determined (step S1).
  • step S2 When it is determined that the manual operation of the robot 60 is impossible (steps S1, No), the manual availability determination unit 412 sends an instruction to display an alarm to the screen processing unit 31. As a result, the screen processing unit 31 causes the display unit 4 to display an alarm (step S2).
  • FIG. 5 is a diagram for explaining an alarm displayed on the display unit by the numerical control device according to the first embodiment.
  • FIG. 5 shows an operation reception screen 21 which is a first example of a display screen displayed by the display unit 4.
  • the operation reception screen 21 is a screen for receiving an operation from the user to the robot 60.
  • a notification area 11 for the user is arranged on the operation reception screen 21.
  • the notification area 11 is an area in which an alarm, a message, or the like for the user is displayed.
  • an alarm such as "The robot cannot be operated because the robot is not connected" is displayed indicating that the manual operation is not possible.
  • the operation reception screen 21 and the operation reception screens 22 and 23 described later display the axis selection switch 59 and the jog button 57. From the axis selection switch 59, the user touches the name of the desired axis to select an axis manually operated by the robot 60.
  • the manual availability determination unit 412 determines whether or not the machine tool 70 needs attention (step S3). When there is a problem with the machine tool 70 and caution is required (step S3, Yes), the manual availability determination unit 412 sends an instruction to display a caution message to the screen processing unit 31. As a result, the screen processing unit 31 causes the display unit 4 to display a caution message (step S4). After that, the moving data transmission unit 413 executes the process of step S5 described later.
  • FIG. 6 is a diagram for explaining a caution message displayed on the display unit by the numerical control device according to the first embodiment.
  • FIG. 6 shows an operation reception screen 22 which is a second example of the display screen displayed by the display unit 4.
  • the operation reception screen 22 is a screen for receiving an operation from the user to the robot 60.
  • a caution message such as "Be careful of manual robot operation while the door is closing" is displayed indicating that the machine tool 70 is in a state requiring caution.
  • the numerical control device 1X displays a caution message when caution is required even when manual operation is possible.
  • the movement data transmission unit 413 receives the movement amount sent from the jog button 57 or the manual handle 55.
  • the movement data transmission unit 413 receives the movement amount sent from the jog button 57 or the manual handle 55, it generates a movement command based on the movement amount and transmits the movement command to the robot 60 via the robot controller 50.
  • Step S5 the process of determining whether or not the robot 60 can be manually operated, which is the process of steps S1 to S5 described above, may be referred to as the process of step S10.
  • the numerical control device 1X determines whether or not the robot 60 can be manually operated based on at least one state of the machine tool 70, the robot 60, and the numerical control device 1X. .. Therefore, it is possible to manually operate the robot 60 while preventing interference between the robot 60 and the machine tool 70.
  • Embodiment 2 a second embodiment of the present invention will be described with reference to FIGS. 7 and 8.
  • the coordinate system of the machine tool 70 is converted to the coordinate system of the robot 60, and then a command is given to the robot 60. send.
  • FIG. 7 is a diagram showing a configuration example of the numerical control device according to the second embodiment.
  • the components that achieve the same functions as the numerical control device 1X of the first embodiment are designated by the same reference numerals, and redundant description will be omitted.
  • the numerical control device 1Y has a control calculation unit 2Y, a display unit 4, and a PLC operation unit 5.
  • FIG. 7 shows the input operation unit 3X, the machine tool 70, the robot controller 50, and the robot 60 together with the numerical control device 1Y.
  • the input operation unit 3X accepts a manual operation in the coordinate system of the machine tool 70
  • the control calculation unit 2Y converts the command of the coordinate system of the machine tool 70 into the command of the coordinate system of the robot 60. ..
  • control calculation unit 2Y includes a storage unit 34Y instead of the storage unit 34X, and a robot manual operation unit 41Y instead of the robot manual operation unit 41X.
  • the storage unit 34Y includes a specific distance storage area 346 and an offset coordinate storage area 347 in addition to the area included in the storage unit 34X.
  • the offset coordinate storage area 347 is an area for storing offset coordinates indicating the relationship between the coordinate system of the machine tool 70 (hereinafter referred to as NC coordinate system) and the coordinate system of the robot 60 (hereinafter referred to as robot coordinate system). ..
  • NC coordinate system coordinate system of the machine tool 70
  • robot coordinate system hereinafter referred to as robot coordinate system
  • the offset coordinates are sent from the input operation unit 3X to the input control unit 32, and are stored in the offset coordinate storage area 347 of the storage unit 34Y via the data setting unit 33.
  • the offset coordinates are used when converting the movement amount commanded by the NC coordinate system into the movement amount used in the robot coordinate system. That is, when the user executes the operation in the NC coordinate system when the robot 60 is manually operated, the control calculation unit 2Y converts the NC coordinate system into the robot coordinate system by using the offset coordinates.
  • the specific distance storage area 346 is an area for storing a specific distance.
  • the specific distance indicates the distance from the machine origin of the machine tool 70.
  • the range inside the specific distance from the machine origin of the machine tool 70 is the range in which the possibility that the robot 60 interferes with the machine machine 70 is higher than the determination value.
  • the robot manual operation unit 41Y includes a coordinate conversion unit 411 in addition to the components included in the robot manual operation unit 41X.
  • the coordinate conversion unit 411 acquires the axis selected by the axis selection switch 59, the movement amount input from the jog button 57 or the manual handle 55, and the offset coordinates from the storage unit 34Y.
  • the coordinate conversion unit 411 transfers the axis selected by the axis selection switch 59 and the movement amount input to the jog button 57 or the manual handle 55 to the axis (movement axis) in the robot coordinate system and the movement amount based on the offset coordinates. Convert to the amount of movement.
  • the coordinate conversion unit 411 converts the axis and movement amount of the NC coordinate system into the axis and movement amount of the robot coordinate system based on the offset coordinates.
  • the movement data transmission unit 413 sends the converted axis and movement amount to the robot controller 50, so that the robot 60 can be manually operated in the NC coordinate system.
  • the movement data transmission unit 413 sends the axis selected by the user and the movement amount input to the user to the robot controller 50 as the axis and the movement amount of the robot coordinate system.
  • FIG. 8 is a flowchart showing a processing procedure of conversion processing to the robot coordinate system by the numerical control device according to the second embodiment.
  • the coordinate conversion process by the numerical control device 1Y when the robot 60 is manually operated will be described.
  • the coordinate conversion unit 411 acquires the information of the axis (selection axis) selected by the axis selection switch 59 from the storage unit 34Y (step S21). Further, the coordinate conversion unit 411 acquires the movement amount input to the jog button 57 or the manual handle 55 from the storage unit 34Y (step S22).
  • the coordinate conversion unit 411 may execute the process of step S21 and the process of step S22 in any order.
  • the coordinate conversion unit 411 determines whether or not the offset coordinates are stored in the offset coordinate storage area 347 (step S23). When the offset coordinate storage area 347 has offset coordinates (step S23, Yes), the coordinate conversion unit 411 converts the NC coordinate system into the robot coordinate system (step S24). That is, the coordinate conversion unit 411 converts the acquired axis and movement amount of the NC coordinate system into the axis and movement amount of the robot coordinate system.
  • the manual availability determination unit 412 executes the manual availability determination process of the robot 60 (step S10). That is, the manual availability determination unit 412 executes the processes of steps S1 to S5 described with reference to FIG.
  • the coordinate conversion unit 411 executes the manual availability determination process of the robot 60 without performing the coordinate conversion (step S10). That is, if the robot 60 can be manually operated when the offset coordinates are not set, the movement data transmission unit 413 uses the axis and the movement amount acquired from the storage unit 34Y as the axis and the movement amount of the robot coordinate system. Send to the robot controller 50.
  • the coordinate conversion unit 411 may execute the processes of steps S21 and S22 after the process of step S23. In the description of the third and subsequent embodiments described later, the conversion process to the robot coordinate system, which is the process of steps S23 and S24 described above, may be referred to as the process of step S30.
  • the manual availability determination unit 412 of the numerical control device 1Y acquires a specific distance from the specific distance storage area 346 when executing the process of step S10.
  • the manual availability determination unit 412 acquires the position (coordinates) of the robot 60 from the robot controller 50, and the coordinate conversion unit 411 reversely converts the coordinates to acquire the coordinates of the robot 60 in the NC coordinate system.
  • the inverse conversion here is a process of converting the coordinates of the robot coordinate system into the NC coordinate system.
  • the manual propriety determination unit 412 sets the three-dimensional region within a specific distance from the machine origin of the machine tool 70 to a specific region where the robot 60 is more likely to interfere with the machine tool 70 than the determination value. deep.
  • the manual availability determination unit 412 disables the manual operation of the robot 60 when the coordinates in the NC coordinate system of the robot 60 enter the specific area.
  • the manual permission / rejection determination unit 412 manually does not allow the robot 60 to enter the machining area because the door is closed. Disable the operation.
  • the manual enable / disable determination unit 412 causes the display unit 4 to display an alarm by the screen processing unit 31 so that the user cannot manually operate the robot 60. You may notify.
  • the numerical control device 1Y changes the coordinate system of the machine tool 70 to the coordinate system of the robot 60. Since the command is sent to the robot 60 after being converted to, the user can easily manually operate the robot 60.
  • Embodiment 3 Next, a third embodiment of the present invention will be described with reference to FIGS. 9 to 12.
  • the operation of the robot 60 by the manual operation is memorized, and when a retrograde instruction is given, the operation of the robot 60 is returned in the reverse direction.
  • FIG. 9 is a diagram showing a configuration example of the numerical control device according to the third embodiment.
  • components that achieve the same functions as the numerical control devices 1X and 1Y of the first and second embodiments are designated by the same reference numerals, and redundant description will be omitted.
  • the numerical control device 1Z has a control calculation unit 2Z, a display unit 4, and a PLC operation unit 5.
  • FIG. 9 shows the input operation unit 3Z, the machine tool 70, the robot controller 50, and the robot 60 together with the numerical control device 1Z.
  • the input operation unit 3Z includes a manual handle 55, a jog button 57, an axis selection switch 59, and a retrograde switch 54.
  • the retrograde switch 54 is a switch for returning the operation of the robot 60 in the reverse direction. While the retrograde switch 54 is pressed, the retrograde switch 54 continues to send retrograde information, which is information indicating that the retrograde switch 54 is pressed, to the control calculation unit 2Z. This retrograde information is sent to the robot manual operation unit 41Z via the storage unit 34Z.
  • control calculation unit 2Z includes a storage unit 34Z instead of the storage unit 34Y and a robot manual operation unit 41Z instead of the robot manual operation unit 41Y.
  • the storage unit 34Z includes a manual operation storage area 348 and a transmission interval storage area 349 in addition to the area included in the storage unit 34Y.
  • the manual operation storage area 348 is an area for storing a movement command (hereinafter, referred to as a manual operation command) sent to the robot controller 50 while the robot 60 is being manually operated.
  • the manual operation command which is the first movement command, is generated by the movement data transmission unit 413 based on the movement data and stored in the manual operation storage area 348.
  • the manual command is indicated in the robot coordinate system.
  • the transmission interval storage area 349 is an area for storing the transmission cycle (reverse transmission interval) when the manual time command is converted into a movement command in the reverse direction and transmitted to the robot controller 50.
  • the robot manual operation unit 41Z includes a reverse direction conversion unit 414, which is a conversion unit, in addition to the components included in the robot manual operation unit 41Y.
  • the reverse direction conversion unit 414 converts the manual operation command in the manual operation storage area 348 into a movement command in the reverse direction.
  • the reverse direction conversion unit 414 When the reverse direction conversion unit 414 receives the movement amount input to the jog button 57 or the manual handle 55 while receiving the reverse information, the reverse direction conversion unit 414 causes the robot 60 to follow the manual operation command while receiving the movement amount. Generates a reverse movement command (second movement command). When the reverse direction conversion unit 414 receives a movement amount larger than 0 while receiving the retrograde information, the reverse direction conversion unit 414 generates a movement command for reversing the robot 60 according to the manual time command regardless of the magnitude of the movement amount. .. The movement command generated by the reverse direction conversion unit 414 is sent from the movement data transmission unit 413 to the robot controller 50.
  • the retrograde switch 54, the reverse direction conversion unit 414, the manual operation storage area 348, and the transmission interval storage area 349 may be arranged in the numerical control device 1X.
  • FIG. 10 is a diagram for explaining a screen for accepting a retrograde operation, which is displayed on the display unit by the numerical control device according to the third embodiment.
  • FIG. 10 shows an operation reception screen 23 which is a third example of the display screen displayed by the display unit 4.
  • the operation reception screen 23 is a screen for receiving an operation from the user to the robot 60.
  • the operation reception screen 23 displays the retrograde switch 54.
  • the retrograde information is sent to the control calculation unit 2Z.
  • FIG. 11 is a diagram for explaining a retrograde route that the numerical control device according to the third embodiment causes the robot to execute. If the jog button 57 or the manual handle 55 is operated without pressing the retrograde switch 54, the robot 60 moves in the forward direction. FIG. 11 shows a case where the robot hand 61 moves upward (st1), moves rightward (st2), moves leftward (st3), and moves downward (st4). While the robot 60 is being manually operated (st1 to st4), a manual operation command corresponding to the movement command sent by the movement data transmission unit 413 to the robot controller 50 is stored in the manual operation storage area 348.
  • FIG. 11 shows a case where the robot hand 61 moves upward (st5) and moves rightward (st6).
  • the path of st5 and the path of st4 are on the same straight line and have opposite directions. Further, the path of st6 and the path of st3 are on the same straight line, and the directions are opposite.
  • the reverse direction conversion unit 414 periodically calls a manual operation command from the manual operation storage area 348 while the jog button 57 is operated while the retrograde switch 54 is pressed. Then, the reverse direction conversion unit 414 converts the manual time command into a movement command in the reverse direction.
  • the movement data transmission unit 413 realizes the movement of the robot 60 in the reverse direction by transmitting a movement command in the reverse direction to the robot controller 50.
  • the reverse direction conversion unit 414 changes the manual time command to a reverse direction movement command each time the pulse input is received from the manual handle 55. Convert.
  • the cycle of converting the manual command in the reverse direction and transmitting it to the robot controller 50 when the jog button 57 is pressed is set in advance to the retrograde transmission interval.
  • the reverse direction conversion unit 414 and the moving data transmission unit 413 execute the conversion of the manual time command in the reverse direction and the transmission to the robot controller 50 according to the retrograde transmission interval.
  • the user can move the robot 60 in the positive direction (st1 to st4) shown by the solid line by operating the jog button 57 or the manual handle 55 after selecting the axis in the moving direction.
  • the user may want to move the robot 60 along the original path so as not to interfere with other objects in order to correct the position of the robot 60.
  • the robot 60 may interfere with another object due to an operation error.
  • the reverse direction (dotted line) shown by the dotted line is not considered without considering the selection of the axis and the amount of movement.
  • the robot 60 can be easily moved to st5, st6). This makes it possible to easily correct the position of the robot 60 without causing the robot 60 to interfere with other objects.
  • FIG. 12 is a flowchart showing a processing procedure of a process in which the numerical control device according to the third embodiment reverses the operation of the robot.
  • the reverse direction conversion unit 414 determines whether or not the reverse switch 54 is pressed (step S41).
  • the coordinate conversion unit 411 acquires the axis information selected by the axis selection switch 59 from the storage unit 34Z (step S42). Further, the coordinate conversion unit 411 acquires the movement amount input to the jog button 57 or the manual handle 55 from the storage unit 34Z (step S43). The coordinate conversion unit 411 may execute the process of step S42 and the process of step S43 in any order.
  • the coordinate conversion unit 411 executes the conversion process to the robot coordinate system (step S30). That is, the coordinate conversion unit 411 executes the processes of steps S23 and S24 described with reference to FIG. Further, the manual propriety determination unit 412 executes the manual propriety determination process of the robot 60 (step S10).
  • the reverse direction conversion unit 414 acquires the manual operation command stored in the manual operation storage area 348 (step S44).
  • the reverse direction conversion unit 414 converts the manual operation command in the manual operation storage area 348 into a movement command in the reverse direction (step S45).
  • the manual availability determination unit 412 executes the manual availability determination process of the robot 60 (step S10).
  • the reverse direction conversion unit 414 may switch between a process of moving the robot 60 in the forward direction of the movement path and a process of moving the robot 60 in the reverse direction based on the rotation direction of the manual handle 55. In this case, the reverse direction conversion unit 414 executes the movement in the forward direction and the movement in the reverse direction in accordance with the manual time command in the movement path storing the manual time command. On the other hand, the movement data transmission unit 413 causes the robot 60 to perform movement according to the operation to the jog button 57 or the manual handle 55 when a new operation that does not store the manual command is executed.
  • the manual operation is performed on only one axis of the orthogonal coordinate system
  • the manual operation may be such that a plurality of axes are simultaneously moved to the end point of the three-dimensional coordinate space as a target.
  • the numerical control device 1Z stores the operation of the robot 60 by the manual operation, and when a reverse instruction is given, the operation of the robot 60 is returned in the reverse direction. The user can easily correct the position of the robot 60.
  • Embodiment 4 Next, a fourth embodiment of the present invention will be described with reference to FIGS. 13 and 14.
  • the operating speed of the robot 60 at the time of manual operation is adjusted by using an override switch.
  • FIG. 13 is a diagram showing a configuration example of the numerical control device according to the fourth embodiment.
  • components that achieve the same functions as the numerical control devices 1X to 1Z of the first to third embodiments are designated by the same reference numerals, and redundant description will be omitted.
  • the numerical control device 1P has a control calculation unit 2P, a display unit 4, and a PLC operation unit 5.
  • FIG. 13 shows the input operation unit 3P, the machine tool 70, the robot controller 50, and the robot 60 together with the numerical control device 1P.
  • the input operation unit 3P includes a manual handle 55, a jog button 57, an axis selection switch 59, a retrograde switch 54, and an override switch 56.
  • the override switch 56 is a switch for multiplying the speeds of the machine tool 70 and the robot 60 by a magnification (override).
  • magnification override
  • the override switch 56 reduces the speed of the robot 60 at a specific rate when the robot 60 is manually operated using the jog button 57 or the manual handle 55.
  • the override switch 56 sends the set value set by the user operation to the control calculation unit 2P. This set value corresponds to the rate at which the speed of the robot 60 is reduced.
  • the set value sent from the override switch 56 is stored in the storage unit 34Z.
  • the control calculation unit 2P includes a robot manual operation unit 41P instead of the robot manual operation unit 41Z as compared with the control calculation unit 2Z.
  • the robot manual operation unit 41P includes an override control unit 415 in addition to the components included in the robot manual operation unit 41Z.
  • the override control unit 415 acquires the set value from the storage unit 34Z and converts the set value into a ratio that reduces the speed of the robot 60.
  • the movement data transmission unit 413 generates speed data in which the speed is reduced by multiplying the speed data of the manually operated robot 60 by a ratio.
  • the override switch 56 and the override control unit 415 may be arranged in the numerical control device 1X or the numerical control device 1Y.
  • FIG. 14 is a flowchart showing a processing procedure in which the numerical control device according to the fourth embodiment reduces the speed of the manually operated robot at a specific rate.
  • the coordinate conversion unit 411 acquires the axis information selected by the axis selection switch 59 from the storage unit 34Z (step S61). Further, the coordinate conversion unit 411 acquires the movement amount input to the jog button 57 or the manual handle 55 from the storage unit 34Z (step S62).
  • the coordinate conversion unit 411 may execute the process of step S61 and the process of step S62 in any order. After that, the coordinate conversion unit 411 executes the conversion process to the robot coordinate system (step S30).
  • the override control unit 415 acquires the operation state for the override switch 56, that is, the value set for the override switch 56 from the override switch 56 via the storage unit 34Z (step S63).
  • the override control unit 415 converts the value set in the override switch 56 into a ratio (magnification) multiplied by the speed of the robot 60 (step S64).
  • the override control unit 415 sends the converted ratio (%) to the moving data transmission unit 413. Further, the movement data transmission unit 413 acquires speed data indicating the movement speed of the robot 60 from the storage unit 34Z.
  • the moving data transmission unit 413 multiplies the speed data by a ratio (step S65). For example, when the ratio is 10%, the moving data transmission unit 413 generates speed data in which the speed of the robot 60 is reduced to 1/10.
  • the movement data transmission unit 413 transmits the axis information, the movement amount, and the generated speed data to the robot 60 via the robot controller 50 (step S66).
  • the user can control the operating speed of the robot 60 during manual operation with the override switch 56, so that it is easy for the user to avoid interference with the machine tool 70 or the like.
  • the user can also reduce the speed of the robot 60 by operating the robot controller 50, but in the fourth embodiment, the speed of the robot 60 is reduced even if the user does not move to the robot controller 50. Therefore, the work efficiency of the user is improved.
  • the numerical control device 1P reduces the operating speed of the robot 60 at the time of manual operation by using the override switch 56, the user can see that the robot 60 interferes with the machine tool 70 or the like. Can be easily avoided.
  • Embodiment 5 Next, a fifth embodiment of the present invention will be described with reference to FIG.
  • the possibility of manual operation is learned based on the relationship between the determination value when determining the state of the control system 100 and the time until an error occurs in the control system 100.
  • FIG. 15 is a diagram showing a configuration example of the numerical control device according to the fifth embodiment.
  • FIG. 16 is a diagram showing a configuration example of a machine learning device included in the numerical control device according to the fifth embodiment.
  • the components that achieve the same functions as the numerical control device 1X of the first embodiment are designated by the same reference numerals, and redundant description will be omitted.
  • the numerical control device 1Q has a control calculation unit 2Q, a display unit 4, and a PLC operation unit 5.
  • FIG. 15 shows the input operation unit 3X, the machine tool 70, the robot controller 50, and the robot 60 together with the numerical control device 1Q.
  • the control calculation unit 2Q includes a robot manual operation unit 41Q instead of the robot manual operation unit 41X.
  • the robot manual operation unit 41Q includes a manual availability determination unit 412Q instead of the manual permission determination unit 412.
  • the manual availability determination unit 412Q has a function of measuring the time from the start of the manual operation to the occurrence of an error, in addition to the function of the manual availability determination unit 412.
  • control calculation unit 2Q includes a machine learning device 80 in addition to the components included in the control calculation unit 2X.
  • the machine learning device 80 learns an appropriate determination value used when determining whether or not manual operation is possible, and the manual operation availability determination unit 412Q uses the determination value learned by the machine learning device 80 to determine whether or not manual operation is possible. judge. If the manual operation is not possible, the manual enable / disable determination unit 412Q notifies the user and invalidates the manual operation.
  • Each component of the numerical control device 1Q other than the machine learning device 80 sends state information indicating the state of the control system 100 to the machine learning device 80.
  • the state information are robot state information indicating the state of the robot 60, NC state information indicating the state of the machine tool 70, PLC state information indicating the state of the PLC 36, and the like.
  • the manual availability determination unit 412Q acquires robot state information from, for example, the robot manual operation unit 41Q. Further, the manual availability determination unit 412Q acquires NC status information from, for example, the shared area 345. Further, the manual availability determination unit 412Q acquires PLC state information from, for example, the control signal processing unit 35.
  • the machine learning device 80 acquires robot state information, NC state information, and PLC state information from the manual availability determination unit 412Q.
  • the machine learning device 80 may acquire the robot state information from the robot manual operation unit 41Q, the NC state information from the shared area 345, and the PLC state information from the control signal processing unit 35.
  • the state information may include information other than robot state information, NC state information, and PLC state information.
  • the manual availability determination unit 412Q determines whether or not an error has occurred during the manual operation of the robot 60 by the user based on the state information.
  • the error shall occur when the robot 60 collides with the machine tool 70, or when the possibility of colliding with the machine tool 70 is higher than a specific reference value. That is, the manual availability determination unit 412Q determines that an error has occurred when a state in which the manual operation of the robot 60 is disabled occurs in the control system 100.
  • the manual availability judgment unit 412Q compares the judgment value for each error judgment item with the value indicated by the error judgment item (value indicating the state) to determine whether or not an error has occurred for each error judgment item. To judge.
  • the determination value for each error determination item is stored in the storage unit 34X. Further, the manual availability determination unit 412Q measures the time from the start of the manual operation to the occurrence of an error (hereinafter, referred to as an error occurrence time).
  • the machine learning device 80 learns an appropriate determination value based on the relationship between the determination value when determining the state of the control system 100 and the error occurrence time in the control system 100. As a result, the determination value stored in the manual availability determination unit 412Q is rewritten by learning by the machine learning device 80. In this way, since the determination value is used for determining whether or not the manual operation is possible, the machine learning device 80 learns whether or not the manual operation is possible.
  • the manual availability determination unit 412Q notifies the screen processing unit 31 of an alarm when an error occurs. Therefore, it can be said that the determination value is a criterion for determining whether or not to generate an alarm.
  • the determination value is not limited to the case of being stored in the storage unit 34X, and may be stored in the machine learning device 80.
  • An example of an error determination item is whether or not the operating area of the robot hand 61 is within a specific range.
  • This operating area changes according to the manual operation of the robot 60 by the user. Since the operating area may be determined by the distance and the moving direction of the robot hand 61 at the specific position (start position) of the robot 60, the determination value for this distance becomes the determination value of the operating area. If the operating area of the robot hand 61 is too wide, the robot hand 61 tends to collide with the machine tool 70, and the time until the alarm is generated tends to be long. Therefore, if the determination value becomes too large, the time until the alarm is generated becomes long. On the other hand, if the determination value is too small, the operating area of the robot hand 61 becomes narrow, which is inconvenient.
  • the determination value that can secure the operating area of the robot hand 61 without shortening the time until the alarm is generated is an appropriate determination value. Further, since an error does not occur depending on the moving direction of the robot 60 (for example, it does not interfere with the machine tool 70), the range of the moving direction in which the error does not occur is an appropriate determination value. Further, the state of the machine tool 70 (a state in which the machine tool 70 is not in automatic operation (machining) and the door of the machine tool 70 is open) is an appropriate determination value for robot movement. Therefore, the machine learning device 80 sets the determination value so that the error occurrence time occurs at an appropriate time (hereinafter, referred to as an appropriate time).
  • the appropriate time is the elapsed time from the start of the manual operation, and may be a period such as 10 seconds to 30 seconds later, or a specific timing such as 15 seconds later.
  • the error does not occur at an appropriate time, in an appropriate moving direction, and in an appropriate state of the machine tool 70.
  • the machine learning device 80 learns various appropriate determination values. Since the position of the tool or the machining work changes depending on the progress of the NC program, a determination value may be set for each progress of the NC program. Further, although the case where the determination value is determined based on the error occurrence time has been described here, the determination value may be determined based on the movement amount.
  • the manual availability determination unit 412Q determines that an error has occurred, it measures or calculates various states and sends them to the machine learning device 80.
  • the machine learning device 80 includes a state observation unit 71 and a learning unit 72.
  • the state observation unit 71 acquires the state currently in use from the manual availability determination unit 412Q. When an error occurs, the state observation unit 71 observes various states as state variables 81 and sends them to the learning unit 72.
  • the manual availability determination unit 412Q acquires various states each time an error occurs while the user is manually operating the robot 60. Therefore, the state observation unit 71 acquires various states each time an error occurs and sends the state variable 81 to the learning unit 72.
  • the learning algorithm used for the learning unit 72 may be any learning algorithm.
  • reinforcement learning Reinforcement Learning
  • an agent in a certain environment observes the current state indicated by the state variable 81 and determines the action 83 to be taken.
  • the agent obtains the reward 82 from the environment by selecting the action 83, and learns the policy for obtaining the most reward 82 through the series of actions 83.
  • Q-learning and TD-learning are known as typical methods of reinforcement learning.
  • the general update equation (behavior value table) of the action value function Q (s, a) is expressed by equation (1).
  • s t represents the environment at time t
  • a t represents the behavior in time t.
  • the environment is changed to s t + 1.
  • rt + 1 represents the reward 82 received by the change in the environment
  • represents the discount rate
  • represents the learning coefficient.
  • the action value of the best action a at time t + 1 is larger than the action value Q of the action a executed at time t, the action value Q is increased, and vice versa. In that case, the action value Q is reduced.
  • the action value function Q (s, a) is updated so that the action value Q of the action a at time t approaches the best action value at time t + 1.
  • the best behavioral value in a certain environment is sequentially propagated to the behavioral value in the previous environment.
  • the learning unit 72 includes a reward calculation unit 73 and a function update unit 74.
  • the reward calculation unit 73 calculates the reward 82 based on the error occurrence time and the determination value, which are the state variables 81.
  • the reward calculation unit 73 increases the reward 82 when, for example, the difference between the error occurrence time and the appropriate time (hereinafter referred to as the time difference) when the user manually operates the robot 60 becomes smaller than the time difference so far (for example). Give a reward of "1"). For example, when the time difference is 0, the reward calculation unit 73 sets the reward 82 as the maximum reward.
  • the reward calculation unit 73 reduces the reward 82 (for example, gives a reward of "-1") when the time difference when the user manually operates the robot 60 becomes larger than the time difference so far. Also, in the case of a movement direction where no error occurs, the maximum reward is given (for example, a reward of "1" is given). Further, when the state of the machine tool 70 is not automatic operation and the door of the machine tool 70 is in the open state, the maximum reward is given (for example, the reward of "1" is given).
  • the function update unit 74 updates the function for determining the action 83 (next determination value) according to the reward 82 calculated by the reward calculation unit 73. For example, in the case of Q learning function updating unit 74, action value represented by the formula (1) function Q (s t, a t) and is used as a function for determining the next decision value. Function update unit 74, updated action-value function Q (s t, a t) to calculate the behavior 83 using. The function update unit 74 sends the calculated action 83 to the manual pass / fail determination unit 412Q.
  • the manual availability determination unit 412Q determines whether or not the robot 60 can be manually operated by using the action 83 calculated by the machine learning device 80, that is, the determination value. When the operating area becomes larger than the determination value (when the reward is small), the manual availability determination unit 412Q displays an alarm on the display unit 4 and stops the manual operation of the robot 60.
  • the machine learning device 80 may be arranged outside the control calculation unit 2Q. Further, in the fifth embodiment, the case of machine learning using reinforcement learning has been described, but machine learning is executed according to other known methods such as neural networks, genetic programming, functional logic programming, and support vector machines. You may.
  • the state information may be a history of the state.
  • the error determination item may be a history of information detected by the sensor.
  • the value obtained by integrating the information over time is the state information.
  • the machine learning device 80 may be arranged in the numerical control devices 1Y, 1Z, 1P.
  • the machine learning device 80 learns the determination value used for determining whether or not the robot 60 can be manually operated based on an appropriate state
  • the numerical control device 1Q is the robot 60. Whether or not manual operation is possible can be appropriately determined.
  • the contents described in the first to fifth embodiments may be combined.
  • the retrograde switch 54, the reverse direction conversion unit 414, the manual operation storage area 348, and the transmission interval storage area 349 described in the third embodiment may be arranged in the numerical control device 1Q.
  • the override switch 56 and the override control unit 415 described in the fourth embodiment may be arranged in the numerical control device 1Q.
  • control calculation units 2X to 2Z, 2P, 2Q included in the numerical control devices 1X to 1Z, 1P, 1Q will be described. Since the control calculation units 2X to 2Z, 2P, and 2Q have the same hardware configuration, the hardware configuration of the control calculation unit 2X will be described here.
  • FIG. 17 is a diagram showing 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, the memory 302, and the interface circuit 303 shown in FIG.
  • the processor 301, the memory 302, and the interface circuit 303 can send and receive data to and from each other by the bus 310.
  • processor 301 is a CPU (Central Processing Unit, central processing unit, processing unit, arithmetic unit, microprocessor, microcomputer, processor, DSP (Digital Signal Processor)) or system LSI (Large Scale Integration).
  • memory 302 is a RAM (Random Access Memory) or a ROM (Read Only Memory).
  • the storage unit 34X is realized by the memory 302.
  • a part of the functions of the input control unit 32, a part of the screen processing unit 31, a part of the communication control unit 44, and a part of the axis data output unit 40 are realized by the interface circuit 303.
  • 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 the 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 and non-transitory recording medium containing a plurality of instructions for performing data processing, which can be executed by a computer. ..
  • the program executed by the processor 301 causes the 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 realized by dedicated hardware and partly realized by software or firmware.
  • the configuration shown in the above-described embodiment shows an example of the content of the present invention, can be combined with another known technique, and is one of the configurations without departing from the gist of the present invention. It is also possible to omit or change the part.

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

被加工物の加工を行う工作機械(70)と被加工物の搬送を行うロボット(60)とを制御する制御システムにおいて用いられる数値制御装置(1X)が、ロボット(60)への手動操作を受け付ける入力操作部(3X)と、NCプログラムを用いて工作機械(70)を制御するとともに、手動操作に基づいてロボット(60)を制御する制御演算部(2X)を有し、制御演算部(2X)は、制御システムの状態に基づいて、ロボット(60)の手動操作の可否を判断する手動可否判断部(412)と、手動可否判断部(412)によってロボット(60)の手動操作が許可されている場合に手動操作が行われると、手動操作に基づいて、ロボット(60)の移動を制御するロボットコントローラ(50)への第1の移動指令を生成してロボットコントローラ(50)に送信する移動データ送信部(413)と、を備える。

Description

数値制御装置および数値制御方法
 本発明は、ロボットおよび工作機械を制御する数値制御装置および数値制御方法に関する。
 数値制御装置の1つに、被加工物の加工を行う工作機械の制御と、被加工物の搬送を行うロボットの制御とを並行して実行する装置がある。この数値制御装置の中には、工作機械またはロボットを、ユーザが手動ハンドルを用いた操作で制御可能な装置がある。
 特許文献1に記載の数値制御装置は、加工プログラムに従った制御から手動操作に切り替えるための手動スイッチを備えており、手動スイッチがオンにされると、ユーザ操作による手動ハンドルの回転によって速度信号を発生させ、速度信号に従って工作機械が備える軸駆動モータの速度を制御し、予め決められている移動経路に沿って機械を移動させている。
特開平2-212905号公報
 しかしながら、上記特許文献1の技術では、手動操作を行ってもよい状態であるか否かが不明なまま手動操作が行われる。このため、例えば手動操作に応じた方向にロボットを移動させるロボットに上記特許文献1の技術を適用すると、手動操作によって移動されるロボットと、加工プログラムに従って駆動制御される工作機械とが干渉する場合があるという問題があった。
 本発明は、上記に鑑みてなされたものであって、ロボットと工作機械との干渉を防止しつつロボットへの手動操作を行うことができる数値制御装置を得ることを目的とする。
 上述した課題を解決し、目的を達成するために、本発明は、被加工物の加工を行う工作機械と被加工物の搬送を行うロボットとを制御する制御システムにおいて用いられる数値制御装置であって、ロボットへの手動操作を受け付ける入力操作部と、数値制御プログラムを用いて工作機械を制御するとともに、手動操作に基づいてロボットを制御する制御演算部を有し、制御演算部は、制御システムの状態に基づいて、ロボットの手動操作の可否を判断する手動可否判断部と、手動可否判断部によってロボットの手動操作が許可されている場合に手動操作が行われると、手動操作に基づいて、ロボットの移動を制御する制御装置への第1の移動指令を生成して制御装置に送信する移動データ送信部と、を備える。
 本発明にかかる数値制御装置は、ロボットと工作機械との干渉を防止しつつロボットへの手動操作を行うことができるという効果を奏する。
実施の形態1にかかる数値制御装置を備えた制御システムの構成を示す図 実施の形態1にかかる数値制御装置の構成例を示す図 実施の形態1にかかる制御システムが備える2つの手動ハンドルの構成例を示す図 実施の形態1にかかる数値制御装置による、ロボットの手動可否の判定処理の手順を示すフローチャート 実施の形態1にかかる数値制御装置が表示部に表示させるアラームを説明するための図 実施の形態1にかかる数値制御装置が表示部に表示させる注意メッセージを説明するための図 実施の形態2にかかる数値制御装置の構成例を示す図 実施の形態2にかかる数値制御装置によるロボット座標系への変換処理の処理手順を示すフローチャート 実施の形態3にかかる数値制御装置の構成例を示す図 実施の形態3にかかる数値制御装置が表示部に表示させる、逆行操作を受け付ける画面を説明するための図 実施の形態3にかかる数値制御装置がロボットに実行させる逆行の経路を説明するための図 実施の形態3にかかる数値制御装置がロボットの動作を逆行させる処理の処理手順を示すフローチャート 実施の形態4にかかる数値制御装置の構成例を示す図 実施の形態4にかかる数値制御装置が、手動操作されるロボットの速度を特定の割合で低下させる処理の処手順を示すフローチャート 実施の形態5にかかる数値制御装置の構成例を示す図 実施の形態5にかかる数値制御装置が備える機械学習装置の構成例を示す図 実施の形態1にかかる制御演算部のハードウェア構成例を示す図
 以下に、本発明の実施の形態にかかる数値制御装置および数値制御方法を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
実施の形態1.
 図1は、実施の形態1にかかる数値制御装置を備えた制御システムの構成を示す図である。制御システム100は、Gコードプログラムといった数値制御(NC:Numerical Control)プログラムを用いて工作機械70を制御し、ユーザによる手動操作によってロボット60を制御するシステムである。
 制御システム100は、工作機械70と、数値制御装置1Xと、ロボットコントローラ50と、ロボット60とを備えている。数値制御装置1Xは、例えば、工作機械70に配置されている。実施の形態1の数値制御装置1Xは、制御システム100において、ロボット60への手動操作を許可してもよい状態であるか否かを判定し、手動操作を許可してもよい状態である場合に、ユーザからのロボット60への手動操作を受け付ける。
 数値制御装置1Xは、工作機械70に対して工具を使った加工ワーク(被加工物)を加工するための指令を送る装置である。数値制御装置1Xは、CNC(コンピュータ数値制御:Computer Numerical Control)を行う装置であり、入力操作部3Xに接続されている。
 数値制御装置1Xは、工作機械70、入力操作部3X、およびロボットコントローラ50に接続されている。また、ロボットコントローラ50は、入力操作部3Xおよびロボット60に接続されている。数値制御装置1Xとロボットコントローラ50とは、例えば、LAN(Local Area Network)を介して接続されている。
 制御システム100では、数値制御装置1Xが、工作機械70および入力操作部3Xとの間で通信を実行し、ロボットコントローラ50が、数値制御装置1X、入力操作部3X、およびロボット60との間で通信を実行する。このように、制御システム100では、ロボットコントローラ50を介して数値制御装置1Xと、ロボット60とが接続されており、数値制御装置1Xは、ロボットコントローラ50を介してロボット60を制御する。また、入力操作部3Xは、ロボットコントローラ50を介してロボット60を操作する。以下の説明では、数値制御装置1Xによるロボット60の制御を説明する際に、ロボットコントローラ50が介されていることを省略する場合がある。
 入力操作部3Xは、ユーザが数値制御装置1Xおよびロボットコントローラ50を操作するための装置である。入力操作部3Xは、入出力ユニット51、非常停止ボタン52、および操作盤53を備えている。入力操作部3Xは、ユーザ操作に対応する信号を数値制御装置1Xに送ることによって、数値制御装置1Xを操作する。
 操作盤53は、ユーザからの操作を受け付けて、操作に対応する信号を入出力ユニット51に送る。非常停止ボタン52は、ユーザによって押下されると、ロボットコントローラ50を停止させるための信号をロボットコントローラ50に送るとともに、工作機械70を停止させるための信号を入出力ユニット51に送る。入出力ユニット51は、操作盤53から送られてくる信号および非常停止ボタン52から送られてくる信号を、数値制御装置1Xに送る。非常停止ボタン52および入出力ユニット51は、操作盤53に配置されてもよい。
 ロボットコントローラ50は、数値制御装置1Xから送られてくる指示に従ってロボット60を制御する。また、ロボットコントローラ50は、非常停止ボタン52から信号が送られてくると、ロボット60の動作を停止させる。
 ロボット60は、ロボットハンド61によって加工対象物である加工ワークを把持し、把持した加工ワークを搬送する。ロボット60は、加工前の加工ワークを工作機械70にロードし、加工後の加工ワークを工作機械70からアンロードする。ロボット60の例は、マニピュレータである。なお、ロボット60は、加工ワークの搬送以外の処理を実行してもよい。
 数値制御装置1Xは、後述する制御演算部2Xと、表示部4と、PLC操作部5とを含んで構成されている。数値制御装置1Xは、NCプログラムを用いて、工作機械70およびロボット60を制御する。また、数値制御装置1Xは、入力操作部3Xから信号を受信すると、受信した信号に対応する処理を工作機械70に実行させる。また、数値制御装置1Xは、工作機械70の状態、ロボット60の状態などを表示する。
 工作機械70は、NC工作機械であり、2軸以上の駆動軸によって工具と加工ワークとを相対的に移動させながら、工具で加工ワークを加工する。工作機械70の座標系である第1の座標系とロボット60の座標系である第2の座標系とは異なる座標系である。工作機械70は、直交座標系で制御され、例えば3軸方向に工具または加工ワークを移動させる。ロボット60は、回転軸を備えており、例えば、4軸以上の方向に駆動する。ロボット60は、複数の関節と複数のアームを備えており、1つの関節が1つのアームを1軸以上の方向に移動させる。
 図2は、実施の形態1にかかる数値制御装置の構成例を示す図である。数値制御装置1Xは、制御演算部2Xと、表示部4と、PLC(プログラマブルロジックコントローラ:Programmable Logic Controller)36を操作するための機械操作盤などのPLC操作部5とを有する。図2には、数値制御装置1Xとともに、入力操作部3X、工作機械70、ロボットコントローラ50、およびロボット60が示されている。
 工作機械70は、工具および加工ワークを駆動する駆動部90を備えている。駆動部90の例は、加工ワークを回転させながら、工具を駆動する駆動機構である。工具の駆動方向は、例えば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に対するコマンドなどの入力、ユーザによるロボット60への手動操作、またはNCプログラムもしくはパラメータなどを受付けて制御演算部2Xに入力する。
 入力操作部3Xは、手動ハンドル55と、ジョグボタン57と、軸選択スイッチ59とを備えている。軸選択スイッチ59は、ロボット60に対して手動操作する軸を選択するスイッチである。軸選択スイッチ59の例は、工作機械70における座標系で、X軸を指定するスイッチ、Y軸を指定するスイッチ、Z軸を指定するスイッチ、A軸を指定するスイッチ、B軸を指定するスイッチ、C軸を指定するスイッチである。軸選択スイッチ59は、押下またはタッチされた軸が何れの軸であるかを示す軸情報を、制御演算部2Xに送る。この軸情報は、記憶部34Xを介してロボット手動操作部41Xに送られる。
 手動ハンドル55は、ロボット60の軸方向の移動量を操作するためのハンドルである。手動ハンドル55は、操作に対応する移動量を制御演算部2Xに送る。この移動量は、記憶部34Xを介してロボット手動操作部41Xに送られる。
 ジョグボタン57は、ロボット60の軸方向の移動量をジョグ操作するためのボタンである。ジョグボタン57は、操作に対応する移動量を制御演算部2Xに送る。この移動量は、記憶部34Xを介してロボット手動操作部41Xに送られる。
 表示部4は、液晶表示装置などの表示手段によって構成され、制御演算部2Xによって処理された情報を表示画面に表示する。表示部4の例は、液晶タッチパネルである。この場合、入力操作部3Xの一部の機能が、表示部4に配置されている。
 制御部である制御演算部2Xは、工作機械70の座標系で規定されたNCプログラムを用いて工作機械70を制御する。制御演算部2Xは、入力制御部32と、データ設定部33と、記憶部34Xと、画面処理部31と、解析処理部37と、制御信号処理部35と、PLC36と、補間処理部38と、状態判定部45と、加減速処理部39と、軸データ出力部40と、ロボット手動操作部41Xと、通信制御部44とを有する。なお、PLC36は、制御演算部2Xの外部に配置されてもよい。
 記憶部34Xは、パラメータ記憶エリア341、NCプログラム記憶エリア343、表示データ記憶エリア344、および共有エリア345を有している。パラメータ記憶エリア341内には、制御演算部2Xの処理で使用されるパラメータ等が格納される。具体的には、パラメータ記憶エリア341内には、数値制御装置1Xを動作させるための制御パラメータ、サーボパラメータおよび工具データが格納される。NCプログラム記憶エリア343内には、加工ワークの加工に用いられるNCプログラムが格納される。
 表示データ記憶エリア344内には、表示部4で表示される画面表示データが格納される。画面表示データは、表示部4に情報を表示するためのデータである。また、記憶部34Xには、一時的に使用されるデータを記憶する共有エリア345が設けられている。
 画面処理部31は、表示データ記憶エリア344に格納された画面表示データを表示部4に表示させる制御を行う。入力制御部32は、入力操作部3Xから入力される情報を受付ける。データ設定部33は、入力制御部32で受付けられた情報を記憶部34Xに記憶させる。すなわち、入力操作部3Xが受付けた入力情報は、入力制御部32およびデータ設定部33を介して記憶部34Xに書き込まれる。
 制御信号処理部35は、PLC36に接続されており、PLC36から、工作機械70の機械を動作させるリレーなどの信号情報を受付ける。制御信号処理部35は、受付けた信号情報を、記憶部34Xの共有エリア345に書き込む。これらの信号情報は、加工運転時に補間処理部38が参照する。また、制御信号処理部35は、解析処理部37によって共有エリア345に補助指令が出力されると、この補助指令を共有エリア345から読み出してPLC36に送る。補助指令は、数値制御軸である駆動軸を動作させる指令以外の指令である。補助指令の例は、MコードまたはTコードである。
 PLC36は、PLC36が実行する機械動作が記述されたラダープログラムを格納している。PLC36は、補助指令であるTコードまたはMコードを受付けると、ラダープログラムに従って補助指令に対応する処理を工作機械70に実行する。PLC36は、補助指令に対応する処理を実行した後、NCプログラムの次のブロックを実行させるために、機械制御が完了したことを示す完了信号を制御信号処理部35に送る。
 制御演算部2Xでは、制御信号処理部35と、解析処理部37と、補間処理部38と、ロボット手動操作部41Xとが記憶部34Xを介して接続されており、記憶部34Xを介して情報の書き込み、および読み出しを行う。以下の説明では、制御信号処理部35と、解析処理部37と、補間処理部38と、ロボット手動操作部41Xとの間の情報の書き込み、および読み出しを説明する際に記憶部34Xが介されていることを省略する場合がある。
 NCプログラムの選択は、ユーザが入力操作部3XでNCプログラム番号を入力することによって行われる。このNCプログラム番号は、入力制御部32およびデータ設定部33を介して共有エリア345に書き込まれる。機械操作盤等のサイクルスタートをトリガとして、解析処理部37は、選択されたNCプログラム番号を共有エリア345から読み出すと、選択されたNCプログラム番号のNCプログラムをNCプログラム記憶エリア343内から読み出して、NCプログラムの各ブロック(各行)に対して解析処理を行う。解析処理部37は、例えば、Gコード(軸移動等に関する指令)、Tコード(工具交換指令など)、Sコード(主軸モータ回転数指令)、およびMコード(機械動作指令)を解析する。
 解析処理部37は、解析した行にMコードまたはTコードが含まれている場合には、解析結果を共有エリア345および制御信号処理部35を介してPLC36に送る。また、解析処理部37は、解析した行にMコードが含まれている場合には、Mコードを、制御信号処理部35を介してPLC36に送る。PLC36はMコードに対応する機械制御を実行する。実行が完了した場合、制御信号処理部35を介してMコードの完了を示す結果が記憶部34Xに書き込まれる。補間処理部38は記憶部34Xに書き込まれた実行結果を参照する。
 また、解析処理部37は、工作機械70へのGコードが含まれている場合には、共有エリア345を介して解析結果を補間処理部38に送る。具体的には、解析処理部37は、Gコードに対応する移動条件を生成して補間処理部38に送る。また、解析処理部37は、Sコードで指定された主軸回転数を補間処理部38に送る。主軸回転数は、単位時間あたりの主軸の回転の回数である。移動条件は、加工位置を移動させていくための工具送りの条件であり、刃物台を移動させる速度、刃物台を移動させる位置などで示される。例えば、工具の工具送りは、工具をX軸方向(+X方向)およびZ軸方向(+Z方向)に進ませる。
 補間処理部38は、解析処理部37による解析結果のうち工作機械70への指令を用いて工作機械70を制御するためのデータを生成し、加減速処理部39に送る。加減速処理部39は、工作機械70を制御するためのデータを、軸データ出力部40を介して工作機械70に出力する。
 状態判定部45は、制御信号処理部35から工作機械70の状態を示す状態データを取得し、状態データに基づいて、軸データ出力部40が工作機械70に出力するデータを修正する。例えば、工作機械70のドアが開いている場合、ユーザが工作機械70に侵入する可能性があるので、軸データ出力部40が工作機械70に出力するデータを、サーボモータ901,902、および主軸モータ911の駆動を停止させるデータに修正する。
 通信制御部44は、ロボット手動操作部41Xおよびロボットコントローラ50に接続されている。通信制御部44は、ロボット手動操作部41Xから送られてきたデータをロボットコントローラ50に送信し、ロボットコントローラ50から送られてきたデータをロボット手動操作部41Xに送信する。通信制御部44が、ロボットコントローラ50に送信するデータの例は、手動操作(ジョグボタン57または手動ハンドル55への操作)によって発生した軸の移動量である。通信制御部44が、ロボット手動操作部41Xに送信するデータの例は、ロボット60の状態を示す情報である。以下の説明では、ロボット手動操作部41Xとロボットコントローラ50との間のデータの送受信を説明する際に通信制御部44が介されていることを省略する場合がある。
 ロボット手動操作部41Xは、手動可否判断部412および移動データ送信部413を備えている。移動データ送信部413は、軸選択スイッチ59で選択された軸情報と、ジョグボタン57または手動ハンドル55から送られてくる移動量に基づいて移動指令(第1の移動指令)を生成し、移動指令をロボットコントローラ50に送る。これにより、数値制御装置1Xは、ロボットコントローラ50を介して、ロボット60を操作することができる。
 手動可否判断部412は、制御システム100の状態(以下、システム状態という)に基づいて、ロボット60の手動操作の可否を判断する。すなわち、手動可否判断部412は、ロボット60、数値制御装置1X、および工作機械70の少なくとも1つの状態に基づいて、ロボット60の手動操作の可否を判断する。可否の判断には、数値制御装置1Xが持つ種々のデータが参照される。
 手動可否判断部412は、例えば通信制御部44からロボットコントローラ50と数値制御装置1Xとの間の通信状態を取得し、ロボット60と数値制御装置1Xとの間の通信が未接続の場合は、手動操作不可と判断する。
 ロボット60の状態の例は、ロボット60を構成する部品の温度、ロボットコントローラ50との間の通信状態、非常停止中であるか否か、ロボット60の周辺の侵入禁止領域にユーザが侵入しているか否か等である。
 数値制御装置1Xの状態の例は、ロボットコントローラ50との間の通信状態である。手動可否判断部412は、ロボットコントローラ50との間の通信状態が未接続状態である場合、何らかの異常が発生している場合があるので、ロボットコントローラ50との間の通信を接続せず手動操作不可と判断する。
 また、手動可否判断部412は、状態判定部45から、工作機械70の状態を示す状態データを取得し、状態データに基づいて手動操作の可否を判断してもよい。工作機械70の状態の例は、工作機械70を囲っている筐体のドアの開閉状態である。手動可否判断部412は、工作機械70のドアが開いている場合、ユーザが工作機械70に侵入する可能性があるので、手動操作不可と判断する。また、手動可否判断部412は、工作機械70のドアが閉じている場合には、手動操作可能と判断するが、表示部4に、ドアが閉じていることを示す注意メッセージを表示する。これにより、オペレータは、工作機械70の内部にロボット60の手動教示作業をする際に、工作機械70のドアにロボット60が干渉することを回避することが可能になる。
 また、手動可否判断部412は、制御システム100内の構成要素の状態に基づいて、ロボット60の手動操作の可否を判断してもよい。例えば、手動可否判断部412は、制御システム100に配置されている温度センサ、接触センサといった種々のセンサで検出された検出値に基づいて、ロボット60の手動操作の可否を判断してもよい。この場合、制御システム100に配置されている何れかのセンサが異常な検出値(判定値よりも高い検出値)を示した場合に、何らかの異常が発生している場合があるので、手動可否判断部412は、手動操作不可と判断する。
 また、手動可否判断部412は、通信制御部44からロボット60側のアラームを取得し、取得したアラームに基づいて手動操作の可否を判断してもよい。また、手動可否判断部412は、制御信号処理部35からドアの開閉信号を取得し、ドアの開閉信号に基づいて手動操作の可否を判断してもよい。また、手動可否判断部412は、工作機械70が自動運転中であるか否かを、制御信号処理部35が入出力しているPLC36との間(ラダーインタフェース)の信号に基づいて判断し、自動運転中である場合には、手動操作不可と判断してもよい。例えば、手動可否判断部412は、ドアが開いている状態で、かつ自動運転していない場合には手動操作可と判断してもよい。
 手動可否判断部412は、手動操作不可と判断した場合、画面処理部31によって表示部4にアラームを表示させ、ユーザに手動操作不可の状態であることを通知してもよい。また、手動可否判断部412は、手動操作不可と判断した場合、ロボット60に移動指令を送信しない。これにより、ロボット60は、手動操作されても、手動操作に応じた動作を行わないので、手動操作が不可能な状態であることをユーザに視覚的に通知することが可能になる。
 ここで、手動ハンドル55について説明する。手動ハンドル55は、工作機械70の軸方向の移動量を操作する際に用いられてもよい。すなわち、ユーザは、1つの手動ハンドル55で、ロボット60の操作および工作機械70の操作を行ってもよい。この場合、操作盤53には、手動ハンドル55による操作対象を切り替えるための切替スイッチ(図示せず)を配置しておく。
 制御信号処理部35は、操作盤53に対し切替スイッチの状態を確認し、手動ハンドル55が、工作機械70を制御する状態にあるか、ロボット60を制御する状態にあるかを判定する。制御信号処理部35は、切替スイッチの状態に基づいて、手動ハンドル55に対するハンドル操作を、ロボット60へのハンドル操作として扱うか、工作機械70へのハンドル操作として扱うかを切替える。
 制御信号処理部35は、ハンドル操作をロボット60へのハンドル操作として扱う場合には、ハンドル操作に対応するデータを、ロボット60を操作するためのデータとして共有エリア345に格納する。ロボット60を操作するためのデータは、手動ハンドル55がハンドル操作に対して出力するハンドルパルスジェネレータのデータであり、ロボット60の特定の箇所を移動させる移動量に対応している。
 制御信号処理部35は、ハンドル操作を工作機械70へのハンドル操作として扱う場合には、ハンドル操作に対応するデータを、工作機械70を操作するためのデータとして共有エリア345に格納する。工作機械70を操作するためのデータは、手動ハンドル55がハンドル操作に対して出力するハンドルパルスジェネレータのデータであり、工作機械70の特定の箇所を移動させる移動量に対応している。
 また、操作盤53には、手動ハンドル55の代わりにロボット60を操作するための手動ハンドルと、工作機械70を操作するための手動ハンドルとの2つの手動ハンドルを配置しておいてもよい。
 図3は、実施の形態1にかかる制御システムが備える2つの手動ハンドルの構成例を示す図である。図3では、数値制御装置1Xと、入出力ユニット51と、ロボット60を操作するための手動ハンドル55Aと、工作機械70を操作するための手動ハンドル55Bとを図示している。
 手動ハンドル55A,55Bは、ともに入出力ユニット51に接続されている。ユーザは、ロボット60を操作する際には、手動ハンドル55Aを操作する。これにより、手動ハンドル55Aは、操作に対応する、ロボット60の移動量を数値制御装置1Xに送る。また、ユーザは、工作機械70を操作する際には、手動ハンドル55Bを操作する。これにより、手動ハンドル55Bは、操作に対応する、工作機械70の移動量を数値制御装置1Xに送る。
 図4は、実施の形態1にかかる数値制御装置による、ロボットの手動可否の判定処理の手順を示すフローチャートである。数値制御装置1Xは、動作を開始すると、手動可否判断部412が、システム状態、すなわちロボット60、数値制御装置1X、および工作機械70の少なくとも1つの状態に基づいて、ロボット60の手動操作が可能か否かを判断する(ステップS1)。
 手動可否判断部412は、ロボット60の手動操作が不可能であると判断した場合(ステップS1、No)、画面処理部31にアラームを表示させる指示を送る。これにより、画面処理部31は、表示部4にアラームを表示させる(ステップS2)。
 図5は、実施の形態1にかかる数値制御装置が表示部に表示させるアラームを説明するための図である。図5では、表示部4が表示する表示画面の第1例である操作受付画面21を示している。操作受付画面21は、ユーザからのロボット60への操作を受け付ける画面である。
 操作受付画面21には、ユーザへの通知領域11が配置されている。通知領域11は、ユーザへのアラーム、メッセージ等が表示される領域である。操作受付画面21では、手動操作が不可であることを示す「ロボット未接続のため、ロボットへの操作不可」等のアラームが表示される。
 また、操作受付画面21、および後述する操作受付画面22,23は、軸選択スイッチ59およびジョグボタン57を表示する。軸選択スイッチ59の中から、ユーザが所望の軸の名称をタッチすることで、ロボット60に対して手動操作される軸が選択される。
 手動可否判断部412は、ロボット60の手動操作が可能であると判断した場合(ステップS1、Yes)、工作機械70に注意が必要であるか否かを判定する(ステップS3)。工作機械70に問題があって注意が必要な場合(ステップS3、Yes)、手動可否判断部412は、画面処理部31に注意メッセージを表示させる指示を送る。これにより、画面処理部31は、表示部4に注意メッセージを表示させる(ステップS4)。この後、移動データ送信部413は、後述するステップS5の処理を実行する。
 図6は、実施の形態1にかかる数値制御装置が表示部に表示させる注意メッセージを説明するための図である。図6では、表示部4が表示する表示画面の第2例である操作受付画面22を示している。操作受付画面22は、ユーザからのロボット60への操作を受け付ける画面である。
 操作受付画面22では、工作機械70が注意の必要な状態であることを示す「ドアクローズ中 ロボット手動操作に注意」等の注意メッセージが表示される。このように、数値制御装置1Xは、手動操作が可能な場合であっても、注意が必要な場合には、注意メッセージを表示させる。この後、移動データ送信部413は、注意メッセージが表示されている状態で、ジョグボタン57または手動ハンドル55から送られてくる移動量を受け付けると、移動量に基づいて移動指令を生成し、移動指令を、ロボットコントローラ50を介してロボット60に送信する(ステップS5)。
 一方、工作機械70に注意が不要である場合(ステップS3、No)、移動データ送信部413は、ジョグボタン57または手動ハンドル55から送られてくる移動量を受け付ける。移動データ送信部413は、ジョグボタン57または手動ハンドル55から送られてくる移動量を受け付けると、移動量に基づいて移動指令を生成し、移動指令を、ロボットコントローラ50を介してロボット60に送信する(ステップS5)。なお、後述する実施の形態2以降の説明では、上述したステップS1からS5の処理である、ロボット60の手動可否の判定処理を、ステップS10の処理という場合がある。
 このように実施の形態1によれば、数値制御装置1Xが、工作機械70、ロボット60、および数値制御装置1Xの少なくとも1つの状態に基づいて、ロボット60の手動操作の可否を判断している。したがって、ロボット60と工作機械70との干渉を防止しつつロボット60への手動操作を行うことが可能となる。
実施の形態2.
 つぎに、図7および図8を用いてこの発明の実施の形態2について説明する。実施の形態2では、工作機械70の座標系を用いてロボット60に手動操作が行われた場合に、工作機械70の座標系をロボット60の座標系に変換したうえで、ロボット60に指令を送る。
 図7は、実施の形態2にかかる数値制御装置の構成例を示す図である。図7の各構成要素のうち実施の形態1の数値制御装置1Xと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
 数値制御装置1Yは、制御演算部2Yと、表示部4と、PLC操作部5とを有する。図7には、数値制御装置1Yとともに、入力操作部3X、工作機械70、ロボットコントローラ50、およびロボット60が示されている。実施の形態2では、入力操作部3Xが、工作機械70の座標系で手動操作を受け付け、制御演算部2Yが、工作機械70の座標系の指令を、ロボット60の座標系の指令に変換する。
 制御演算部2Yは、制御演算部2Xと比較して、記憶部34Xの代わりに記憶部34Yを備え、ロボット手動操作部41Xの代わりにロボット手動操作部41Yを備えている。
 記憶部34Yは、記憶部34Xが有するエリアに加えて、特定距離記憶エリア346およびオフセット座標記憶エリア347を備えている。オフセット座標記憶エリア347は、工作機械70の座標系(以下、NC座標系という)とロボット60の座標系(以下、ロボット座標系という)との間の関係を示すオフセット座標を記憶するエリアである。オフセット座標は、入力操作部3Xから入力制御部32に送られ、データ設定部33を介して記憶部34Yのオフセット座標記憶エリア347に格納される。オフセット座標は、NC座標系で指令された移動量を、ロボット座標系で用いる移動量に変換する際に用いられる。すなわち、ロボット60が手動操作される際に、NC座標系でユーザが操作を実行した場合、制御演算部2Yは、オフセット座標を用いて、NC座標系をロボット座標系に変換する。
 特定距離記憶エリア346は、特定距離を記憶するエリアである。特定距離は、工作機械70の機械原点からの距離を示している。工作機械70の機械原点から特定距離よりも内側の範囲が、ロボット60が工作機械70に干渉する可能性が判定値よりも高い範囲である。
 ロボット手動操作部41Yは、ロボット手動操作部41Xが備える構成要素に加えて、座標変換部411を備えている。座標変換部411は、軸選択スイッチ59で選択された軸と、ジョグボタン57または手動ハンドル55から入力された移動量と、オフセット座標とを、記憶部34Yから取得する。座標変換部411は、軸選択スイッチ59で選択された軸と、ジョグボタン57または手動ハンドル55に入力された移動量とを、オフセット座標に基づいて、ロボット座標系での軸(移動軸)および移動量に変換する。すなわち、座標変換部411は、NC座標系の軸および移動量を、オフセット座標に基づいて、ロボット座標系の軸および移動量に変換する。この変換後の軸および移動量を、移動データ送信部413が、ロボットコントローラ50に送ることで、ロボット60をNC座標系で手動操作することが可能になる。オフセット座標が設定されていない場合、ユーザに選択された軸およびユーザに入力された移動量は、ロボット座標系の軸および移動量として移動データ送信部413がロボットコントローラ50に送る。
 図8は、実施の形態2にかかる数値制御装置によるロボット座標系への変換処理の処理手順を示すフローチャートである。ここでは、ロボット60への手動操作が行われる場合の、数値制御装置1Yによる座標変換処理について説明する。数値制御装置1Yは、動作を開始すると、座標変換部411が、軸選択スイッチ59で選択された軸(選択軸)の情報を、記憶部34Yから取得する(ステップS21)。また、座標変換部411は、ジョグボタン57または手動ハンドル55に入力された移動量を記憶部34Yから取得する(ステップS22)。なお、座標変換部411は、ステップS21の処理とステップS22の処理とを、何れの順番で実行してもよい。
 座標変換部411は、オフセット座標記憶エリア347にオフセット座標が格納されているか否かを判定する(ステップS23)。オフセット座標記憶エリア347にオフセット座標がある場合(ステップS23、Yes)、座標変換部411は、NC座標系をロボット座標系に変換する(ステップS24)。すなわち、座標変換部411は、取得したNC座標系の軸および移動量を、ロボット座標系の軸および移動量に変換する。この後、手動可否判断部412は、ロボット60の手動可否の判定処理を実行する(ステップS10)。すなわち、手動可否判断部412は、図4で説明したステップS1からS5の処理を実行する。
 オフセット座標記憶エリア347にオフセット座標がない場合(ステップS23、No)、座標変換部411は、座標変換を行うことなく、ロボット60の手動可否の判定処理を実行する(ステップS10)。すなわち、移動データ送信部413は、オフセット座標が設定されていない場合にロボット60の手動操作が可能であれば、記憶部34Yから取得した軸および移動量を、ロボット座標系の軸および移動量としてロボットコントローラ50に送る。なお、座標変換部411は、ステップS23の処理の後に、ステップS21,S22の処理を実行してもよい。なお、後述する実施の形態3以降の説明では、上述したステップS23,S24の処理である、ロボット座標系への変換処理を、ステップS30の処理という場合がある。
 数値制御装置1Yの手動可否判断部412は、ステップS10の処理を実行する際に、特定距離記憶エリア346から特定距離を取得する。手動可否判断部412は、ロボットコントローラ50からロボット60の位置(座標)を取得し、座標変換部411にて座標を逆変換することでNC座標系でのロボット60の座標を取得する。ここでの逆変換は、ロボット座標系の座標をNC座標系に変換する処理である。手動可否判断部412は、工作機械70の機械原点から特定距離の範囲内である三次元領域内は、ロボット60が工作機械70に干渉する可能性が判定値よりも高い特定領域に設定しておく。手動可否判断部412は、ロボット60のNC座標系における座標が特定領域に入った場合、ロボット60の手動操作を不可にする。手動可否判断部412は、ドアが閉まっている状態で、かつ工作機械70の特定領域にロボット60を入れる指令があった場合は、ドアが閉まっていてロボット60が加工エリアに入れないので、手動操作を不可にする。
 また、手動可否判断部412は、ロボット60のNC座標系における座標が特定領域に入った場合、画面処理部31によって表示部4にアラームを表示させ、ユーザに手動操作不可の状態であることを通知してもよい。
 このように実施の形態2によれば、工作機械70の座標系を用いてロボット60に手動操作が行われた場合に、数値制御装置1Yが、工作機械70の座標系をロボット60の座標系に変換したうえで、ロボット60に指令を送るので、ユーザは、容易にロボット60を手動操作することが可能となる。
実施の形態3.
 つぎに、図9から図12を用いてこの発明の実施の形態3について説明する。実施の形態3では、手動操作によるロボット60の動作を記憶しておき、逆行の指示があった場合には、ロボット60の動作を逆方向に戻す。
 図9は、実施の形態3にかかる数値制御装置の構成例を示す図である。図9の各構成要素のうち実施の形態1,2の数値制御装置1X,1Yと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
 数値制御装置1Zは、制御演算部2Zと、表示部4と、PLC操作部5とを有する。図9には、数値制御装置1Zとともに、入力操作部3Z、工作機械70、ロボットコントローラ50、およびロボット60が示されている。
 入力操作部3Zは、手動ハンドル55と、ジョグボタン57と、軸選択スイッチ59と、逆行スイッチ54とを備えている。逆行スイッチ54は、ロボット60の動作を逆方向に戻すためのスイッチである。逆行スイッチ54は、押下されている間、逆行スイッチ54が押されていることを示す情報である逆行情報を、制御演算部2Zに送り続ける。この逆行情報は、記憶部34Zを介してロボット手動操作部41Zに送られる。
 制御演算部2Zは、制御演算部2Yと比較して、記憶部34Yの代わりに記憶部34Zを備え、ロボット手動操作部41Yの代わりにロボット手動操作部41Zを備えている。
 記憶部34Zは、記憶部34Yが有するエリアに加えて、手動動作記憶エリア348および送信間隔記憶エリア349を備えている。手動動作記憶エリア348は、ロボット60の手動操作が行われている間に、ロボットコントローラ50に送られている移動指令(以下、手動時指令という)を記憶するエリアである。第1の移動指令である手動時指令は、移動データ送信部413が、移動データに基づいて生成し、手動動作記憶エリア348に格納していく。ロボットコントローラ50に送られる移動指令が、ロボット座標系に変換されている場合、手動時指令は、ロボット座標系で示される。
 送信間隔記憶エリア349は、手動時指令を逆方向の移動指令に変換してロボットコントローラ50に送信する際の送信周期(逆行送信間隔)を記憶しておくエリアである。
 ロボット手動操作部41Zは、ロボット手動操作部41Yが備える構成要素に加えて、変換部である逆方向変換部414を備えている。逆方向変換部414は、逆方向への移動指令があった場合に、手動動作記憶エリア348内の手動時指令を逆方向への移動指令に変換する。
 逆方向変換部414は、逆行情報を受け付けている間に、ジョグボタン57または手動ハンドル55に入力された移動量を受け付けると、移動量を受け付けている間、手動時指令に沿ってロボット60を逆行させる移動指令(第2の移動指令)を生成する。逆方向変換部414は、逆行情報を受け付けている間に0よりも大きな移動量を受け付けると、移動量の大きさに関わらず、手動時指令に沿ってロボット60を逆行させる移動指令を生成する。逆方向変換部414が生成した移動指令は、移動データ送信部413からロボットコントローラ50に送られる。
 なお、逆行スイッチ54、逆方向変換部414、手動動作記憶エリア348、および送信間隔記憶エリア349を、数値制御装置1Xに配置してもよい。
 図10は、実施の形態3にかかる数値制御装置が表示部に表示させる、逆行操作を受け付ける画面を説明するための図である。図10では、表示部4が表示する表示画面の第3例である操作受付画面23を示している。操作受付画面23は、ユーザからロボット60への操作を受け付ける画面である。
 操作受付画面23は、逆行スイッチ54を表示する。ユーザが逆行スイッチ54を押下またはタッチすると、逆行情報が制御演算部2Zに送られる。
 図11は、実施の形態3にかかる数値制御装置がロボットに実行させる逆行の経路を説明するための図である。逆行スイッチ54が押されることなく、ジョグボタン57または手動ハンドル55が操作されると、ロボット60は、正方向に移動する。図11では、ロボットハンド61が上方向に移動し(st1)、右方向に移動し(st2)、左方向に移動し(st3)、下方向に移動した(st4)場合を示している。ロボット60を手動操作している間(st1~st4)、移動データ送信部413がロボットコントローラ50へ送った移動指令に対応する手動時指令が、手動動作記憶エリア348で記憶される。
 この後、逆行スイッチ54が押され、逆行スイッチ54が押されている間に、ジョグボタン57または手動ハンドル55が操作されると、ロボット60は、移動してきた経路を逆方向に移動する。すなわち、ロボット60は、正方向に移動してきた経路に沿って、経路を逆戻りする。図11では、ロボットハンド61が上方向に移動し(st5)、右方向に移動する(st6)場合を示している。st5の経路とst4の経路とは、同じ直線上であり、方向が逆である。また、st6の経路とst3の経路とは、同じ直線上であり、方向が逆である。
 逆方向変換部414は、逆行スイッチ54が押下された状態でジョグボタン57が操作されている間、周期的に手動動作記憶エリア348から手動時指令を呼び出す。そして、逆方向変換部414は、手動時指令を逆方向への移動指令に変換する。移動データ送信部413は、逆方向の移動指令をロボットコントローラ50に送信することで逆方向へのロボット60の移動を実現する。
 また、逆行スイッチ54が押下された状態で手動ハンドル55が操作される場合、逆方向変換部414は、手動ハンドル55からパルスの入力を受け付ける度に、手動時指令を逆方向への移動指令に変換する。
 なお、ジョグボタン57が押下された時に手動時指令を逆方向に変換してロボットコントローラ50に送信する周期は、予め逆行送信間隔に設定しておく。逆方向変換部414および移動データ送信部413は、逆行送信間隔に従って手動時指令の逆方向への変換と、ロボットコントローラ50への送信とを実行する。
 ユーザは、移動方向の軸を選択してからジョグボタン57または手動ハンドル55を操作することで、ロボット60を実線で示した正方向(st1~st4)に移動させることができる。ところが、ユーザは、ロボット60の位置修正のために他の物体に干渉しないように元の経路に沿ってロボット60を移動させたい場合がある。この場合、ユーザは、再度軸選択スイッチ59で動作させる軸を選びながらロボット60を操作すると、操作ミスによってロボット60が他の物体に干渉する場合がある。実施の形態3では、ユーザは、逆行スイッチ54を押下した状態でジョグボタン57または手動ハンドル55を操作すればよいので、軸の選択および移動量を考慮することなく、点線で示した逆方向(st5、st6)にロボット60を容易に移動させることができる。これにより、ロボット60を他の物体に干渉させることなく、ロボット60の位置を容易に修正することが可能になる。
 図12は、実施の形態3にかかる数値制御装置がロボットの動作を逆行させる処理の処理手順を示すフローチャートである。数値制御装置1Zは、動作を開始すると、逆方向変換部414が、逆行スイッチ54が押下されたか否かを判定する(ステップS41)。
 逆行スイッチ54が押下されていない場合(ステップS41、No)、座標変換部411が、軸選択スイッチ59で選択された軸情報を、記憶部34Zから取得する(ステップS42)。また、座標変換部411は、ジョグボタン57または手動ハンドル55に入力された移動量を記憶部34Zから取得する(ステップS43)。なお、座標変換部411は、ステップS42の処理とステップS43の処理とを、何れの順番で実行してもよい。
 この後、座標変換部411は、ロボット座標系への変換処理を実行する(ステップS30)。すなわち、座標変換部411は、図8で説明したステップS23,S24の処理を実行する。さらに、手動可否判断部412は、ロボット60の手動可否の判定処理を実行する(ステップS10)。
 逆行スイッチ54が押下された場合(ステップS41、Yes)、逆方向変換部414は、手動動作記憶エリア348で記憶しておいた手動時指令を取得する(ステップS44)。逆方向変換部414は、手動動作記憶エリア348内の手動時指令を逆方向への移動指令に変換する(ステップS45)。この後、手動可否判断部412は、ロボット60の手動可否の判定処理を実行する(ステップS10)。
 なお、逆方向変換部414は、手動ハンドル55の回転方向に基づいて、ロボット60を移動経路の正方向に移動させる処理と、逆方向に移動させる処理とを切り替えてもよい。この場合、逆方向変換部414は、手動時指令を記憶している移動経路では、手動時指令に従って正方向への移動および逆方向への移動を実行する。一方、移動データ送信部413は、手動時指令を記憶していない新たな操作が実行された場合には、ジョグボタン57または手動ハンドル55への操作に応じた移動をロボット60に実行させる。
 また、実施の形態3では、直交座標系の1軸のみに対する手動操作を行う場合について説明したが、三次元座標空間の終点を目標に複数軸同時に移動するような手動操作であってもよい。
 このように実施の形態3によれば、数値制御装置1Zが、手動操作によるロボット60の動作を記憶しておき、逆行の指示があった場合にはロボット60の動作を逆方向に戻すので、ユーザは、ロボット60の位置を容易に修正することが可能になる。
実施の形態4.
 つぎに、図13および図14を用いてこの発明の実施の形態4について説明する。実施の形態4では、手動操作時のロボット60の動作速度を、オーバーライドスイッチを用いて調整する。
 図13は、実施の形態4にかかる数値制御装置の構成例を示す図である。図13の各構成要素のうち実施の形態1から3の数値制御装置1X~1Zと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
 数値制御装置1Pは、制御演算部2Pと、表示部4と、PLC操作部5とを有する。図13には、数値制御装置1Pとともに、入力操作部3P、工作機械70、ロボットコントローラ50、およびロボット60が示されている。
 入力操作部3Pは、手動ハンドル55と、ジョグボタン57と、軸選択スイッチ59と、逆行スイッチ54と、オーバーライドスイッチ56とを備えている。オーバーライドスイッチ56は、工作機械70およびロボット60の速度に倍率(オーバーライド)を掛けるためのスイッチである。以下、オーバーライドスイッチ56が、ロボット60の速度を低下させる場合について説明する。
 オーバーライドスイッチ56は、ジョグボタン57または手動ハンドル55を用いてロボット60への手動操作が行われている際には、ロボット60の速度を特定の割合で低下させる。オーバーライドスイッチ56は、ユーザ操作によって設定された設定値を、制御演算部2Pに送る。この設定値は、ロボット60の速度を低下させる割合に対応している。オーバーライドスイッチ56から送られてくる設定値は、記憶部34Zに格納される。
 制御演算部2Pは、制御演算部2Zと比較して、ロボット手動操作部41Zの代わりにロボット手動操作部41Pを備えている。ロボット手動操作部41Pは、ロボット手動操作部41Zが備える構成要素に加えて、オーバーライド制御部415を備えている。
 オーバーライド制御部415は、記憶部34Zから設定値を取得して、設定値を、ロボット60の速度を低下させる割合に変換する。移動データ送信部413は、手動操作されるロボット60の速度データに割合を掛けることによって、速度を低下させた速度データを生成する。
 なお、オーバーライドスイッチ56、およびオーバーライド制御部415を、数値制御装置1Xまたは数値制御装置1Yに配置してもよい。
 図14は、実施の形態4にかかる数値制御装置が、手動操作されるロボットの速度を特定の割合で低下させる処理の処手順を示すフローチャートである。数値制御装置1Pは、動作を開始すると、座標変換部411が、軸選択スイッチ59で選択された軸情報を、記憶部34Zから取得する(ステップS61)。また、座標変換部411は、ジョグボタン57または手動ハンドル55に入力された移動量を記憶部34Zから取得する(ステップS62)。なお、座標変換部411は、ステップS61の処理とステップS62の処理とを、何れの順番で実行してもよい。この後、座標変換部411は、ロボット座標系への変換処理を実行する(ステップS30)。
 ロボット60の動作が速すぎた場合、ユーザは、オーバーライドスイッチ56によってロボット60の速度を下げることができる。オーバーライド制御部415は、オーバーライドスイッチ56への操作状態、すなわち、オーバーライドスイッチ56に対して設定された値を、記憶部34Zを介してオーバーライドスイッチ56から取得する(ステップS63)。オーバーライド制御部415は、オーバーライドスイッチ56に設定された値を、ロボット60の速度に掛ける割合(倍率)に変換する(ステップS64)。
 オーバーライド制御部415は、変換した割合(%)を、移動データ送信部413に送る。また、移動データ送信部413は、ロボット60の移動速度を示す速度データを記憶部34Zから取得する。
 移動データ送信部413は、速度データに割合を掛ける(ステップS65)。例えば、割合が10%であった場合、移動データ送信部413は、ロボット60の速度が10分の1になる速度データを生成する。移動データ送信部413は、軸情報、移動量、生成した速度データを、ロボットコントローラ50を介してロボット60に送信する(ステップS66)。
 これにより、ユーザは、手動操作時のロボット60の動作速度を、オーバーライドスイッチ56で制御できるので、ロボット60が工作機械70等と干渉することをユーザの判断で回避しやすくすることができる。なお、ユーザは、ロボットコントローラ50を操作することによってもロボット60の速度を低下させることはできるが、実施の形態4では、ユーザが、ロボットコントローラ50まで移動しなくてもロボット60の速度を低下させることができるので、ユーザの作業効率が向上する。
 このように実施の形態4によれば、数値制御装置1Pが、手動操作時のロボット60の動作速度を、オーバーライドスイッチ56を用いて低下させるので、ユーザは、ロボット60が工作機械70等と干渉することを容易に回避することができる。
実施の形態5.
 つぎに、図15を用いてこの発明の実施の形態5について説明する。実施の形態5では、制御システム100の状態を判定する際の判定値と、制御システム100にエラーが発生するまでの時間との関係に基づいて、手動操作の可否を学習する。
 図15は、実施の形態5にかかる数値制御装置の構成例を示す図である。図16は、実施の形態5にかかる数値制御装置が備える機械学習装置の構成例を示す図である。図15,16の各構成要素のうち実施の形態1の数値制御装置1Xと同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。
 数値制御装置1Qは、制御演算部2Qと、表示部4と、PLC操作部5とを有する。図15には、数値制御装置1Qとともに、入力操作部3X、工作機械70、ロボットコントローラ50、およびロボット60が示されている。
 制御演算部2Qは、制御演算部2Xと比較して、ロボット手動操作部41Xの代わりに、ロボット手動操作部41Qを備えている。ロボット手動操作部41Qは、ロボット手動操作部41Xと比較して、手動可否判断部412の代わりに手動可否判断部412Qを備えている。手動可否判断部412Qは、手動可否判断部412の機能に加えて、手動操作開始からエラーが発生するまでの時間を計測する機能を有している。
 また、制御演算部2Qは、制御演算部2Xが備える構成要素に加えて機械学習装置80を備えている。機械学習装置80は、手動操作の可否を判定する際に用いる適切な判定値を学習し、手動可否判断部412Qは、機械学習装置80によって学習された判定値を用いて、手動操作の可否を判定する。手動可否判断部412Qは、手動操作が不可の場合はユーザに通知するとともに手動操作を無効にする。
 数値制御装置1Qの機械学習装置80以外の各構成要素は、制御システム100の状態を示す状態情報を機械学習装置80に送る。状態情報の例は、ロボット60の状態を示すロボット状態情報、工作機械70の状態を示すNC状態情報、PLC36の状態を示すPLC状態情報等である。
 手動可否判断部412Qは、ロボット状態情報を、例えばロボット手動操作部41Qから取得する。また、手動可否判断部412Qは、NC状態情報を、例えば共有エリア345から取得する。また、手動可否判断部412Qは、PLC状態情報を、例えば制御信号処理部35から取得する。
 機械学習装置80は、ロボット状態情報、NC状態情報、およびPLC状態情報を手動可否判断部412Qから取得する。なお、機械学習装置80は、ロボット状態情報をロボット手動操作部41Qから取得し、NC状態情報を共有エリア345から取得し、PLC状態情報を制御信号処理部35から取得してもよい。状態情報は、ロボット状態情報、NC状態情報、およびPLC状態情報以外の情報を含んでいてもよい。
 手動可否判断部412Qは、状態情報に基づいて、ユーザによるロボット60の手動操作中にエラーが発生したか否かを判断する。エラーは、ロボット60が、工作機械70に衝突した際、または工作機械70に衝突する可能性が特定の基準値よりも高い場合に発生するものとする。すなわち、手動可否判断部412Qは、制御システム100において、ロボット60の手動操作を不可にする状態が発生した場合に、エラーが発生したと判断する。手動可否判断部412Qは、エラーの判断項目毎の判定値と、エラーの判断項目が示す値(状態を示す値)とを比較することによって、エラーの判断項目毎にエラーを発生したか否かを判断する。エラーの判断項目毎の判定値は、記憶部34Xに格納しておく。また、手動可否判断部412Qは、手動操作開始からエラーが発生するまでの時間(以下、エラー発生時間という)を計測する。
 機械学習装置80は、制御システム100の状態を判定する際の判定値と、制御システム100におけるエラー発生時間との関係に基づいて、適切な判定値を学習していく。これにより、手動可否判断部412Qが記憶している判定値は、機械学習装置80による学習によって書き換えられていく。このように、判定値は、手動操作の可否判定に用いられるので、機械学習装置80は、手動操作の可否を学習することとなる。
 手動可否判断部412Qは、エラーの発生の際には、画面処理部31にアラームを通知する。したがって、判定値は、アラームを発生させるか否かの判定基準であるともいえる。なお、判定値は、記憶部34Xで記憶する場合に限らず、機械学習装置80で記憶しておいてもよい。
 エラーの判断項目の例は、ロボットハンド61の稼働領域が特定の範囲内であるか否かである。この稼働領域は、ユーザによるロボット60への手動操作に応じて変化する。稼働領域は、ロボット60の特定位置(スタート位置)のロボットハンド61の距離および移動方向によって決まることがあるので、この距離に対する判定値が稼働領域の判定値となる。ロボットハンド61の稼働領域が広すぎる場合、ロボットハンド61が、工作機械70に衝突しやすくなり、アラームを発生させるまでの時間が長くなる傾向になる。このため、判定値が大きくなりすぎると、アラームを発生させるまでの時間が長くなる。一方、判定値が小さすぎると、ロボットハンド61の稼働領域が狭くなり不便である。したがって、アラームを発生させるまでの時間が短くなり過ぎず、ロボットハンド61の稼働領域を確保できる判定値が適切な判定値である。また、ロボット60の移動方向によってはエラーが発生しない(例えば、工作機械70と干渉しない)ので、エラーが発生しない移動方向の範囲が適切な判定値である。また、工作機械70の状態(自動運転中(加工中)でない、かつ工作機械70のドアがオープンしているなどの状態)がロボット移動可能な適切な判定値である。このため、機械学習装置80は、エラー発生時間が適切な時間(以下、適切時間という)で発生するよう、判定値を設定する。適切時間は、手動操作開始からの経過時間であり、例えば、10秒後から30秒後などの期間であってもよいし、15秒後といった特定のタイミングであってもよい。適切時間で、かつ、適切な移動方向、かつ、適切な工作機械70の状態で、エラーが発生しなくなる。これにより、ロボットハンド61の稼働領域を確保しつつ、ロボットハンド61の手動操作時にロボットハンド61の衝突を回避できる。機械学習装置80は、各種の適切な判定値を学習していく。なお、NCプログラムの進行状況によって工具または加工ワークの位置が変化するので、NCプログラムの進行状況毎に判定値が設定されてもよい。また、ここでは判定値をエラー発生時間に基づいて決定する場合について説明したが、判定値は移動量に基づいて決定されてもよい。
 手動可否判断部412Qは、エラーが発生したと判断すると、各種状態を計測または算出して機械学習装置80に送る。
 機械学習装置80は、状態観測部71と、学習部72とを備えている。状態観測部71は、手動可否判断部412Qから現在使用中の状態を取得する。状態観測部71は、エラーが発生した場合、各種状態を状態変数81として観測し、学習部72に送る。手動可否判断部412Qは、ユーザがロボット60を手動操作中に、エラーの発生毎に各種状態を取得する。したがって、状態観測部71は、エラーの発生毎に各種状態を取得して状態変数81を学習部72に送る。
 学習部72に用いる学習アルゴリズムは、何れの学習アルゴリズムであってもよい。ここでは、学習アルゴリズムに、強化学習(Reinforcement Learning)を適用した場合について説明する。強化学習は、ある環境内におけるエージェント(行動主体)が、状態変数81で示される現在の状態を観測し、取るべき行動83を決定する、というものである。エージェントは行動83を選択することで環境から報酬82を得て、一連の行動83を通じて報酬82が最も多く得られるような方策を学習する。強化学習の代表的な手法として、Q学習(Q-learning)およびTD学習(TD-learning)が知られている。例えば、Q学習の場合、行動価値関数Q(s,a)の一般的な更新式(行動価値テーブル)は式(1)で表される。
Figure JPOXMLDOC01-appb-M000001
 式(1)において、stは時刻tにおける環境を表し、atは時刻tにおける行動を表す。行動atにより、環境はst+1に変わる。rt+1はその環境の変化によってもらえる報酬82を表し、γは割引率を表し、αは学習係数を表す。Q学習を適用した場合、ロボット60の手動操作に対応する判定値が、行動atとなる。
 式(1)で表される更新式は、時刻t+1における最良の行動aの行動価値が、時刻tにおいて実行された行動aの行動価値Qよりも大きければ、行動価値Qを大きくし、逆の場合は、行動価値Qを小さくする。換言すれば、時刻tにおける行動aの行動価値Qを、時刻t+1における最良の行動価値に近づけるように、行動価値関数Q(s,a)を更新する。それにより、或る環境における最良の行動価値が、それ以前の環境における行動価値に順次伝播していくようになる。
 学習部72は、報酬計算部73と、関数更新部74とを備えている。報酬計算部73は、状態変数81である、エラー発生時間および判定値に基づいて、報酬82を計算する。報酬計算部73は、ユーザがロボット60を手動操作した際の、例えばエラー発生時間と適切時間との差(以下、時間差という)が、これまでの時間差よりも小さくなると報酬82を増大させる(例えば「1」の報酬を与える)。報酬計算部73は、例えば、時間差が0であるときは報酬82を最大報酬とする。他方、報酬計算部73は、ユーザがロボット60を手動操作した際の、時間差が、これまでの時間差よりも大きくなると報酬82を低減させる(例えば「-1」の報酬を与える)。また、エラーが発生しない移動方向の場合は最大報酬を与える(例えば「1」の報酬を与える)。また、工作機械70の状態が自動運転でなく、かつ、工作機械70のドアがオープン状態の場合は最大報酬を与える(例えば「1」の報酬を与える)。
 関数更新部74は、報酬計算部73によって計算される報酬82に従って、行動83(次回の判定値)を決定するための関数を更新する。例えばQ学習の場合、関数更新部74は、式(1)で表される行動価値関数Q(st,at)を、次回の判定値を決定するための関数として用いる。関数更新部74は、更新した行動価値関数Q(st,at)を用いて行動83を算出する。関数更新部74は、算出した行動83を手動可否判断部412Qに送る。
 手動可否判断部412Qは、機械学習装置80が算出した行動83、すなわち判定値を用いて、ロボット60への手動操作の可否を判定する。手動可否判断部412Qは、稼働領域が判定値よりも大きくなると(報酬が小さい場合に)、表示部4にアラームを表示させ、ロボット60の手動操作を停止させる。
 なお、機械学習装置80は、制御演算部2Qの外部に配置されてもよい。また、実施の形態5では、強化学習を利用して機械学習する場合について説明したが、他の公知の方法、例えばニューラルネットワーク、遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
 また、状態情報は、状態の履歴であってもよい。例えば、エラーの判断項目を、センサで検出した情報の履歴としてもよい。この場合、例えば、情報を時間で積分した値が状態情報である。また、機械学習装置80は、数値制御装置1Y,1Z,1Pに配置されてもよい。
 このように実施の形態5によれば、機械学習装置80が適切な状態に基づいて、ロボット60の手動操作の可否の判定に用いる判定値を学習するので、数値制御装置1Qは、ロボット60の手動操作の可否を適切に判断することができる。
 なお、実施の形態1から5で説明した内容を組み合わせてもよい。例えば、実施の形態3で説明した、逆行スイッチ54、逆方向変換部414、手動動作記憶エリア348、および送信間隔記憶エリア349を、数値制御装置1Qに配置してもよい。また、実施の形態4で説明した、オーバーライドスイッチ56、およびオーバーライド制御部415を、数値制御装置1Qに配置してもよい。
 ここで、数値制御装置1X~1Z,1P,1Qが備える制御演算部2X~2Z,2P,2Qのハードウェア構成について説明する。なお、制御演算部2X~2Z,2P,2Qは、同様のハードウェア構成を有しているので、ここでは制御演算部2Xのハードウェア構成について説明する。
 図17は、実施の形態1にかかる制御演算部のハードウェア構成例を示す図である。制御演算部2Xは、図17に示したプロセッサ301、メモリ302、およびインタフェース回路303により実現することができる。プロセッサ301、メモリ302、およびインタフェース回路303は、バス310によって互いにデータの送受信が可能である。
 プロセッサ301の例は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、DSP(Digital Signal Processor)ともいう)またはシステムLSI(Large Scale Integration)である。メモリ302の例は、RAM(Random Access Memory)またはROM(Read Only Memory)である。
 記憶部34Xは、メモリ302によって実現される。入力制御部32の一部の機能、画面処理部31の一部の機能、通信制御部44の一部の機能、軸データ出力部40の一部の機能は、インタフェース回路303によって実現される。
 制御演算部2Xは、プロセッサ301が、メモリ302で記憶されている、制御演算部2Xの動作を実行するためのプログラムを読み出して実行することにより実現される。また、このプログラムは、制御演算部2Xの手順または方法をコンピュータに実行させるものであるともいえる。メモリ302は、プロセッサ301が各種処理を実行する際の一時メモリにも使用される。
 プロセッサ301が実行するプログラムは、コンピュータで実行可能な、データ処理を行うための複数の命令を含むコンピュータ読取り可能かつ非遷移的な(non-transitory)記録媒体を有するコンピュータプログラムプロダクトであってもよい。プロセッサ301が実行するプログラムは、複数の命令がデータ処理を行うことをコンピュータに実行させる。
 また、制御演算部2Xを専用のハードウェアで実現してもよい。また、制御演算部2Xの機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
 以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
 1P,1Q,1X~1Z 数値制御装置、2P,2Q,2X~2Z 制御演算部、3P,3X,3Z 入力操作部、4 表示部、5 PLC操作部、11 通知領域、21~23 操作受付画面、31 画面処理部、32 入力制御部、33 データ設定部、34X~34Z 記憶部、35 制御信号処理部、37 解析処理部、38 補間処理部、39 加減速処理部、40 軸データ出力部、41P,41Q,41X~41Z ロボット手動操作部、44 通信制御部、45 状態判定部、50 ロボットコントローラ、51 入出力ユニット、52 非常停止ボタン、53 操作盤、54 逆行スイッチ、55,55A,55B 手動ハンドル、56 オーバーライドスイッチ、57 ジョグボタン、59 軸選択スイッチ、60 ロボット、61 ロボットハンド、70 工作機械、71 状態観測部、72 学習部、73 報酬計算部、74 関数更新部、80 機械学習装置、81 状態変数、82 報酬、83 行動、90 駆動部、100 制御システム、301 プロセッサ、302 メモリ、303 インタフェース回路、310 バス、341 パラメータ記憶エリア、343 NCプログラム記憶エリア、344 表示データ記憶エリア、345 共有エリア、346 特定距離記憶エリア、347 オフセット座標記憶エリア、348 手動動作記憶エリア、349 送信間隔記憶エリア、411 座標変換部、412,412Q 手動可否判断部、413 移動データ送信部、414 逆方向変換部、415 オーバーライド制御部。

Claims (7)

  1.  被加工物の加工を行う工作機械と前記被加工物の搬送を行うロボットとを制御する制御システムにおいて用いられる数値制御装置であって、
     前記ロボットへの手動操作を受け付ける入力操作部と、
     数値制御プログラムを用いて前記工作機械を制御するとともに、前記手動操作に基づいて前記ロボットを制御する制御演算部を有し、
     前記制御演算部は、
     前記制御システムの状態に基づいて、前記ロボットの手動操作の可否を判断する手動可否判断部と、
     前記手動可否判断部によって前記ロボットの手動操作が許可されている場合に前記手動操作が行われると、前記手動操作に基づいて、前記ロボットの移動を制御する制御装置への第1の移動指令を生成して前記制御装置に送信する移動データ送信部と、
     を備えることを特徴とする数値制御装置。
  2.  前記入力操作部は、前記工作機械の座標系で前記手動操作を受け付け、
     前記制御演算部は、前記工作機械の座標系の指令を、前記ロボットの座標系の指令に変換する変換部をさらに備え、
     前記変換部は、前記入力操作部が受け付けた前記手動操作に対応する指令を、前記工作機械の座標系から前記ロボットの座標系の指令に変換して前記第1の移動指令を生成する、
     ことを特徴とする請求項1に記載の数値制御装置。
  3.  前記制御演算部は、
     前記第1の移動指令を記憶しておく記憶部と、
     前記第1の移動指令に基づいて、前記ロボットを前記第1の移動指令に対応する移動経路に沿って逆行させる第2の移動指令を生成する逆方向変換部と、
     をさらに備え、
     前記移動データ送信部は、前記第2の移動指令を前記制御装置に送信する、
     ことを特徴とする請求項1または2に記載の数値制御装置。
  4.  前記入力操作部は、前記ロボットの速度にオーバーライドをかけるためのオーバーライドスイッチを有し、
     前記制御演算部は、
     前記手動操作の際に、前記オーバーライドスイッチに設定された設定値に基づいて、前記ロボットの速度を低下させた速度データを生成する、
     ことを特徴とする請求項1から3の何れか1つに記載の数値制御装置。
  5.  前記ロボットの手動操作の可否を判断する際に前記状態を示す値と比較される判定値を学習する機械学習装置をさらに備え、
     前記機械学習装置は、前回のエラー発生から最新のエラー発生までの時間であるエラー発生時間と、前記前回のエラー発生から前記最新のエラー発生までの間に用いた判定値と、を状態変数として観測する状態観測部と、
     前記状態変数に基づいて作成されるデータセットに従って、特定の期間にエラーが発生する判定値を学習する学習部と、
     を有し、
     前記手動可否判断部は、前記学習部が学習した判定値を用いて、前記ロボットの手動操作の可否を判断する、
     ことを特徴とする請求項1から4の何れか1つに記載の数値制御装置。
  6.  前記手動可否判断部は、前記ロボットの手動操作を許可しない場合には、表示装置にアラームまたはメッセージを表示させる、
     ことを特徴とする請求項1から5の何れか1つに記載の数値制御装置。
  7.  数値制御プログラムを用いて工作機械を制御するとともに、ロボットへの手動操作に基づいて前記ロボットを制御する数値制御装置が、前記工作機械、前記ロボット、および前記数値制御装置の少なくとも1つの状態に基づいて、前記ロボットの手動操作の可否を判断する手動可否判断ステップと、
     前記ロボットの手動操作が許可されている場合に前記ロボットへの手動操作が行われると、前記数値制御装置が、前記手動操作に基づいて、前記ロボットの移動を制御する制御装置への第1の移動指令を生成して前記制御装置に送信する移動データ送信ステップと、
     を含むことを特徴とする数値制御方法。
PCT/JP2019/013887 2019-03-28 2019-03-28 数値制御装置および数値制御方法 WO2020194752A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2019/013887 WO2020194752A1 (ja) 2019-03-28 2019-03-28 数値制御装置および数値制御方法
JP2019557001A JP6811878B1 (ja) 2019-03-28 2019-03-28 数値制御装置および数値制御方法
CN201980094562.8A CN113614660B (zh) 2019-03-28 2019-03-28 数控装置及数控方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2019/013887 WO2020194752A1 (ja) 2019-03-28 2019-03-28 数値制御装置および数値制御方法

Publications (1)

Publication Number Publication Date
WO2020194752A1 true WO2020194752A1 (ja) 2020-10-01

Family

ID=72609316

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/013887 WO2020194752A1 (ja) 2019-03-28 2019-03-28 数値制御装置および数値制御方法

Country Status (3)

Country Link
JP (1) JP6811878B1 (ja)
CN (1) CN113614660B (ja)
WO (1) WO2020194752A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022176818A1 (ja) * 2021-02-18 2022-08-25 ファナック株式会社 ロボット制御装置、ロボット制御システム、及びコンピュータプログラム

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59177607A (ja) * 1983-03-28 1984-10-08 Fanuc Ltd 自動プログラミング方法
JPH02212905A (ja) * 1989-02-14 1990-08-24 Hitachi Seiki Co Ltd Ncプログラム経路の倣い装置と半自動マニピュレータ
JPH05173627A (ja) * 1991-12-20 1993-07-13 Daihen Corp 産業用ロボットの制御装置
JPH06110541A (ja) * 1992-03-02 1994-04-22 Yaskawa Electric Corp 産業用ロボットの制御装置
US20110160910A1 (en) * 2008-07-21 2011-06-30 Gernot Preisinger Method of operating a mobile hand-operated device for outputting or enabling potentially dangerous control commands and corresponding hand-operated device
US8504199B1 (en) * 2009-11-12 2013-08-06 Kabushiki Kaisha Yaskawa Denki Robot control system
JP2014018939A (ja) * 2012-07-23 2014-02-03 Daihen Corp ロボット制御装置
JP2017033526A (ja) * 2015-07-31 2017-02-09 ファナック株式会社 故障条件を学習する機械学習方法及び機械学習装置、並びに該機械学習装置を備えた故障予知装置及び故障予知システム
JP2017070125A (ja) * 2015-09-30 2017-04-06 ファナック株式会社 ファンモータの予防保全機能を備えたモータ駆動装置
JP2018027575A (ja) * 2016-08-15 2018-02-22 ファナック株式会社 ロボットシステム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2785086B2 (ja) * 1992-06-17 1998-08-13 ファナック株式会社 ロボットの手動送り方法
JP3264705B2 (ja) * 1992-10-26 2002-03-11 シチズン時計株式会社 数値制御工作機械のロボットハンドの制御方法
JPH0871979A (ja) * 1994-09-09 1996-03-19 Nissan Motor Co Ltd ロボットコントローラ
JP3640316B2 (ja) * 1995-01-26 2005-04-20 株式会社小松製作所 プレス機械とロボットの同期装置
JP2001154717A (ja) * 1999-09-13 2001-06-08 Fanuc Ltd ロボットと機械の結合システム
JP2002144277A (ja) * 2000-11-08 2002-05-21 Denso Corp ロボット
JP3985677B2 (ja) * 2002-12-25 2007-10-03 株式会社安川電機 水平多関節ロボットの干渉チェック装置および方法
JP6328599B2 (ja) * 2015-11-20 2018-05-23 ファナック株式会社 ロボットの動作可能範囲を算出するロボットの手動送り装置
JP6821374B2 (ja) * 2016-10-06 2021-01-27 川崎重工業株式会社 ロボットシステム及びその運転方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59177607A (ja) * 1983-03-28 1984-10-08 Fanuc Ltd 自動プログラミング方法
JPH02212905A (ja) * 1989-02-14 1990-08-24 Hitachi Seiki Co Ltd Ncプログラム経路の倣い装置と半自動マニピュレータ
JPH05173627A (ja) * 1991-12-20 1993-07-13 Daihen Corp 産業用ロボットの制御装置
JPH06110541A (ja) * 1992-03-02 1994-04-22 Yaskawa Electric Corp 産業用ロボットの制御装置
US20110160910A1 (en) * 2008-07-21 2011-06-30 Gernot Preisinger Method of operating a mobile hand-operated device for outputting or enabling potentially dangerous control commands and corresponding hand-operated device
US8504199B1 (en) * 2009-11-12 2013-08-06 Kabushiki Kaisha Yaskawa Denki Robot control system
JP2014018939A (ja) * 2012-07-23 2014-02-03 Daihen Corp ロボット制御装置
JP2017033526A (ja) * 2015-07-31 2017-02-09 ファナック株式会社 故障条件を学習する機械学習方法及び機械学習装置、並びに該機械学習装置を備えた故障予知装置及び故障予知システム
JP2017070125A (ja) * 2015-09-30 2017-04-06 ファナック株式会社 ファンモータの予防保全機能を備えたモータ駆動装置
JP2018027575A (ja) * 2016-08-15 2018-02-22 ファナック株式会社 ロボットシステム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022176818A1 (ja) * 2021-02-18 2022-08-25 ファナック株式会社 ロボット制御装置、ロボット制御システム、及びコンピュータプログラム

Also Published As

Publication number Publication date
JPWO2020194752A1 (ja) 2021-04-08
JP6811878B1 (ja) 2021-01-13
CN113614660B (zh) 2022-07-29
CN113614660A (zh) 2021-11-05

Similar Documents

Publication Publication Date Title
US10856945B2 (en) Industrial robot and method of operating the same
US11279033B2 (en) Method and apparatus for collision-free motion planning of a manipulator
JP2018202564A (ja) 制御装置及び機械学習装置
JP6619395B2 (ja) ロボットシステムおよびロボットの教示方法
JP5872894B2 (ja) ロボット動作教示支援装置及び方法
JP6392825B2 (ja) 学習制御機能を備えたロボット制御装置
JP7068059B2 (ja) 遠隔操作方法及び遠隔操作システム
US9317032B2 (en) Robot and method for operating a robot
JPWO2007111252A1 (ja) マニピュレータの制御方法および制御システム
WO2022224425A1 (ja) 数値制御装置及び数値制御システム
KR101820580B1 (ko) 경로 전진 변수들을 갖는 안전한 로봇
JP6514273B2 (ja) 速度を表示するロボットシステム
JP6811878B1 (ja) 数値制御装置および数値制御方法
EP1894682A2 (en) Robotic programming control using multiple binary input
KR20150026881A (ko) 표시 장치
WO2022139939A1 (en) Robot planning
JP6914452B1 (ja) 数値制御装置、および機械学習装置
JP2007152541A (ja) ティーチングペンダント
Blank et al. Adaptive Motion Control Middleware for Teleoperation Based on Pose Tracking and Trajectory Planning
JP3871030B2 (ja) サーボ制御方法
JP4873082B2 (ja) 数値制御装置
JP7311732B1 (ja) 数値制御装置及び数値制御システム
JP7260728B1 (ja) 数値制御装置及び数値制御システム
JP3855629B2 (ja) ロボットの干渉検出装置
WO2024100718A1 (ja) 数値制御装置及び数値制御システム

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2019557001

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: 19921382

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19921382

Country of ref document: EP

Kind code of ref document: A1