WO2020136899A1 - 数値制御装置および機械学習装置 - Google Patents
数値制御装置および機械学習装置 Download PDFInfo
- Publication number
- WO2020136899A1 WO2020136899A1 PCT/JP2018/048575 JP2018048575W WO2020136899A1 WO 2020136899 A1 WO2020136899 A1 WO 2020136899A1 JP 2018048575 W JP2018048575 W JP 2018048575W WO 2020136899 A1 WO2020136899 A1 WO 2020136899A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- tool
- interrupt
- command
- machining
- unit
- Prior art date
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B23—MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
- B23B—TURNING; BORING
- B23B25/00—Accessories or auxiliary equipment for turning-machines
- B23B25/02—Arrangements for chip-breaking in turning-machines
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/4155—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
- G05B19/19—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
- G05B19/27—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device
- G05B19/29—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device for point-to-point control
- G05B19/291—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device for point-to-point control the positional error is used to control continuously the servomotor according to its magnitude
- G05B19/295—Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an absolute digital measuring device for point-to-point control the positional error is used to control continuously the servomotor according to its magnitude with current or torque feedback only
Definitions
- the present invention relates to a numerical control device and a machine learning device that control a machine tool that performs turning.
- Patent Document 1 As a conventional numerical control device for controlling a machine tool that performs a turning process, a numerical control device that controls a work while machining a cutting tool at low frequencies along a machining path has been proposed (for example, Patent Document 1). ).
- the numerical control device described in Patent Document 1 calculates a command movement amount per unit time from a movement command to a tool, calculates a vibration movement amount per unit time from a vibration condition, and calculates a command movement amount and a vibration movement amount. Are combined to calculate a combined movement amount, and vibration cutting is controlled based on the combined movement amount.
- the numerical control device described in Patent Document 1 controls the vibration frequency of the tool so as not to exceed a certain value, and thereby finely divides the chips generated when cutting the work. As a result, it is possible to prevent the chips from being entangled with the tool, and to prevent problems such as shortening the life of the tool due to the entanglement of the chips.
- the present invention has been made in view of the above, and is a numerical control capable of stably cutting chips generated when performing turning without being affected by the set value of the rotational speed of the spindle.
- the purpose is to obtain the device.
- the present invention is a numerical controller for controlling a plurality of drive shafts for driving a tool for processing a workpiece, and an analysis for analyzing a processing program.
- the processing unit includes a processing unit and a processing route calculation unit that calculates a processing route that is a movement route of a tool when cutting a processing target based on an analysis result of a processing program by the analysis processing unit.
- the numerical control device is an operation that is repeatedly executed while the tool moves along the machining path and is machining the object to be machined.
- An interrupt route calculation unit for calculating the movement route based on the analysis result is provided.
- the numerical control device has an effect that chips generated during turning can be stably separated from the object to be processed without being affected by the set value of the rotational speed of the spindle.
- FIG. 3 is a diagram showing a configuration example of an interrupt machining command that can be included in a machining program executed by the numerical control device according to the first embodiment.
- the figure which shows the 2nd example of the processing operation which the numerical control apparatus concerning Embodiment 1 controls a machine tool, and performs.
- FIG. 6 is a flowchart showing an example of the operation of the analysis processing unit included in the numerical control device according to the first embodiment.
- 3 is a flowchart showing an example of the operation of the interpolation processing unit included in the numerical control device according to the first embodiment.
- FIG. 3 is a diagram showing a first example of an interrupt operation performed by applying the numerical control device according to the first embodiment.
- FIG. 3 is a diagram showing a second example of an interrupt operation performed by applying the numerical control device according to the first embodiment.
- FIG. 6 is a diagram showing a third example of the interrupt operation performed by applying the numerical control device according to the first embodiment.
- FIG. 6 is a diagram showing a fourth example of the interrupt operation performed by applying the numerical control device according to the first embodiment.
- FIG. 3 is a diagram showing a hardware configuration example of a control calculation unit included in the numerical controller according to the first embodiment.
- Diagram showing an example of boring Diagram for explaining the problems that occur during boring Diagram showing an example of machining operation that causes interference between tool and workpiece The figure which shows the structural example of the numerical control apparatus concerning Embodiment 2.
- 6 is a flowchart showing an example of the operation of the operation condition changing unit included in the numerical controller according to the second embodiment.
- a numerical control device and a machine learning device will be described in detail below with reference to the drawings.
- the present invention is not limited to this embodiment.
- a cutting tool included in a machine tool is referred to as a “tool”, and a turning process performed by the machine tool is referred to as a “machining”.
- FIG. 1 is a diagram illustrating a configuration example of a numerical control device according to the first embodiment.
- the numerical control device 1 includes an input operation unit 20, a display unit 30, and a control calculation unit 40.
- the drive unit 10 provided in the machine tool controlled by the numerical controller 1 is also shown. Description of components other than the drive unit 10 of the machine tool is omitted.
- the drive unit 10 provided in the machine tool is a mechanism that drives at least two axial directions of either or both of the workpiece and the tool that are the workpieces.
- a plurality of servo motors 11 for moving one or both of a workpiece and a tool in each axial direction defined on the numerical controller 1 and a plurality of detections for detecting the position and speed of the rotor of each servo motor 11 are detected.
- the drive unit 10 also includes an X-axis servo control unit 13X, a Z-axis servo control unit 13Z,... Which controls the servo motor 11 based on the position and speed detected by the detector 12.
- the drive unit 10 also includes a spindle motor 14 that rotates a spindle for rotating a workpiece, a detector 15 that detects the position and rotation speed of a rotor of the spindle motor 14, and a position and rotation detected by the detector 15. And a spindle servo control unit 16 for controlling the spindle motor 14 based on the number.
- the input operation unit 20 is means for inputting information to the numerical control device 1.
- the input operation unit 20 includes a keyboard, buttons, a mouse, and the like, receives commands, machining programs, parameters, and the like input by the user to the numerical controller 1, and transfers them to the control calculation unit 40.
- the display unit 30 includes a liquid crystal display device or the like, and displays information processed by the control calculation unit 40.
- the control calculation unit 40 includes an input control unit 41, a data setting unit 42, a storage unit 43, a screen processing unit 44, an analysis processing unit 45, a machine control signal processing unit 46, and a PLC (Programmable Logic Controller) 47.
- the PLC 47 may be arranged outside the control calculation unit 40.
- the input control unit 41 receives information input from the input operation unit 20.
- the data setting unit 42 stores the information received by the input control unit 41 in the storage unit 43. For example, when the input content is the editing of the machining program 432, the edited content is reflected in the machining program 432 stored in the storage unit 43, and when the parameter is input, the storage unit 43 stores it. Parameter 431 is updated.
- the storage unit 43 stores the parameters 431 used in the processing of the control calculation unit 40, the machining program 432 to be executed, the screen display data 433 displayed on the display unit 30, and the like.
- the numerical control device 1 can control the machine tool according to a newly defined interrupt machining command in addition to a command for general numerical control. Therefore, the processing program 432 may include an interrupt processing instruction.
- the interrupt machining command is an operation that temporarily interrupts machining while the machine tool is machining the workpiece, pulls the tool away from the workpiece, and then returns the tool to the contact state and resumes machining. Is a command to instruct the execution of. This series of operations may be referred to as "interrupt operation" in this specification.
- the lift-up means lifting the tool from the machining path while machining while moving the tool along the machining path.
- the operation of bringing the tool away from the work may be referred to as “tool lift-up” or simply “lift-up”.
- the operation of returning from the state where the tool is separated from the work to the state where the tool and the work are in contact with each other may be referred to as “tool lift down” or simply “lift down”.
- the storage unit 43 is also provided with a shared area 434 for storing data other than the parameters 431, the machining programs 432, and the screen display data 433.
- the shared area 434 the data generated by the process of the control calculation unit 40 controlling the drive unit 10 is temporarily stored.
- the screen processing unit 44 controls the display unit 30 to display the screen display data 433 stored in the storage unit 43.
- the analysis processing unit 45 includes an interrupt processing command analysis unit 451 and a general command analysis unit 452.
- the analysis processing unit 45 reads the machining program 432 including one or more blocks from the storage unit 43, and the read machining program 432 is analyzed by the interrupt machining command analysis unit 451 or the general command analysis unit 452.
- the interrupt processing command analysis unit 451 analyzes the interrupt processing command included in the processing program 432, and writes the analysis result in the shared area 434 of the storage unit 43.
- the general command analysis unit 452 analyzes commands other than the interrupt machining command included in the machining program 432, and writes the analysis result in the shared area 434 of the storage unit 43.
- commands other than the interrupt processing command included in the processing program 432 may be referred to as general commands.
- the machine control signal processing unit 46 when the analysis processing unit 45 reads an auxiliary command as a command for operating the machine other than the command for operating the drive axis that is the numerical control axis, determines that the auxiliary command has been issued. Notify the PLC 47.
- auxiliary commands are M code or T code.
- the PLC 47 When the PLC 47 receives a notification from the machine control signal processing unit 46 that an auxiliary command has been issued, the PLC 47 executes the process corresponding to the auxiliary command.
- the PLC 47 holds a ladder program in which machine operations are described.
- the PLC 47 executes a process corresponding to the auxiliary command according to the ladder program.
- the PLC 47 sends a completion signal indicating that the processing corresponding to the auxiliary instruction is completed to the machine control signal processing unit 46 in order to execute the next block of the machining program 432. ..
- the analysis processing unit 45, the machine control signal processing unit 46, and the interpolation processing unit 48 are connected via the storage unit 43.
- the analysis processing unit 45, the machine control signal processing unit 46, and the interpolation processing unit 48 transfer various types of information via the shared area 434 of the storage unit 43.
- the description that the storage unit 43 is interposed may be omitted.
- the interpolation processing unit 48 uses the argument included in the analyzed command and calculates the tool moving path by the interpolation processing.
- the command including the argument related to the movement path of the tool is a command including one or more of an argument indicating the position of the tool, an argument indicating the movement speed of the tool, an argument indicating the interpolation method used in the interpolation processing, and the like.
- An interrupt machining command described later also corresponds to a command including an argument related to the movement path of the tool.
- the interpolation processing unit 48 includes an interrupt timing determination unit 481, an interrupt route calculation unit 482, a machining route calculation unit 483, and a movement amount calculation unit 484.
- the interrupt timing determination unit 481 determines the timing for executing the interrupt operation based on the analysis result obtained by the interrupt processing command analysis unit 451 of the analysis processing unit 45 analyzing the interrupt processing command included in the processing program 432.
- the interrupt path calculation unit 482 calculates the movement path of the tool during the interrupt operation based on the analysis result obtained by analyzing the interrupt processing command by the interrupt processing command analysis unit 451 of the analysis processing unit 45.
- the machining path calculation unit 483 based on the analysis result obtained by the general command analysis unit 452 of the analysis processing unit 45 analyzing the general command included in the machining program 432, the movement path of the tool when the interrupt operation is not performed. To calculate.
- the movement path of the tool calculated by the processing path calculation unit 483 is the movement path of the tool when processing the work, that is, the movement path of the tool when the tool actually cuts the work, and corresponds to the processing path.
- the movement amount calculation unit 484 is predetermined based on the tool movement route calculated by the interrupt route calculation unit 482, the tool movement route calculated by the machining route calculation unit 483, and the tool movement speed instructed by the argument.
- a movement amount indicating the distance that the tool moves per unit time of the obtained length is calculated for each drive axis. That is, the movement amount calculation unit 484 calculates the distance for moving the tool per unit time for each drive axis. For example, when the drive axes are two, that is, the X axis and the Z axis, the movement amount calculation unit 484 determines that the movement amount of the X axis indicating the distance that the tool moves per unit time along the X axis and the Z axis. The amount of movement of the Z-axis, which indicates the distance along which the tool moves per unit time, is calculated. The movement amount calculation unit 484 outputs the calculated movement amount of each drive shaft to the acceleration/deceleration processing unit 49.
- the acceleration/deceleration processing unit 49 converts the movement amount of each drive axis received from the movement amount calculation unit 484 of the interpolation processing unit 48 into a movement command per unit time in consideration of acceleration/deceleration according to a preset acceleration/deceleration pattern. ..
- the axis data output unit 50 outputs the movement command per unit time output from the acceleration/deceleration processing unit 49 to the servo control unit 13 (X-axis servo control unit 13X, Z-axis servo control unit 13Z,... ). ) Is output.
- each servo control unit 13 receives the movement command from the acceleration/deceleration processing unit 49, it controls the servo motor 11 according to the received movement command.
- FIG. 2 is a diagram showing a configuration example of an interrupt machining command that can be included in a machining program executed by the numerical controller 1 according to the first embodiment.
- the G150 code 91 indicates an interrupt processing command. Further, the G150 code 91 has a configuration capable of including X, Z, I, D, R, A, Q, M, E, P as an address indicating an argument. Among the addresses of the G150 code 91 shown in FIG. 2, those having an underscore ‘_’ on the right side have numerical values arranged in the underscore part.
- the numerical control device 1 executes the interrupt processing command and sets the execution condition of the interrupt operation
- the numerical control device 1 newly executes the interrupt processing command to change the setting of the execution condition of the interrupt operation or execute the command to cancel the setting.
- the drive unit 10 is controlled so that the interrupt operation is repeated under the same execution condition.
- An example of the command for canceling the setting can be a G150 code (G150 independent command) in which all arguments are omitted. Each address that can be included in the interrupt processing command (G150 code) will be described below.
- Addresses X and Z are used to specify the axis of the interrupt operation target.
- X indicates the X axis
- Z indicates the Z axis.
- the numerical controller 1 controls the drive unit 10 to perform the interrupt operation only for the X axis. That is, the numerical controller 1 controls the drive unit 10 so that the tool moves only in the X-axis direction and moves away from the work.
- the numerical controller 1 controls the drive unit 10 to perform the interrupt operation for the X axis and the Z axis. The distance traveled by the tool in the interrupt operation is specified by the address R described later.
- the G150 code must include at least one of X and Z, unless used as a command for canceling the setting.
- the G150 code includes only one of X and Z, the operation according to the command value commanded using each address described later may not be possible. Therefore, it is desirable to include both X and Z in the G150 code.
- Address I is used to specify the timing to repeat the interrupt operation. Specifically, the address I is used to specify the amount of movement of the tool from the time the interrupt operation is performed until the time the next interrupt operation is performed.
- the numerical value attached to I indicates the movement amount of the tool. The amount of movement of the tool can be specified by the distance or time that the tool moves. For example, when the movement amount is designated by the distance, the numerical control device 1 controls the drive unit 10 to perform the interrupt operation each time the tool moves by the designated distance.
- the address D indicates whether the address I indicates the distance or the time as the movement amount of the tool.
- Address D is used to specify the movement mode, that is, whether the movement amount indicated by Address I is distance or time.
- the distance is designated in the case of D0
- the time is designated in the case of D1.
- Address R is used to specify the lift amount of the tool, that is, how much the tool should be moved when the tool is separated from the work.
- the value attached to R indicates the lift-up amount of the tool.
- the lift-up amount is the movement amount of the tool when the tool is separated from the work.
- the lift-up amount is usually specified to be larger than the cutting amount of the tool during machining. As a result, the tool separates from the work during the lift-up operation, and the chips are divided when the tool separates from the work.
- Address A is used to specify the lift-up angle of the tool, that is, the angle when the tool is lifted up.
- the numerical value attached to A indicates the lift-up angle of the tool.
- the angle is an angle with respect to the moving direction of the tool during machining. For example, when the tool is machining while moving in parallel with the X axis, the angle specified by the address A is the angle with respect to the X axis.
- the address Q is for specifying the dwell time after the lift-up, that is, the length of time for which the tool is kept stopped after the tool is lifted up by the lift-up amount specified by the address R above. Used for.
- the numerical value attached to Q indicates the dwell time after the lift-up.
- the dwell time is specified by the spindle speed. For example, the dwell time in the case of "Q1" is the time required for the spindle to rotate once.
- the numerical controller 1 starts the lift-down of the tool when the time specified as the dwell time after the lift-up has elapsed (when the spindle has rotated by the specified number) after the lift-up of the tool is completed.
- the drive unit 10 is controlled.
- Address M is used to specify the lift-down return position, that is, the position to return the tool to during the lift-down operation.
- the number attached to M indicates the lift-down return position.
- the lift-down return position indicates the distance (return amount) from the position of the tool at the time of starting the lift-up to the position where the tool is returned by the lift-down.
- the numerical controller 1 controls the drive unit 10 so that the tool returns to the same position as the position where the lift-up is started.
- Address E is used to specify the lift-up speed of the tool, that is, the moving speed of the tool when lifting.
- the numerical value attached to E indicates the lift-up speed of the tool.
- the moving speed of the tool when lifting down is the same as the moving speed of the tool when lifting up.
- the address P is used to specify whether the tool path when the tool is lifted down has a linear shape or an arc shape.
- the numerical controller 1 controls the drive unit 10 so that the shape of the tool path at the time of liftdown is an arc.
- the numerical controller 1 controls the drive unit 10 so that the shape of the tool path at the time of liftdown becomes a straight line.
- FIG. 3 is a diagram illustrating a first example of a machining operation performed by the numerical control device 1 according to the first embodiment by controlling a machine tool.
- FIG. 4 is a diagram showing an example of a machining program for realizing the machining operation shown in FIG.
- the lift-up angle refers to the angle between the machining path along which the tool has moved and the path along which the tool moves when lifted up. In the present embodiment, the lift-up angle is greater than 0° and 90° or less.
- “G0” indicates a positioning command.
- “X400”, “Z10”, etc. following “G0” indicate the position of each drive axis.
- Address X corresponds to the X axis and address Z corresponds to the Z axis.
- “T0101” indicates a tool command. The first two digits following T indicate the tool number, and the remaining two digits indicate the offset amount for correcting the tool position.
- "G150" of sequence number N01 is the above-mentioned interrupt processing command.
- “X”, “Z”, “I40.”, “D0”, “R20.”, “A45.”, “Q1”, “E10.” are included as arguments.
- the X axis and the Z axis are specified as the symmetrical axes of the interrupt operation, and the interrupt operation is specified every time the tool moves 40 mm. That is, the designation of the interval for executing the interrupt operation is set to 40 mm. Further, the lift amount of the tool is designated as 20 mm, the lift angle of the tool is designated as 45°, and the lift speed of the tool is designated as 10 mm/rev.
- the dwell time after the lift-up is designated as the time corresponding to one rotation of the main shaft, and the route returning to the lift-up start position is designated as the straight route in the lift-down.
- the numerical controller 1 executes the interrupt processing command, the numerical controller 1 sets the operation so as to perform the interrupt operation according to the condition specified by the argument included in the command, and starts the control of the drive unit 10.
- the commands corresponding to the sequence numbers N02 to N06 are linear interpolation commands.
- "Z-100.” is a command value indicating the coordinate of the tool on the Z-axis
- "F2.” is the feed rate of the tool per revolution of the spindle. It is the indicated command value.
- "G01 Z-100.F2.” is a linear interpolation command indicating that the tool is moved at a feed rate of 2 mm/rev until the coordinate on the Z axis becomes -100. Since the coordinate of the tool on the X axis does not change, the command value indicating the coordinate of the tool on the X axis is omitted in the command of sequence number N02.
- the numerical controller 1 executes the command of the sequence number N02, whereby the tool moves in the section ⁇ 2> shown in FIG.
- the numerical control device 1 executes the interrupt processing command before executing the command of the sequence number N02. Therefore, in the numerical controller 1, when the execution condition of the interrupt operation is satisfied while the tool is moving in the section ⁇ 2> shown in FIG. 3, that is, the movement amount of the tool is designated by the interrupt interval. When the movement amount is reached, an interrupt operation is performed to lift up the tool. In the example shown in FIGS. 3 and 4, the numerical controller 1 lifts the tool at a lift-up angle of 45° every time the tool is moved by 40 mm. The lift-up angle is an angle with respect to a direction opposite to the moving direction of the tool.
- the lift-up speed of the tool at this time is 10 mm/rev, and the lift-up amount is 20 mm.
- the numerical controller 1 lifts the tool up by 20 mm, then stops the tool until the main shaft makes one rotation, and returns the tool to the original position, that is, the lift-up start position.
- the numerical controller 1 controls the drive unit 10 so that the tool returns to the original position along the straight line path having the shortest movement distance. Since the distance the tool moves in the section ⁇ 2> is 110 mm, the interrupt operation is performed twice in this section.
- "X200.Z-150.” of sequence number N03 indicates that the tool is moved at a feed rate of 2 mm/rev until the coordinate on the X axis becomes 200 and the coordinate on the Z axis becomes -150.
- This is a linear interpolation command. Since "X200.Z-150.” is the same linear interpolation command as the immediately preceding sequence number N02, "G01" indicating the linear interpolation command is omitted. Since the feed rate is not changed, the feed rate command value "F2.” is also omitted.
- the numerical controller 1 executes the command of the sequence number N03, so that the tool moves in the section ⁇ 3> shown in FIG.
- the numerical controller 1 lifts up the tool when the execution condition of the interrupt operation is satisfied.
- the numerical controller 1 lifts up the tool in the same manner as in the section ⁇ 2> described above.
- the interrupt operation is performed once.
- sequence number N04 is a straight line indicating that the tool is moved at a feed rate of 2 mm/rev until the coordinate on the X axis becomes 150 and the coordinate on the Z axis becomes -200.
- This is an interpolation command. Similar to the command with the sequence number N03, "G01" and "F2.” are omitted.
- the numerical controller 1 executes the command of the sequence number N04, whereby the tool moves in the section ⁇ 4> shown in FIG. At this time, as in the case where the tool moves in the sections ⁇ 2> and ⁇ 3>, the numerical controller 1 lifts up the tool when the execution condition of the interrupt operation is satisfied. The numerical controller 1 lifts up the tool in the same manner as in the sections ⁇ 2> and ⁇ 3> described above. In the section ⁇ 4>, the interrupt operation is performed once.
- “Z-300.” of sequence number N05 is a linear interpolation command indicating that the tool is moved at a feed rate of 2 mm/rev until the coordinate on the Z axis becomes ⁇ 300. Similar to the command with the sequence number N03, "G01" and "F2.” are omitted.
- the numerical controller 1 executes the command of the sequence number N05, whereby the tool moves in the section ⁇ 5> shown in FIG. At this time, similarly to the case where the tool moves in the section ⁇ 2> to ⁇ 4>, the numerical controller 1 lifts up the tool when the execution condition of the interrupt operation is satisfied. The numerical controller 1 lifts up the tool in the same manner as in the section ⁇ 2> to ⁇ 4> described above. In the section ⁇ 5>, the interrupt operation is performed twice.
- sequence number N06 is a linear interpolation command indicating that the tool is moved at a feed rate of 2 mm/rev until the coordinate on the X axis reaches 300. Similar to the command with the sequence number N03, "G01" and "F2.” are omitted.
- the numerical controller 1 executes the command of the sequence number N06, whereby the tool moves in the section ⁇ 6> shown in FIG. At this time, similarly to the case where the tool moves in the section ⁇ 2> to ⁇ 5>, the numerical controller 1 lifts up the tool when the execution condition of the interrupt operation is satisfied. The numerical controller 1 lifts up the tool in the same manner as in the section ⁇ 2> to ⁇ 5> described above. In the section ⁇ 6>, the interrupt operation is performed twice.
- "G150" of sequence number N07 is a cancel command for ending the interrupt processing, that is, canceling the interrupt operation, because all the arguments are omitted.
- the numerical controller 1 cancels the setting of the execution condition of the interrupt operation when executing the cancel command of the sequence number N07.
- FIG. 5 is a diagram showing a second example of a machining operation performed by the numerical control device 1 according to the first embodiment by controlling a machine tool.
- FIG. 6 is a diagram showing an example of a machining program that realizes the machining operation shown in FIG.
- "G150" of sequence number N01 is the above-mentioned interrupt processing command.
- “X”, “Z”, “I40.”, “D0”, “R20.”, “A45.”, “E10.”, and “P” are included as arguments.
- the X axis and the Z axis are specified as the symmetrical axes of the interrupt operation, and the interrupt operation is specified every time the tool moves 40 mm. That is, the designation of the interval for executing the interrupt operation is set to 40 mm. Further, the lift amount of the tool is designated as 20 mm, the lift angle of the tool is designated as 45°, and the lift speed of the tool is designated as 10 mm/rev.
- the above conditions are the same as the interrupt operation in the first example shown in FIG.
- the dwell time after the lift-up is not specified.
- the route returning to the lift-up start position is designated as an arc.
- the commands with sequence numbers N02 to N04 shown in FIG. 6 are the same as the commands with the same sequence numbers shown in FIG. Therefore, the route when the tool processes the work in the section ⁇ 2> to ⁇ 4> shown in FIG. 5 is as follows when the tool processes the work in the section ⁇ 2> to ⁇ 4> shown in FIG. It is the same as the route of. However, because the conditions of the interrupt operation are partially different, the path of the tool during the interrupt operation, specifically, the path of the tool during the lift-down is different from that of the first example shown in FIG.
- the numerical controller 1 lifts the tool by a lift-up amount of 20 mm at a lift-up angle of 45° and a lift-up speed of 10 mm/rev each time the tool is moved by 40 mm. Up. The operation up to this point is the same as in the example shown in FIGS. 3 and 4.
- the numerical controller 1 lifts the tool by the lift amount of 20 mm, and then immediately returns the tool to the original position, that is, the lift-up start position.
- the numerical controller 1 controls the drive unit 10 so that the tool path at this time is a circular arc.
- the numerical controller 1 uses the coordinates of the tool at the time of starting the lift-down and the coordinates of the original position of the tool (the coordinates of the tool at the end of the lift-down) to find the path of the tool by circular interpolation.
- the path for the lifted-up tool to return to the original position is an arc, it is possible to prevent the surface of the work from being scored when the tool and the work contact again, and it is possible to improve the machining accuracy.
- Z-230.” of sequence number N05 shown in FIG. 6 is a linear interpolation command indicating that the tool is moved at a feed rate of 2 mm/rev until the coordinate on the Z axis becomes ⁇ 230.
- the numerical controller 1 executes the command of the sequence number N05 shown in FIG. 6 to move the tool in the section ⁇ 5> shown in FIG.
- the distance that the tool moves in the section ⁇ 5> in FIG. 5 is 30 mm, which is shorter than the execution interval 40 mm of the interrupt operation designated by the interrupt processing command. Therefore, lift-up is not performed in the section ⁇ 5> in FIG.
- FIG. 7 is a diagram illustrating a third example of a machining operation performed by the numerical control device 1 according to the first embodiment by controlling a machine tool.
- the components for realizing the operation of controlling the machine tool in accordance with the above-described interrupt machining command specifically, the analysis processing unit 45 and the interpolation.
- the processing unit 48 will be described in detail.
- FIG. 8 is a flowchart showing an example of the operation of the analysis processing unit 45 included in the numerical control device 1 according to the first embodiment. For example, when the input operation unit 20 receives from the user an operation for instructing the start of the operation of controlling the machine tool according to the machining program 432, the analysis processing unit 45 starts the operation illustrated in FIG. 8.
- the analysis processing unit 45 Upon starting the operation, the analysis processing unit 45 first reads the machining program 432 from the storage unit 43 and analyzes it (step S11). Specifically, the analysis processing unit 45 analyzes the machining program 432 and reads one block which is one instruction.
- the analysis processing unit 45 confirms whether or not the read command is the interrupt processing command (step S12), and in the case of the interrupt processing command, that is, the G150 code (step S12: Yes), the interrupt processing command. It is confirmed whether or not it corresponds to the processing cancel command (step S13).
- the interrupt processing command analysis unit 451 performs the processing of this step S13 and steps S14 to S16 described later.
- the G150 code is a single command that does not include any argument such as the address X
- the interrupt processing command analysis unit 451 determines that the G150 code corresponds to the cancel command.
- the interrupt processing command analysis unit 451 extracts a command value from the interrupt processing command when it does not correspond to the cancel command (step S13: No) (step S14).
- the command value here is information given by an argument included in the interrupt processing command, and, for example, information indicating the axis of the target of the interrupt operation indicated by the addresses X and Z, and the interrupt operation indicated by the address I are repeated. Timing information, etc. are applicable.
- the interrupt processing command analysis unit 451 sets the execution condition of the interrupt operation using the command value extracted in step S14 (step S15). Specifically, the interrupt processing command analysis unit 451 sets the execution condition of the interrupt operation by writing the extracted command value in the shared area 434 of the storage unit 43. At this time, the interrupt processing command analysis unit 451 writes each command value in a predetermined area in the shared area 434. It should be noted that when the interrupt machining command analysis unit 451 executes step S15 while the execution condition of the interrupt operation is already set, the execution condition of the interrupt operation is updated.
- the interrupt processing command analysis unit 451 cancels the setting of the execution condition of the interrupt operation (step S16). Specifically, the interrupt processing command analysis unit 451 deletes the execution condition of the interrupt operation written in the shared area 434 of the storage unit 43. A flag indicating that the setting of the execution condition of the interrupt operation is valid is provided in the shared area 434, and the interrupt processing command analysis unit 451 clears this flag to set the execution condition of the interrupt operation. It may be canceled. In this case, the interrupt processing command analysis unit 451 writes the command value extracted from the interrupt processing command in the shared area 434 and a flag indicating that the setting of the execution condition of the interrupt operation is valid in step S15. Perform the setting process.
- the analysis processing unit 45 extracts a command value from the read command (step S17) and extracts the command value. Accordingly, the operating conditions for the operation of machining the workpiece are set (step S18).
- the general command analysis unit 452 performs these steps S17 and S18. For example, when the read command is the G01 code which is a linear interpolation command, the general command analysis unit 452 extracts a command value indicating the coordinate of the tool and a command value indicating the feed speed of the tool in step S17. Further, the general command analysis unit 452 sets the operating condition by writing the extracted command value in a predetermined area in the shared area 434 in step S18.
- the general command analysis unit 452 also writes information indicating the read command, that is, information indicating a linear interpolation command, in the shared area 434. Similarly, when the read command is different from the linear interpolation command indicated by the G01 code, the general command analysis unit 452 also extracts a command value from the read command, and extracts the extracted command value and the type of the read command.
- the operating condition is set by writing the indicated information and a predetermined area in the shared area 434. The operation condition of the operation of machining the work is updated every time the general command analysis unit 452 executes step S18.
- "information indicating the type of command" may be simply referred to as "type of command”.
- Step S15, S16, and S18 the analysis processing unit 45 returns to Step S11, reads the next command, and continues the operation.
- FIG. 9 is a flowchart showing an example of the operation of the interpolation processing unit 48 included in the numerical control device 1 according to the first embodiment.
- the flowchart of FIG. 9 shows the operation of the interpolation processing unit 48 when the numerical control device 1 controls the drive unit 10 of the machine tool to machine a workpiece.
- the interpolation processing unit 48 periodically checks the information written in the shared area 434 of the storage unit 43 and detects that the command value indicating the coordinate of the tool has been updated, the operation illustrated in FIG. To start.
- the interpolation processing unit 48 starts control to move the tool to the position indicated by the command value written in the shared area 434 (step S21).
- step S21 the interpolation processing unit 48 is based on the information such as the command type, the command value indicating the coordinates of each drive axis of the tool, and the command value indicating the tool feed speed, among the information written in the shared area 434.
- the control information for the drive unit 10 is generated. Specifically, first, the machining path calculation unit 483, based on the type of command, the command value indicating the coordinates of each drive axis of the tool, and the current position of the tool, the command position that is the position indicated by the command value. Calculate the movement path of the tool up to.
- the movement amount calculation unit 484 calculates the movement amount of the tool per unit time for each drive axis based on the movement route calculated by the machining route calculation unit 483 and the tool feed speed.
- the movement amount calculation unit 484 outputs the movement amount of the tool per unit time calculated for each drive axis to the acceleration/deceleration processing unit 49.
- the interpolation processing unit 48 then confirms whether or not the execution condition of the interrupt operation is set (step S22), and when the execution condition is not set (step S22: No), moves the tool to the command position. Then (step S26), the operation ends.
- the interpolation processing unit 48 confirms whether it is the execution time of the interrupt operation (step S23).
- the interrupt timing determination unit 481 confirms whether or not it is the execution timing of the interrupt operation.
- the interrupt timing determination unit 481 writes in the shared area 434 the amount of movement of the tool since the tool started moving, or the amount of movement of the tool since the interrupt operation was last performed. It is confirmed whether or not the movement amount indicated by the interrupt interval set in the execution condition of the interrupt operation is reached. When the amount of movement of the tool reaches the amount of movement indicated by the interrupt interval, the interrupt timing determination unit 481 determines that it is the execution timing of the interrupt operation.
- the interpolation processing section 48 executes the interrupt operation (step S24). That is, the interpolation processing unit 48 generates control information for causing the machine tool to perform the interrupt operation. Specifically, first, the interrupt path calculation unit 482 calculates the path of the tool during the interrupt operation according to each command value included in the execution condition of the interrupt operation. For example, when the analysis processing unit 45 is in a state where the interrupt command of the sequence number N01 of the machining program 92 shown in FIG. The path of the tool that can be operated is calculated.
- the movement amount calculation unit 484 drives the movement amount of the tool per unit time based on the tool path calculated by the interrupt path calculation unit 482 and the lift-up speed indicated by the execution condition of the interrupt operation. Calculate for each axis.
- the movement amount calculation unit 484 outputs the movement amount of the tool per unit time calculated for each drive axis to the acceleration/deceleration processing unit 49.
- the movement amount calculation unit 484 calculates the movement amount of the tool per unit time until the interrupt operation ends, that is, until the tool returns to the position indicated by the execution condition of the interrupt operation, and the acceleration/deceleration processing unit. The process of outputting to 49 is repeated.
- the interpolation processing unit 48 returns to step S23 when the interrupt operation in step S24 ends. In addition, when it is not the execution timing of the interrupt operation (step S23: No), the interpolation processing section 48 confirms whether or not the tool has arrived at the command position (step S25). If the tool has not arrived at the command position (step S25: No), the interpolation processing section 48 returns to step S23. The interpolation processing unit 48 ends the operation when the tool has arrived at the command position (step S25: Yes).
- FIG. 10 is a diagram showing a first example of the interrupt operation performed by applying the numerical control device 1 according to the first embodiment.
- the interrupt operation shown in FIG. 10 corresponds to a case where the interrupt machining command includes an argument that specifies the return amount (m) during liftdown and an argument that specifies an arc as the shape of the tool path during liftdown. ..
- the return amount at the time of liftdown is specified by using the address M
- the shape of the tool path (arc locus) at the time of liftdown is specified by using the address P.
- the circular arc trajectory during liftdown passes through the tool position at the time of completing the liftup and the tool position at the time of completing the liftdown, and the tangent line at the tool position at the time of completing the liftdown is linearly interpolated. This is the same trajectory as the straight line corresponding to the command.
- FIG. 11 is a diagram showing a second example of the interrupt operation performed by applying the numerical control device 1 according to the first embodiment.
- the interrupt operation shown in FIG. 11 is a case where the interrupt machining command does not include an argument that specifies the return amount (m) during liftdown and an argument that specifies an arc as the shape of the tool path during liftdown. And the machining is performed according to the circular interpolation command (G02 code).
- the tool is lifted up every time the tool moves along the arc by the specified lift-up interval.
- the lift-up angle is an angle with respect to the tangent line at the position where the tool starts the lift-up.
- FIG. 12 is a diagram showing a third example of the interrupt operation performed by applying the numerical control device 1 according to the first embodiment.
- the interrupt operation shown in FIG. 12 corresponds to a case where the interrupt machining command includes an argument that specifies the return amount (m) at the time of lift down and machining is performed according to the circular interpolation command (G02 code).
- the difference from the interrupt operation shown in FIG. 11 is the position at which the tool returns by lift down. In the example shown in FIG. 12, the tool is returned to the position retracted by the designated return amount m from the position where the lift-up was started.
- FIG. 13 is a diagram showing a fourth example of the interrupt operation performed by applying the numerical control device 1 according to the first embodiment.
- the interrupt machining command includes an argument that specifies a return amount (m) during liftdown and an argument that specifies an arc as the shape of the tool path during liftdown, and the arc interpolation is performed. It corresponds to the case of machining according to the command (G02 code).
- the difference from the interrupt operation shown in FIG. 12 is the shape of the tool path during liftdown.
- the shape of the tool path at the time of lift-down is a point that becomes an arc locus.
- the arc locus during liftdown passes through the tool position at the time of completion of liftup and the tool position at the time of completion of liftdown, and the tangent at the tool position at the time of completion of liftdown is circularly interpolated. It is a locus which is a tangent to an arc corresponding to a command.
- FIG. 14 is a diagram illustrating a hardware configuration example of the control calculation unit 40 included in the numerical control device 1 according to the first embodiment.
- the control calculation unit 40 can be realized by the processor 101 and the memory 102 shown in FIG.
- the processor 101 are a CPU (Central Processing Unit, a central processing unit, a processing unit, an arithmetic unit, a microprocessor, a microcomputer, a DSP (Digital Signal Processor)) or a system LSI (Large Scale Integration).
- the memory 102 are RAM (Random Access Memory) or ROM (Read Only Memory).
- the control arithmetic unit 40 is realized by the processor 101 reading and executing a program stored in the memory 102 for executing the operation of the control arithmetic unit 40. It can also be said that this program causes a computer to execute the procedure or method of the control calculation unit 40.
- the memory 102 is also used as a temporary memory when the processor 101 executes various processes.
- the program executed by the processor 101 may be a computer program product having a computer-readable computer-readable non-transitory recording medium including a plurality of instructions for performing data processing. ..
- the program executed by the processor 101 causes a computer to execute data processing by a plurality of instructions.
- control calculation unit 40 may be realized by dedicated hardware.
- functions of the control calculation unit 40 may be partially implemented by dedicated hardware and partially implemented by software or firmware.
- the numerical control device 1 reads the newly defined interrupt machining command, and the operation commanded by various command values included in this command, specifically, the machining of the workpiece. Is temporarily interrupted, the tool is separated from the work, and then the drive unit 10 provided in the machine tool is controlled to perform an interrupt operation in which the tool is brought into contact with the work again and machining is restarted. Thereby, when the tool is separated from the work by the interrupt operation, the chips can be separated from the work. Further, since the execution condition of the interrupt operation is specified by using the interrupt machining command, the interrupt operation is not affected even if the rotation speed of the spindle is changed.
- the numerical controller 1 can continue the interrupt operation under the same execution condition even when the set value of the rotational speed of the spindle is changed, and removes chips generated by machining from the set value of the rotational speed of the spindle.
- a stable dividing operation can be realized without being affected by.
- Embodiment 2 the interrupt operation in the case of machining the outside of the work has been described. However, a hole or the like may be provided in the work as shown in FIG. 15 by turning. Such processing is called boring.
- the problem as shown in FIG. 16 may occur. That is, if the interrupt operation described in the first embodiment is performed during the boring process, when the boring tool, which is the tool, is lifted up, the tool and the object to be processed as shown in FIG. There is a possibility that the work will interfere. When interference occurs, adverse effects such as deterioration of machining accuracy and damage of tools may occur.
- the problem that the tool and the work interfere with each other is not limited to the case of boring.
- the processing shown in FIG. 17 is performed.
- the arrow indicates the path of the tool during the interrupt operation.
- FIG. 18 is a diagram illustrating a configuration example of the numerical control device 1a according to the second embodiment.
- the numerical controller 1a has a configuration in which an operating condition changing unit 51 is added to the numerical controller 1 according to the first embodiment.
- the operation condition changing unit 51 learns how to change the execution condition of the interrupt operation, which is performed when the interference between the tool and the work occurs in the interrupt operation. Specifically, the operation condition changing unit 51 learns the state in which the tool and the work interfere with each other during the interrupt operation, and changes the execution condition of the interrupt operation using the learning result.
- the operating condition changing unit 51 is realized by, for example, a machine learning device.
- An example of the execution condition of the interrupt operation is the lift amount of the tool.
- the operation condition changing unit 51 will be described by taking as an example the case where the lift amount of the tool is the execution condition of the interrupt operation.
- the operating condition changing unit 51 includes a state observing unit 511 and a learning unit 512.
- the state observing unit 511 detects the current value (j) output by the axis data output unit 50, the interrupt information (int) output by the interpolation processing unit 48, and the lift-up amount (r) output by the analysis processing unit 45. Is observed as a state variable.
- the current value (j) indicates the value of the current flowing through the servo motor 11 and the spindle motor 14 of the drive unit 10.
- the interrupt information (int) indicates whether or not the interrupt operation is being performed.
- the lift-up amount (r) indicates the lift-up amount of the tool when performing the interrupt operation.
- the current value (j) output by the axis data output unit 50 rapidly increases when the interference between the tool and the work occurs. Therefore, when the current value (j) suddenly increases while the interrupt information (int) indicates that the interrupt operation is being performed, the state observation unit 511 determines that interference between the tool and the work has occurred. ..
- the learning unit 512 learns how to change the lift-up amount according to the training data set created based on the interrupting information (int), the lift-up amount (r), and the state variable of the current value (j). That is, the learning unit 512 determines the lift-up amount when the observation results of the interrupt information (int), the lift-up amount (r), and the current value (j) by the state observing unit 511 become what. Learn what to change to.
- Any learning algorithm may be used when the learning unit 512 performs the above learning.
- Reinforcement learning is that an agent (action subject) in a certain environment observes the current state and determines the action to be taken. Agents get rewards from the environment by choosing actions, and learn strategies to get the most rewards through a series of actions.
- Q-learning and TD-learning are known as typical methods of reinforcement learning.
- a general update formula (action value table) of the action value function Q(s,a) is represented by the formula (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.
- r t+1 represents the reward received by the change of the environment
- ⁇ represents the discount rate
- ⁇ represents the learning coefficient.
- the update expression represented by the equation (1) is such that if the action value Q 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 the case of, the action value Q is reduced. In other words, 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. Thereby, the best action value in a certain environment is sequentially propagated to the action value in the previous environment.
- the learning unit 512 further includes a reward calculation unit 513 and a function updating unit 514.
- the reward calculation unit 513 calculates the reward (k) based on the interrupt information (int), the lift-up amount (r), and the current value (j). For example, when the current value (j) suddenly increases during the execution of the interrupt operation, the reward (k) is reduced. The reward calculation unit 513 reduces the reward (k) by giving a reward of “ ⁇ 1”, for example. On the other hand, when the current value (j) does not change significantly during the execution of the interrupt operation, the reward (k) is increased by giving the reward of “1”.
- the lift-up information, the lift-up amount (r), and the current value (j) used for learning are extracted according to a known method. When the reward is "-1", it is determined that the work and the tool interfere with each other, and the reward is the lowest.
- the function update unit 514 updates the function for determining the action (n), that is, the change content of the execution condition of the interrupt operation (the change content of the lift-up amount (r)) according to the reward calculated by the reward calculation unit 513.
- the learning unit 512 determines the amount of change in the lift-up amount (r) that maximizes the reward.
- the lift-up amount (r) updated using the determined change amount is transmitted from the learning unit 512 to the interrupt route calculation unit 482 of the interpolation processing unit 48 as the action (n).
- the interrupt path calculation unit 482 uses the updated lift-up amount (r) given from the learning unit 512 to calculate the movement path of the tool during the interrupt operation.
- the operation condition changing unit 51 of the numerical controller 1a determines the change amount of the lift amount (r) and changes the lift amount (r) so that the reward (k) becomes maximum.
- the components other than the operation condition changing unit 51 of the numerical control device 1a execute the same processes as the components with the same reference numerals included in the numerical control device 1 according to the first embodiment. Therefore, description of components other than the operation condition changing unit 51 is omitted.
- FIG. 19 is a flowchart showing an example of the operation of the operation condition changing unit 51 included in the numerical controller 1a according to the second embodiment.
- the operation condition changing unit 51 monitors whether or not the interrupt operation is being executed (step S31), and when it is not being executed (step S31: No), continues the monitoring.
- the operation condition changing unit 51 determines whether or not the interrupt operation is being performed by checking the interrupt information (int). When the interrupt operation is being performed (step S31: Yes), the operation condition changing unit 51 confirms whether or not the interference between the tool and the work has occurred (step S32). The operation condition changing unit 51 determines that the interference has occurred when the current value (j) rapidly increases. When the interference has not occurred (step S32: No), the operation condition changing unit 51 returns to step S31 and continues the operation.
- the operation condition changing unit 51 learns the condition for occurrence of the interference (step S33).
- the operating condition changing unit 51 learns the condition of occurrence of interference using the lift-up amount (r) and the current value (j).
- the operation condition changing unit 51 changes the execution condition of the interrupt operation based on the learning result in step S33 (step S34).
- the operation condition changing unit 51 is used by the interrupt path calculating unit 482 of the interpolation processing unit 48 to calculate the tool path during the interrupt operation from the next time onward. Change the lift-up amount of the tool to be smaller than the current value.
- the operation condition changing unit 51 may determine the change amount of the lift amount of the tool based on the current value (j).
- the operating condition changing unit 51 for example, increases the amount of change as the time required from the sudden increase of the current value (j) to the decrease becomes longer. After performing step S34, the operation condition changing unit 51 returns to step S31 and continues the operation.
- the operation condition changing unit 51 changes the lift-up amount of the tool so that the interference does not occur when detecting that the interference between the tool and the work occurs in the interrupt operation.
- the operation condition changing unit 51 may change the lift-up angle of the tool when detecting the occurrence of interference between the tool and the work. Further, both the lift-up amount of the tool and the lift-up angle of the tool may be changed. That is, the operation condition changing unit 51 changes at least one of the lift-up amount of the tool and the lift-up angle of the tool when the interference between the tool and the work occurs.
- the operation condition changing unit 51 when the operation condition changing unit 51 detects that the interference between the tool and the work occurs in the interrupt operation, it uniformly changes the lift-up amount of the tool, that is, the tool in all the interrupt operations. I decided to change the amount of lift-up, but it is not limited to this.
- the operation condition changing unit 51 also learns in which interrupt operation the interference between the tool and the work occurs among the repeatedly executed interrupt operations, and changes the lift-up amount of the tool only in the interrupt operation in which the interference occurs. You may do it.
- the state observing unit 511 of the operation condition changing unit 51 in addition to the above-described interrupt information (int), lift-up amount (r), and current value (j), for example, the numerical controller 1a is executing. Observe the instruction sequence number.
- the learning unit 512 learns the method of changing the lift-up amount by using the interrupt information (int), the lift-up amount (r), the current value (j), and the sequence number of the command being executed.
- the cycle time which is the time required to complete the machining of one work, is shortened. Leads to.
- the control calculation unit 40a included in the numerical control device 1a according to the second embodiment is similar to the hardware (see FIG. 14) that realizes the control calculation unit 40 included in the numerical control device 1 according to the first embodiment. Can be realized.
- the numerical control device 1a learns the condition in which the interference between the tool and the work occurs when the interrupt operation is executed, and changes the execution condition of the interrupt operation using the learning result. To do. As a result, it is possible to automatically eliminate the state where the tool and the work interfere with each other, and it is possible to prevent problems such as deterioration of machining accuracy and breakage of the tool.
- the operating condition changing unit 51 may exist outside the numerical control device 1a.
- an external machine learning device acquires learning data such as the interrupt information (int), the lift-up amount (r), and the current value (j) from the numerical control device 1 according to the first embodiment, and the interrupt data is acquired.
- the operation condition changing unit 51 may be realized by learning how to change the operation execution condition.
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Mechanical Engineering (AREA)
- Numerical Control (AREA)
- Turning (AREA)
Abstract
加工対象物を加工するための工具を駆動する複数の駆動軸を制御する数値制御装置(1)であって、加工プログラム(432)を解析する解析処理部(45)と、解析処理部(45)による加工プログラム(432)の解析結果に基づいて加工対象物を切削加工する際の工具の移動経路である加工経路を算出する加工経路算出部(483)と、工具が加工経路に沿って移動し、加工対象物を加工している途中に繰り返し実行する動作であり、工具を加工経路から一時的にリフトアップさせるインタラプト動作における工具の移動経路を解析結果に基づいて算出するインタラプト経路算出部(482)と、を備える。
Description
本発明は、旋削加工を行う工作機械を制御する数値制御装置および機械学習装置に関する。
旋削加工を行う工作機械を制御する従来の数値制御装置として、切削工具を加工経路に沿って低周波振動させながらワークを加工する制御を行う数値制御装置が提案されている(例えば、特許文献1)。
特許文献1に記載の数値制御装置は、工具への移動指令から単位時間あたりの指令移動量を算出し、振動条件から単位時間あたりの振動移動量を算出し、指令移動量と振動移動量とを合成して合成移動量を算出し、合成移動量に基づいて振動切削を制御する。特許文献1に記載の数値制御装置は、工具の振動周波数が一定の値を超えないように制御することで、ワークを切削するときに発生する切りくずを細かく分断する。これにより、切りくずが工具に絡み付くのを防ぎ、切りくずが絡み付くことによって工具の寿命が短くなるといった問題などが発生するのを防止できる。
特許文献1に記載されたような、切削工具を加工経路に沿って低周波振動させながらワークを加工する旋削加工では、切削工具を低周波振動させるときの周波数は主軸の回転数に依存する。そのため、主軸の回転数を自由に指定することができないという問題がある。例えば、主軸の回転数を上げて加工速度を上げようとした場合、切削工具の振動周波数も上昇するため、切りくずを分断することができなくなる可能性がある。
本発明は、上記に鑑みてなされたものであって、旋削加工を行う際に発生する切りくずを主軸の回転数の設定値の影響を受けることなく安定して分断することが可能な数値制御装置を得ることを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、加工対象物を加工するための工具を駆動する複数の駆動軸を制御する数値制御装置であって、加工プログラムを解析する解析処理部と、解析処理部による加工プログラムの解析結果に基づいて加工対象物を切削加工する際の工具の移動経路である加工経路を算出する加工経路算出部と、を備える。また、数値制御装置は、工具が加工経路に沿って移動し、加工対象物を加工している途中に繰り返し実行する動作であり、工具を加工経路から一時的にリフトアップさせるインタラプト動作における工具の移動経路を解析結果に基づいて算出するインタラプト経路算出部を備える。
本発明にかかる数値制御装置は、旋削加工で発生する切りくずを、主軸の回転数の設定値の影響を受けることなく安定して加工対象物から分断することができる、という効果を奏する。
以下に、本発明の実施の形態にかかる数値制御装置および機械学習装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。各実施の形態において、工作機械が備える切削工具を「工具」と記載し、工作機械が行う旋削加工を「加工」と記載する。
実施の形態1.
図1は、実施の形態1にかかる数値制御装置の構成例を示す図である。数値制御装置1は、入力操作部20と、表示部30と、制御演算部40と、を備える。図1では、数値制御装置1により制御される工作機械に設けられた駆動部10も併せて記載している。工作機械の駆動部10以外の構成要素については記載を省略している。
図1は、実施の形態1にかかる数値制御装置の構成例を示す図である。数値制御装置1は、入力操作部20と、表示部30と、制御演算部40と、を備える。図1では、数値制御装置1により制御される工作機械に設けられた駆動部10も併せて記載している。工作機械の駆動部10以外の構成要素については記載を省略している。
工作機械に設けられた駆動部10は、加工対象物であるワークおよび工具のいずれか一方または両方を少なくとも2軸方向に駆動する機構である。ここでは、数値制御装置1上で規定された各軸方向にワークおよび工具の一方または両方を移動させる複数のサーボモータ11と、各サーボモータ11の回転子の位置および速度を検出する複数の検出器12と、を備える。また、駆動部10は、検出器12が検出した位置および速度に基づいてサーボモータ11の制御を行うX軸サーボ制御部13X,Z軸サーボ制御部13Z,…を備える。なお、以下では、駆動軸の方向を区別する必要がない場合、各軸に対応するサーボ制御部(X軸サーボ制御部13X,Z軸サーボ制御部13Z,…)を単にサーボ制御部13と表記する。また、駆動部10は、ワークを回転させるための主軸を回転させる主軸モータ14と、主軸モータ14の回転子の位置および回転数を検出する検出器15と、検出器15が検出した位置および回転数に基づいて主軸モータ14を制御する主軸サーボ制御部16と、を備える。
数値制御装置1の説明に戻り、入力操作部20は、数値制御装置1に情報を入力する手段である。入力操作部20は、キーボード、ボタン、マウスなどによって構成され、ユーザによる数値制御装置1に対するコマンド、加工プログラム、パラメータなどの入力を受け付け、制御演算部40に受け渡す。
表示部30は、液晶表示装置などによって構成され、制御演算部40によって処理された情報の表示などを行う。
制御演算部40は、入力制御部41と、データ設定部42と、記憶部43と、画面処理部44と、解析処理部45と、機械制御信号処理部46と、PLC(Programmable Logic Controller)47と、補間処理部48と、加減速処理部49と、軸データ出力部50と、を備える。なお、PLC47は制御演算部40の外部に配置されていてもよい。
入力制御部41は、入力操作部20から入力される情報を受け付ける。データ設定部42は、入力制御部41が受け付けた情報を記憶部43に格納する。たとえば入力された内容が加工プログラム432の編集の場合には、記憶部43が保持している加工プログラム432に編集された内容を反映させ、パラメータが入力された場合には記憶部43が保持しているパラメータ431を更新する。
記憶部43は、制御演算部40の処理で使用されるパラメータ431、実行される加工プログラム432、表示部30に表示させる画面表示データ433などを記憶する。ここで、本実施の形態にかかる数値制御装置1は、一般的な数値制御のための指令に加えて、新たに定義されるインタラプト加工指令に従って工作機械を制御することが可能である。そのため、加工プログラム432には、インタラプト加工指令が記述されている場合がある。インタラプト加工指令は、工作機械がワークを加工している途中で一時的に加工を中断して工具をワークから引き離した状態とし、その後、工具とワークが接触した状態に戻して加工を再開する動作の実行を指示する指令である。この一連の動作を本明細書では「インタラプト動作」と称する場合がある。ここで、リフトアップとは、工具を加工経路に沿って動かしながら加工している際に、加工経路上から工具を持ち上げることを言う。また、インタラプト動作において工具をワークから引き離した状態とする動作を「工具のリフトアップ」または単に「リフトアップ」と称する場合がある。また、インタラプト動作において工具がワークから離れた状態から工具とワークが接触した状態に戻す動作を「工具のリフトダウン」または単に「リフトダウン」と称する場合がある。インタラプト加工指令の詳細およびインタラプト動作の詳細については別途説明する。
また、記憶部43には、パラメータ431、加工プログラム432および画面表示データ433以外のデータを記憶する共有エリア434が設けられている。この共有エリア434には、制御演算部40が駆動部10を制御する処理で生成されるデータが一時的に格納される。画面処理部44は、記憶部43が保持する画面表示データ433を表示部30に表示させる制御を行う。
解析処理部45は、インタラプト加工指令解析部451および一般指令解析部452を備える。解析処理部45は、1以上のブロックを含む加工プログラム432を記憶部43から読み込み、読み込んだ加工プログラム432をインタラプト加工指令解析部451または一般指令解析部452で解析する。インタラプト加工指令解析部451は、加工プログラム432に含まれるインタラプト加工指令を解析し、解析結果を記憶部43の共有エリア434に書き込む。一般指令解析部452は、加工プログラム432に含まれるインタラプト加工指令以外の指令を解析し、解析結果を記憶部43の共有エリア434に書き込む。以下、加工プログラム432に含まれるインタラプト加工指令以外の指令を一般指令と称する場合がある。
機械制御信号処理部46は、解析処理部45によって、数値制御軸である駆動軸を動作させる指令以外の機械を動作させる指令としての補助指令を読み込んだ場合に、補助指令が指令されたことをPLC47に通知する。補助指令の例は、MコードまたはTコードである。
PLC47は、機械制御信号処理部46から補助指令が指令されたことの通知を受けると、その補助指令に対応する処理を実行する。PLC47は、機械動作が記述されたラダープログラムを保持している。PLC47は、補助指令であるTコードまたはMコードを受付けると、ラダープログラムに従って補助指令に対応する処理を実行する。PLC47は、補助指令に対応する処理を実行した後、加工プログラム432の次のブロックを実行させるために、補助指令に対応する処理が完了したことを示す完了信号を機械制御信号処理部46に送る。
制御演算部40では、解析処理部45と、機械制御信号処理部46と、補間処理部48とは、記憶部43を介して接続されている。解析処理部45、機械制御信号処理部46および補間処理部48は、記憶部43の共有エリア434を介して、各種情報の受け渡しを行う。以下では、解析処理部45、機械制御信号処理部46および補間処理部48の間で情報の受け渡しを説明する際に、記憶部43が介されていることの記載を省略する場合がある。
補間処理部48は、工具の移動経路に関連する引数を含む指令を解析処理部45が解析した場合、解析した指令に含まれる引数を使用し、補間処理により工具の移動経路を算出する。工具の移動経路に関連する引数を含む指令とは、工具の位置を示す引数、工具の移動速度を示す引数、補間処理で使用する補間方法を示す引数、などを1つ以上含む指令である。後述するインタラプト加工指令も工具の移動経路に関連する引数を含む指令に該当する。
補間処理部48は、インタラプトタイミング判定部481、インタラプト経路算出部482、加工経路算出部483および移動量算出部484を備える。
インタラプトタイミング判定部481は、加工プログラム432に含まれるインタラプト加工指令を解析処理部45のインタラプト加工指令解析部451が解析して得られる解析結果に基づいて、インタラプト動作を実行するタイミングを判定する。
インタラプト経路算出部482は、インタラプト加工指令を解析処理部45のインタラプト加工指令解析部451が解析して得られる解析結果に基づいて、インタラプト動作中の工具の移動経路を算出する。
加工経路算出部483は、加工プログラム432に含まれる一般指令を解析処理部45の一般指令解析部452が解析して得られる解析結果に基づいて、インタラプト動作を行っていない時の工具の移動経路を算出する。加工経路算出部483が算出する工具の移動経路は、ワークを加工する際の工具の移動経路、すなわち、工具がワークを実際に切削するときの工具の移動経路であり、加工経路に相当する。
移動量算出部484は、インタラプト経路算出部482が算出した工具の移動経路および加工経路算出部483が算出した工具の移動経路と、引数によって指令される工具の移動速度とに基づいて、予め定められた長さの単位時間あたりに工具が移動する距離を示す移動量を、駆動軸ごとに算出する。すなわち、移動量算出部484は、駆動軸ごとに、単位時間あたりに工具を移動させる距離を算出する。例えば、駆動軸がX軸およびZ軸の2つである場合、移動量算出部484は、X軸に沿って単位時間あたりに工具が移動する距離を示すX軸の移動量と、Z軸に沿って単位時間あたりに工具が移動する距離を示すZ軸の移動量とを算出する。移動量算出部484は、算出した各駆動軸の移動量を加減速処理部49に出力する。
加減速処理部49は、補間処理部48の移動量算出部484から受け取った各駆動軸の移動量を、予め指定された加減速パターンに従って加減速を考慮した単位時間あたりの移動指令に変換する。
軸データ出力部50は、加減速処理部49から出力される単位時間あたりの移動指令を、各駆動軸を制御するサーボ制御部13(X軸サーボ制御部13X,Z軸サーボ制御部13Z,…)に出力する。なお、各サーボ制御部13は、加減速処理部49から移動指令を受け取ると、受け取った移動指令に従い、サーボモータ11を制御する。
つづいて、インタラプト加工指令について説明する。図2は、実施の形態1にかかる数値制御装置1で実行される加工プログラムに含ませることが可能なインタラプト加工指令の構成例を示す図である。
図2に示したように、本実施の形態では、G150コード91がインタラプト加工指令を示すものとする。また、G150コード91は、引数を示すアドレスとして、X,Z,I,D,R,A,Q,M,E,Pを含ませることが可能な構成である。図2に示したG150コード91の各アドレスのうち、右側にアンダースコア‘_’が付されているものには、アンダースコアの部分に数値が配置される。
数値制御装置1は、インタラプト加工指令を実行してインタラプト動作の実施条件を設定すると、インタラプト加工指令を新たに実行してインタラプト動作の実施条件の設定を変更するか、設定をキャンセルする指令を実行するまで、同じ実施条件でインタラプト動作を繰り返すよう、駆動部10を制御する。設定をキャンセルするための指令の一例は、引数を全て省略したG150コード(G150の単独指令)とすることができる。以下、インタラプト加工指令(G150コード)に含ませることが可能な各アドレスについて説明する。
アドレスXおよびZは、インタラプト動作の対象の軸を指定するために用いられる。XはX軸を示し、ZはZ軸を示す。例えば、G150コードがXを含み、Zを含まない場合、数値制御装置1は、X軸のみを対象としたインタラプト動作を行うよう、駆動部10を制御する。すなわち、数値制御装置1は、工具がX軸方向にのみ移動してワークから離れるよう、駆動部10を制御する。また、G150コードがXおよびZを含む場合、数値制御装置1は、X軸およびZ軸を対象としたインタラプト動作を行うよう、駆動部10を制御する。インタラプト動作で工具が移動する距離は、後述するアドレスRで指定される。設定をキャンセルするための指令として用いる場合を除いて、G150コードは、XおよびZの少なくとも一方を含む必要がある。なお、G150コードがXまたはZのいずれか一方のみを含む場合、後述する各アドレスを用いて指令される指令値に従った動作が不可能となる場合がある。そのため、G150コードにはXおよびZの双方を含ませるのが望ましい。
アドレスIは、インタラプト動作を繰り返すタイミングを指定するために用いられる。具体的には、インタラプト動作を行ってから次にインタラプト動作を行うまでの間の工具の移動量を指定するためにアドレスIが用いられる。Iに添えられる数値が工具の移動量を示す。工具の移動量は、工具が移動する距離または時間で指定可能とする。例えば、移動量を距離で指定された場合、数値制御装置1は、指定された距離だけ工具が移動するごとにインタラプト動作を行うよう、駆動部10を制御する。アドレスIが工具の移動量として距離と時間のどちらを示すかは、アドレスDで指定される。
アドレスDは、移動モード、すなわち、アドレスIが示す移動量が距離と時間のどちらであるかを指定するために用いられる。一例として、本実施の形態では、D0の場合は距離を指定し、D1の場合に時間を指定することとする。
アドレスRは、工具のリフトアップ量、すなわち、工具をワークから引き離す際に工具をどれだけ移動させるかを指定するために用いられる。Rに添えられる数値が工具のリフトアップ量を示す。リフトアップ動作では、指定されたリフトアップ量が示す距離だけ、工具を移動させる。よって、リフトアップ量は、工具をワークから引き離す際の工具の移動量である。リフトアップ量は、通常、加工時の工具の切り込み量よりも大きな値を指定する。これにより、リフトアップ動作時に工具がワークから離れることになり、工具がワークから離れる際に切り屑が分断される。
アドレスAは、工具のリフトアップ角度、すなわち、工具をリフトアップする時の角度を指定するために用いられる。Aに添えられる数値が工具のリフトアップ角度を示す。角度は、加工中の工具の移動方向に対する角度とする。例えば、工具がX軸と平行に移動しながら加工を行っている場合、アドレスAで指定する角度は、X軸に対する角度となる。
アドレスQは、リフトアップ後のドウェル時間、すなわち、上記のアドレスRで指定されたリフトアップ量だけ工具をリフトアップした後、工具が移動を停止した状態を維持する時間の長さを指定するために用いられる。Qに添えられる数値がリフトアップ後のドウェル時間を示す。ドウェル時間の指定は主軸の回転数で行う。例えば、「Q1」の場合のドウェル時間は、主軸が1回転するのに要する時間となる。数値制御装置1は、工具のリフトアップが終了した後、リフトアップ後のドウェル時間として指定された時間が経過すると(指定された数だけ主軸が回転すると)、工具のリフトダウンを開始するよう、駆動部10を制御する。
アドレスMは、リフトダウン戻り位置、すなわち、リフトダウン動作で工具をどの位置に戻すかを指定するために用いられる。Mに添えられる数値がリフトダウン戻り位置を示す。リフトダウン戻り位置は、リフトアップを開始した時点の工具の位置から、リフトダウンで工具が戻る位置までの距離(戻り量)を示す。アドレスMを省略した場合、数値制御装置1は、リフトアップを開始した位置と同じ位置に工具が戻るよう、駆動部10を制御する。
アドレスEは、工具のリフトアップ速度、すなわち、リフトアップする時の工具の移動速度を指定するために用いられる。Eに添えられる数値が工具のリフトアップ速度を示す。なお、リフトダウンする時の工具の移動速度はリフトアップする時の工具の移動速度と同じとする。
アドレスPは、工具をリフトダウンさせる時の工具の経路を直線形状と円弧形状のどちらとするかを指定するために用いられる。インタラプト加工指令にアドレスPが含まれる場合、数値制御装置1は、リフトダウン時の工具経路の形状が円弧となるよう、駆動部10を制御する。一方、インタラプト加工指令にアドレスPが含まれない場合、数値制御装置1は、リフトダウン時の工具経路の形状が直線となるよう、駆動部10を制御する。
つづいて、本実施の形態にかかる数値制御装置1が実現する加工動作の具体例について、図3および図4を用いて説明する。図3は、実施の形態1にかかる数値制御装置1が工作機械を制御して行う加工動作の第1の例を示す図である。図4は、図3に示した加工動作を実現する加工プログラムの一例を示す図である。
図3において、「i」はリフトアップ間隔を示し、「a」はリフトアップ角度を示し、「r」はリフトアップ量を示す。また、図3に示した<1>~<6>は、図4に示した<1>~<6>に対応する。図3に示すように、リフトアップ角度は、工具が移動してきた加工経路とリフトアップするときの工具の移動経路との間の角度を言う。本実施の形態では、リフトアップ角度は0°より大きく、90°以下である。
図4に示した加工プログラム92において、「G0」は位置決め指令を示す。「G0」に続く「X400」、「Z10」などが各駆動軸の位置を示す。アドレスXがX軸に対応し、アドレスZがZ軸に対応する。「T0101」は工具指令を示す。Tに続く最初の2桁が工具番号を示し、残りの2桁が工具の位置を補正するためのオフセット量を示す。
シーケンス番号N01の「G150」は上述したインタラプト加工指令である。図4に示した例では、引数として、「X」,「Z」,「I40.」,「D0」,「R20.」,「A45.」,「Q1」,「E10.」が含まれる。このインタラプト加工指令では、インタラプト動作の対称軸としてX軸およびZ軸が指定され、工具が40mm移動するごとにインタラプト動作を実行するよう指定されている。すなわち、インタラプト動作を実施する間隔の指定が40mmとされている。また、工具のリフトアップ量が20mmに指定され、工具のリフトアップ角度が45°に指定され、工具のリフトアップ速度が10mm/revに指定されている。また、リフトアップ後のドウェル時間が主軸1回転相当の時間に指定され、リフトダウンでは、リフトアップ開始位置に戻る経路が直線経路に指定されている。数値制御装置1は、インタラプト加工指令を実行すると、指令に含まれる引数で指定された条件に従ってインタラプト動作を行うよう動作設定を行い、駆動部10の制御を開始する。
シーケンス番号N02~N06に対応する指令は、直線補間の指令である。シーケンス番号N02の「G01 Z-100. F2.」において、「Z-100.」は、工具のZ軸上の座標を示す指令値、「F2.」は主軸1回転あたりの工具の送り速度を示す指令値である。具体的には、「G01 Z-100. F2.」は、Z軸上の座標が-100となるまで、送り速度2mm/revで工具を移動させることを示す直線補間の指令である。なお、工具のX軸上の座標は変化しないため、シーケンス番号N02の指令では、工具のX軸上の座標を示す指令値が省略されている。数値制御装置1がシーケンス番号N02の指令を実行することによって、図3に示した<2>の区間を工具が移動する。ここで、数値制御装置1は、シーケンス番号N02の指令を実行する前に、インタラプト加工指令を実行している。そのため、数値制御装置1は、図3に示した<2>の区間を工具が移動している間にインタラプト動作の実施条件が満たされると、すなわち、工具の移動量がインタラプト間隔で指定された移動量に達すると、インタラプト動作を実施して工具をリフトアップさせる。図3および図4に示した例では、数値制御装置1は、工具を40mm移動させるごとに、リフトアップ角度45°で工具をリフトアップさせる。リフトアップ角度は、工具の移動方向の逆方向に対する角度である。このときの工具のリフトアップ速度は10mm/rev、リフトアップ量は20mmである。また、数値制御装置1は、工具を20mmリフトアップさせた後、主軸が1回転するまで工具を停止させ、工具を元の位置、すなわち、リフトアップの開始位置に戻す。このとき、数値制御装置1は、移動距離が最短となる直線経路で工具が元の位置に戻るよう、駆動部10を制御する。<2>の区間で工具が移動する距離は110mmであるため、この区間ではインタラプト動作を2回行うことになる。
また、シーケンス番号N03の「X200. Z-150.」は、X軸上の座標が200となり、Z軸上の座標が-150となるまで、送り速度2mm/revで工具を移動させることを示す直線補間の指令である。なお、「X200. Z-150.」は、直前のシーケンス番号N02と同じ直線補間の指令であるため、直線補間の指令を示す「G01」を省略している。また、送り速度の変更が無いため、送り速度の指令値「F2.」も省略している。数値制御装置1がシーケンス番号N03の指令を実行することによって、図3に示した<3>の区間を工具が移動する。このとき、<2>の区間を工具が移動する場合と同様に、数値制御装置1は、インタラプト動作の実施条件が満たされると、工具をリフトアップさせる。数値制御装置1は、上述した<2>の区間と同様の方法で、工具をリフトアップさせる。<3>の区間ではインタラプト動作を1回行う。
シーケンス番号N04の「X150. Z-200.」は、X軸上の座標が150となり、かつZ軸上の座標が-200となるまで、送り速度2mm/revで工具を移動させることを示す直線補間の指令である。シーケンス番号N03の指令と同様に、「G01」および「F2.」が省略されている。数値制御装置1がシーケンス番号N04の指令を実行することによって、図3に示した<4>の区間を工具が移動する。このとき、<2>および<3>の区間を工具が移動する場合と同様に、数値制御装置1は、インタラプト動作の実施条件が満たされると、工具をリフトアップさせる。数値制御装置1は、上述した<2>および<3>の区間と同様の方法で、工具をリフトアップさせる。<4>の区間ではインタラプト動作を1回行う。
シーケンス番号N05の「Z-300.」は、Z軸上の座標が-300となるまで、送り速度2mm/revで工具を移動させることを示す直線補間の指令である。シーケンス番号N03の指令と同様に、「G01」および「F2.」が省略されている。数値制御装置1がシーケンス番号N05の指令を実行することによって、図3に示した<5>の区間を工具が移動する。このとき、<2>~<4>の区間を工具が移動する場合と同様に、数値制御装置1は、インタラプト動作の実施条件が満たされると、工具をリフトアップさせる。数値制御装置1は、上述した<2>~<4>の区間と同様の方法で、工具をリフトアップさせる。<5>の区間ではインタラプト動作を2回行う。
シーケンス番号N06の「X300.」は、X軸上の座標が300となるまで、送り速度2mm/revで工具を移動させることを示す直線補間の指令である。シーケンス番号N03の指令と同様に、「G01」および「F2.」が省略されている。数値制御装置1がシーケンス番号N06の指令を実行することによって、図3に示した<6>の区間を工具が移動する。このとき、<2>~<5>の区間を工具が移動する場合と同様に、数値制御装置1は、インタラプト動作の実施条件が満たされると、工具をリフトアップさせる。数値制御装置1は、上述した<2>~<5>の区間と同様の方法で、工具をリフトアップさせる。<6>の区間ではインタラプト動作を2回行う。
シーケンス番号N07の「G150」は、引数が全て省略されているため、インタラプト加工の終了、すなわち、インタラプト動作をキャンセルするためのキャンセル指令である。数値制御装置1は、シーケンス番号N07のキャンセル指令を実行すると、インタラプト動作の実施条件の設定をキャンセルする。
つづいて、本実施の形態にかかる数値制御装置1が実現する加工動作の第2の例について、図5および図6を用いて説明する。図5は、実施の形態1にかかる数値制御装置1が工作機械を制御して行う加工動作の第2の例を示す図である。図6は、図5に示した加工動作を実現する加工プログラムの一例を示す図である。
図5において、「i」はインタラプト動作を実施する間隔であるリフトアップ間隔を示し、「a」はリフトアップ角度を示し、「r」はリフトアップ量を示す。また、図5に示した<1>~<6>は、図6に示した<1>~<6>に対応する。
図6に示した加工プログラム93のシーケンス番号N01の指令よりも前の指令は図4に示した加工プログラム92と同様であるため、説明を省略する。
シーケンス番号N01の「G150」は上述したインタラプト加工指令である。図6に示した例では、引数として、「X」,「Z」,「I40.」,「D0」,「R20.」,「A45.」,「E10.」,「P」が含まれる。このインタラプト加工指令では、インタラプト動作の対称軸としてX軸およびZ軸が指定され、工具が40mm移動するごとにインタラプト動作を実行するよう指定されている。すなわち、インタラプト動作を実施する間隔の指定が40mmとされている。また、工具のリフトアップ量が20mmに指定され、工具のリフトアップ角度が45°に指定され、工具のリフトアップ速度が10mm/revに指定されている。以上の条件は、図3に示した第1の例におけるインタラプト動作と同様である。一方、リフトアップ後のドウェル時間は指定されていない。また、リフトダウンでは、リフトアップの開始位置に戻る経路が円弧に指定されている。数値制御装置1は、インタラプト加工指令を実行すると、指令に含まれる引数で指定された条件に従ってインタラプト動作を行うよう動作設定を行い、駆動部10の制御を開始する。
図6に示したシーケンス番号N02~N04の指令は、図4に示した同じシーケンス番号の指令と同一である。そのため、図5に示した<2>~<4>の区間において工具がワークを加工する時の経路は、図3に示した<2>~<4>の区間において工具がワークを加工する時の経路と同一である。ただし、インタラプト動作の条件が一部異なるため、インタラプト動作時の工具の経路、具体的には、リフトダウンする時の工具の経路が、図3に示した第1の例とは異なる。
図5および図6に示した例の場合、数値制御装置1は、工具を40mm移動させるごとに、リフトアップ角度45°で、かつリフトアップ速度10mm/revで、リフトアップ量20mmだけ工具をリフトアップさせる。ここまでの動作は図3および図4に示した例と同様である。数値制御装置1は、リフトアップ量20mmだけ工具をリフトアップさせた後、すぐに、工具を元の位置、すなわち、リフトアップの開始位置に戻す。数値制御装置1は、このときの工具の経路が円弧となるよう、駆動部10を制御する。数値制御装置1は、リフトダウンを開始する時点の工具の座標と、工具の元の位置の座標(リフトダウン終了時点の工具の座標)とを用いて、円弧補間により工具の経路を求める。リフトアップした工具が元の位置に戻る経路を円弧とする場合、工具とワークが再度接触する際にワークの表面に筋目がつきにくくすることができ、加工精度の向上を実現できる。
図6に示したシーケンス番号N05の「Z-230.」は、Z軸上の座標が-230となるまで、送り速度2mm/revで工具を移動させることを示す直線補間の指令である。数値制御装置1が図6に示したシーケンス番号N05の指令を実行することによって、図5に示した<5>の区間を工具が移動する。ここで、図5の<5>の区間で工具が移動する距離は30mmであり、インタラプト加工指令で指定されたインタラプト動作の実施間隔40mmよりも短い。そのため、図5の<5>の区間ではリフトアップを行わない。
図6に示したシーケンス番号N06の「G02 X300. Z-300. I70. F2.」は、X軸上の座標が300となり、かつZ軸上の座標が-300となるまで、送り速度2mm/revで工具を移動させることを示す、時計回りの円弧補間の指令である。数値制御装置1が図6に示したシーケンス番号N06の指令を実行することによって、図5に示した<6>の区間を工具が移動する。この場合も、数値制御装置1は、インタラプト動作の実施間隔に設定された40mmだけ工具が移動するごとに、インタラプト動作を実施する。この時のリフトアップ角度は、リフトアップを開始する時点の工具の位置における円弧の接線に対する角度とする。図5に示した<6>の区間では、リフトアップを2回行うことになる。
図6に示したシーケンス番号N07の「G150」は、図4に示したシーケンス番号N07の「G150」と同様の指令(キャンセル指令)である。
つづいて、本実施の形態にかかる数値制御装置1が実現する加工動作の第3の例について、図7を用いて説明する。図7は、実施の形態1にかかる数値制御装置1が工作機械を制御して行う加工動作の第3の例を示す図である。
図7に示した第3の例は、図3に示した第1の例と比較して、リフトアップを行った後の工具の戻り位置が異なる。すなわち、図7に示した例の場合、数値制御装置1は、リフトアップを開始した位置から、インタラプト加工指令のリフトダウン戻り位置(アドレスM)で指定された距離mだけ後退した位置に工具を戻す。例えば、図7に示したm=5(リフトアップ戻り位置が5mm)の場合、第3の例の加工を行うためには、第1の例の加工を行うための加工プログラム(図4に示した加工プログラム92)のシーケンス番号N01の「G150 X Z I40. D0 R20. A45. Q1 E10.」を「G150 X Z I40. D0 R20. A45. Q1 M5 E10.」とすればよい。図7に示したような、リフトアップした工具を元の位置(リフトアップを開始した位置)よりも後退した位置に戻して加工を再開する場合、リフトアップを行っても切りくずが切り落とされずにワーク上に残っていたとしても、加工を再開する際に、残っていた切りくずを切り落とすことができる。
つづいて、本実施の形態にかかる数値制御装置1の構成要素のうち、上述したインタラプト加工指令に従って工作機械を制御する動作を実現するための構成要素、具体的には、解析処理部45および補間処理部48について、詳しく説明する。
図8は、実施の形態1にかかる数値制御装置1が備える解析処理部45の動作の一例を示すフローチャートである。解析処理部45は、例えば、加工プログラム432に従って工作機械を制御する動作の開始を指示する操作を入力操作部20がユーザから受け付けると、図8に示した動作を開始する。
解析処理部45は、動作を開始すると、まず、加工プログラム432を記憶部43から読み出して解析する(ステップS11)。具体的には、解析処理部45は、加工プログラム432を解析して1つの指令である1ブロックを読み出す。
解析処理部45は、次に、読み出した指令がインタラプト加工指令であるか否かを確認し(ステップS12)、インタラプト加工指令の場合、すなわち、G150コードである場合(ステップS12:Yes)、インタラプト加工のキャンセル指令に該当するか否かを確認する(ステップS13)。このステップS13および後述するステップS14~S16の処理は、インタラプト加工指令解析部451が行う。インタラプト加工指令解析部451は、G150コードがアドレスXなどの引数を一切含まない単独指令の場合、キャンセル指令に該当すると判断する。
インタラプト加工指令解析部451は、キャンセル指令に該当しない場合(ステップS13:No)、インタラプト加工指令から指令値を抽出する(ステップS14)。ここでの指令値とは、インタラプト加工指令に含まれる引数で与えられる情報であり、例えば、アドレスXおよびZで示されるインタラプト動作の対象の軸を示す情報、アドレスIで示されるインタラプト動作を繰り返すタイミングの情報、などが該当する。
インタラプト加工指令解析部451は、次に、ステップS14で抽出した指令値を用いて、インタラプト動作の実施条件を設定する(ステップS15)。具体的には、インタラプト加工指令解析部451は、抽出した指令値を、記憶部43の共有エリア434に書き込むことで、インタラプト動作の実施条件を設定する。このとき、インタラプト加工指令解析部451は、各指令値を、共有エリア434内の予め定められた領域に書き込む。なお、インタラプト動作の実施条件が既に設定されている状態でインタラプト加工指令解析部451がステップS15を実行すると、インタラプト動作の実施条件が更新される。
また、インタラプト加工指令解析部451は、読み出した指令がインタラプト加工のキャンセル指令に該当する場合(ステップS13:Yes)、インタラプト動作の実施条件の設定を解除する(ステップS16)。具体的には、インタラプト加工指令解析部451は、記憶部43の共有エリア434に書き込まれている、インタラプト動作の実施条件を消去する。なお、インタラプト動作の実施条件の設定が有効であることを示すフラグを共有エリア434内に設けておき、このフラグをインタラプト加工指令解析部451がクリアすることで、インタラプト動作の実施条件の設定を解除するようにしてもよい。この場合、インタラプト加工指令解析部451は、上記のステップS15において、インタラプト加工指令から抽出した指令値を共有エリア434へ書き込む処理と、インタラプト動作の実施条件の設定が有効であることを示すフラグを設定する処理とを行う。
また、解析処理部45は、加工プログラム432を解析して読み出した指令がインタラプト加工指令ではない場合(ステップS12:No)、読み出した指令から指令値を抽出し(ステップS17)、抽出した指令値に従い、ワークを加工する動作の動作条件を設定する(ステップS18)。これらのステップS17およびS18は、一般指令解析部452が行う。例えば、読み出した指令が直線補間の指令であるG01コードの場合、一般指令解析部452は、ステップS17において、工具の座標を示す指令値および工具の送り速度を示す指令値を抽出する。また、一般指令解析部452は、ステップS18において、抽出した指令値を、共有エリア434内の予め定められた領域に書き込むことで、動作条件を設定する。このとき、一般指令解析部452は、読み出した指令を示す情報、すなわち、直線補間の指令を示す情報も共有エリア434に書き込む。一般指令解析部452は、読み出した指令がG01コードで示される直線補間の指令とは異なる場合も同様に、読み出した指令から指令値を抽出し、抽出した指令値と、読み出した指令の種類を示す情報とを共有エリア434内の予め定められた領域に書き込むことにより、動作条件を設定する。なお、ワークを加工する動作の動作条件は、一般指令解析部452がステップS18を実行するごとに更新される。以下の説明では、「指令の種類を示す情報」を単に「指令の種類」と記載する場合がある。
解析処理部45は、ステップS15、S16およびS18を実行した後は、ステップS11に戻り、次の指令を読み出して動作を継続する。
図9は、実施の形態1にかかる数値制御装置1が備える補間処理部48の動作の一例を示すフローチャートである。図9のフローチャートは、数値制御装置1が工作機械の駆動部10を制御してワークを加工する場合の補間処理部48の動作を示す。
補間処理部48は、例えば、記憶部43の共有エリア434に書き込まれている情報を定期的に確認し、工具の座標を示す指令値が更新されたことを検出すると、図9に示した動作を開始する。
補間処理部48は、動作を開始すると、共有エリア434に書き込まれている指令値が示す位置へ工具を移動させる制御を開始する(ステップS21)。ステップS21において、補間処理部48は、共有エリア434に書き込まれている情報のうち、指令の種類、工具の各駆動軸の座標を示す指令値および工具の送り速度を示す指令値といった情報に基づいて、駆動部10に対する制御情報を生成する。具体的には、まず、加工経路算出部483が、指令の種類と、工具の各駆動軸の座標を示す指令値と、工具の現在位置とに基づいて、指令値が示す位置である指令位置までの工具の移動経路を算出する。次に、移動量算出部484が、加工経路算出部483で算出された移動経路と、工具の送り速度とに基づいて、単位時間あたりの工具の移動量を、駆動軸ごとに算出する。移動量算出部484は、駆動軸ごとに算出した単位時間あたりの工具の移動量を加減速処理部49に出力する。
補間処理部48は、次に、インタラプト動作の実施条件が設定されているか否かを確認し(ステップS22)、実施条件が設定されていない場合(ステップS22:No)、指令位置まで工具を移動させ(ステップS26)、動作を終了する。
一方、インタラプト動作の実施条件が設定されている場合(ステップS22:Yes)、補間処理部48は、インタラプト動作の実施タイミングか否かを確認する(ステップS23)。インタラプト動作の実施タイミングか否かの確認は、インタラプトタイミング判定部481が行う。ステップS23において、インタラプトタイミング判定部481は、工具が移動を開始してからの工具の移動量、または、インタラプト動作を前回実施してからの工具の移動量が、共有エリア434に書き込まれているインタラプト動作の実施条件に設定されているインタラプト間隔が示す移動量に達したか否かを確認する。インタラプトタイミング判定部481は、工具の移動量が、インタラプト間隔が示す移動量に達した場合、インタラプト動作の実施タイミングと判断する。
補間処理部48は、インタラプト動作の実施タイミングである場合(ステップS23:Yes)、インタラプト動作を実施させる(ステップS24)。すなわち、補間処理部48は、工作機械にインタラプト動作を実施させるための制御情報を生成する。具体的には、まず、インタラプト経路算出部482が、インタラプト動作の実施条件に含まれる各指令値に従い、インタラプト動作中の工具の経路を算出する。例えば、解析処理部45が図4に示した加工プログラム92のシーケンス番号N01のインタラプト指令を読み出してインタラプト動作の実施条件を設定した状態の場合、インタラプト経路算出部482は、図3に示したインタラプト動作となるような工具の経路を算出する。次に、移動量算出部484が、インタラプト経路算出部482で算出された工具の経路と、インタラプト動作の実施条件が示すリフトアップ速度とに基づいて、単位時間あたりの工具の移動量を、駆動軸ごとに算出する。移動量算出部484は、駆動軸ごとに算出した単位時間あたりの工具の移動量を加減速処理部49に出力する。ステップS24において、移動量算出部484は、インタラプト動作が終了するまで、すなわち、インタラプト動作の実施条件が示す位置に工具が戻るまで、単位時間あたりの工具の移動量を算出して加減速処理部49に出力する処理を繰り返す。
補間処理部48は、ステップS24でのインタラプト動作が終了すると、ステップS23に戻る。また、補間処理部48は、インタラプト動作の実施タイミングではない場合(ステップS23:No)、指令位置に工具が到着したか否かを確認する(ステップS25)。補間処理部48は、指令位置に工具が到着していない場合(ステップS25:No)、ステップS23に戻る。補間処理部48は、指令位置に工具が到着した場合(ステップS25:Yes)、動作を終了する。
つづいて、本実施の形態にかかる数値制御装置1が実現するインタラプト動作のバリエーションについて説明する。
図10は、実施の形態1にかかる数値制御装置1を適用して行うインタラプト動作の第1の例を示す図である。
図10に示したインタラプト動作は、インタラプト加工指令が、リフトダウン時の戻り量(m)を指定する引数と、リフトダウン時の工具経路の形状として円弧を指定する引数とを含む場合に対応する。図2を用いて説明したように、リフトダウン時の戻り量はアドレスMを用いて指定し、リフトダウン時の工具経路の形状(円弧軌跡)はアドレスPを用いて指定する。リフトダウン時の円弧軌跡は、リフトアップを完了した時点の工具の位置とリフトダウンを完了する時点の工具の位置を通り、かつ、リフトダウンを完了する時点の工具位置での接線が、直線補間指令に対応する直線と同じになる軌跡である。
図10に示したインタラプト動作を実施すると、リフトアップ時に切りくずの残りがワークに残っていた場合に、切りくずの残りを旋削で切り落とすことができる。また、工具がリフトダウンしてワークと再接触する際にワークに筋がつきにくくなる。
図11は、実施の形態1にかかる数値制御装置1を適用して行うインタラプト動作の第2の例を示す図である。
図11に示したインタラプト動作は、インタラプト加工指令が、リフトダウン時の戻り量(m)を指定する引数と、リフトダウン時の工具経路の形状として円弧を指定する引数とを含まない場合であって、かつ円弧補間指令(G02コード)に従い加工を行う場合に対応する。図11に示した例では、工具が円弧に沿って、指定されたリフトアップ間隔だけ移動するごとにリフトアップを行う。リフトアップ角度は、工具がリフトアップを開始する位置での接線に対する角度となる。
図11に示したインタラプト動作を実施すると、加工の所要時間であるサイクルタイムがインタラプト動作の実行に伴い伸びるのを最小限に抑えることができる。
図12は、実施の形態1にかかる数値制御装置1を適用して行うインタラプト動作の第3の例を示す図である。
図12に示したインタラプト動作は、インタラプト加工指令が、リフトダウン時の戻り量(m)を指定する引数を含み、かつ円弧補間指令(G02コード)に従い加工を行う場合に対応する。図11に示したインタラプト動作との違いは、リフトダウンで工具が戻る位置である。図12に示した例では、リフトアップを開始した位置から指定された戻り量mだけ後退した位置に工具を戻す。
図12に示したインタラプト動作を実施すると、リフトアップ時に切りくずの残りがワークに残っていた場合に、切りくずの残りを旋削で切り落とすことができる。
図13は、実施の形態1にかかる数値制御装置1を適用して行うインタラプト動作の第4の例を示す図である。
図13に示したインタラプト動作は、インタラプト加工指令が、リフトダウン時の戻り量(m)を指定する引数と、リフトダウン時の工具経路の形状として円弧を指定する引数とを含み、かつ円弧補間指令(G02コード)に従い加工を行う場合に対応する。図12に示したインタラプト動作との違いは、リフトダウン時の工具経路の形状である。図13に示した例では、リフトダウン時の工具経路の形状が円弧軌跡となる点である。リフトダウン時の円弧軌跡は、リフトアップを完了した時点の工具の位置とリフトダウンを完了する時点の工具の位置を通り、かつ、リフトダウンを完了する時点の工具位置での接線が、円弧補間指令に対応する円弧の接線となる軌跡である。
図13に示したインタラプト動作を実施すると、図10に示したインタラプト動作を実施する場合と同様に、リフトアップ時に切りくずの残りがワークに残っていた場合に、切りくずの残りを旋削で切り落とすことができる。また、工具がリフトダウンしてワークと再接触する際にワークに筋がつきにくくなる。
ここで、数値制御装置1が備える制御演算部40のハードウェア構成について説明する。図14は、実施の形態1にかかる数値制御装置1が備える制御演算部40のハードウェア構成例を示す図である。
制御演算部40は、図14に示したプロセッサ101およびメモリ102により実現することができる。プロセッサ101の例は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)ともいう)またはシステムLSI(Large Scale Integration)である。メモリ102の例は、RAM(Random Access Memory)またはROM(Read Only Memory)である。
制御演算部40は、プロセッサ101が、メモリ102で記憶されている、制御演算部40の動作を実行するためのプログラムを読み出して実行することにより実現される。また、このプログラムは、制御演算部40の手順または方法をコンピュータに実行させるものであるともいえる。メモリ102は、プロセッサ101が各種処理を実行する際の一時メモリにも使用される。
プロセッサ101が実行するプログラムは、コンピュータで実行可能な、データ処理を行うための複数の命令を含むコンピュータ読取り可能かつ非遷移的な(non-transitory)記録媒体を有するコンピュータプログラムプロダクトであってもよい。プロセッサ101が実行するプログラムは、複数の命令がデータ処理を行うことをコンピュータに実行させる。
また、制御演算部40を専用のハードウェアで実現してもよい。また、制御演算部40の機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
以上のように、本実施の形態にかかる数値制御装置1は、新たに定義されるインタラプト加工指令を読み込み、この指令に含まれる各種指令値で指令される動作、具体的には、ワークの加工を一時的に中断し、工具をワークから引き離した後、工具をワークに再度接触させて加工を再開するインタラプト動作を行うよう、工作機械に設けられた駆動部10を制御する。これにより、インタラプト動作で工具がワークから離れる際に、切りくずをワークから分断することができる。また、インタラプト動作の実施条件はインタラプト加工指令を用いて指定されるため、主軸の回転数を変更しても、インタラプト動作は影響を受けない。すなわち、数値制御装置1は、主軸の回転数の設定値が変更された場合も、同じ実施条件でインタラプト動作を継続させることができ、加工によって発生する切りくずを、主軸の回転数の設定値の影響を受けることなく安定して分断する動作を実現できる。
実施の形態2.
実施の形態1では、ワークの外側を加工する場合のインタラプト動作を説明したが、旋削加工によって、図15に示すような、ワークに孔などを設ける場合がある。このような加工は中ぐり加工と呼ばれる。ここで、中ぐり加工においてインタラプト動作を実施して切りくずをワークから分断する場合、図16に示したような問題が発生する可能性がある。すなわち、中ぐり加工を行っている最中に、実施の形態1で説明したインタラプト動作を実施すると、工具である中ぐりバイトをリフトアップした際に、図16に示すように工具と加工対象物であるワークが干渉する可能性がある。干渉が発生すると、加工精度が劣化する、工具が破損する、などの弊害が起こり得る。
実施の形態1では、ワークの外側を加工する場合のインタラプト動作を説明したが、旋削加工によって、図15に示すような、ワークに孔などを設ける場合がある。このような加工は中ぐり加工と呼ばれる。ここで、中ぐり加工においてインタラプト動作を実施して切りくずをワークから分断する場合、図16に示したような問題が発生する可能性がある。すなわち、中ぐり加工を行っている最中に、実施の形態1で説明したインタラプト動作を実施すると、工具である中ぐりバイトをリフトアップした際に、図16に示すように工具と加工対象物であるワークが干渉する可能性がある。干渉が発生すると、加工精度が劣化する、工具が破損する、などの弊害が起こり得る。
そのため、本実施の形態では、上記のような問題が発生した場合に、インタラプト動作の実施条件を自ら変更して問題を解決することが可能な数値制御装置について説明する。なお、工具とワークが干渉する問題は、中ぐり加工を行う場合に限らない。例えば、図17に示したような加工を行う場合にも発生する。図17においては、矢印がインタラプト動作時の工具の経路を示している。図17に示した例の場合、インタラプト動作の実施条件に含まれるリフトアップ間隔、リフトアップ角度およびリフトアップ量の設定値の関係から、破線の矢印に対応するインタラプト動作で工具をリフトアップした際に干渉が発生する。
図18は、実施の形態2にかかる数値制御装置1aの構成例を示す図である。数値制御装置1aは、実施の形態1にかかる数値制御装置1に動作条件変更部51を追加した構成である。
動作条件変更部51は、インタラプト動作において工具とワークの干渉が発生したときに行う、インタラプト動作の実施条件の変更方法を学習する。具体的には、動作条件変更部51は、インタラプト動作中に工具とワークの干渉が発生する状態を学習し、学習結果を使用してインタラプト動作の実施条件を変更する。動作条件変更部51は、例えば機械学習装置で実現される。インタラプト動作の実施条件の例は、工具のリフトアップ量である。以下、工具のリフトアップ量がインタラプト動作の実施条件である場合を例として、動作条件変更部51の説明を行う。動作条件変更部51は、状態観測部511および学習部512を備える。
状態観測部511は、軸データ出力部50が出力する電流値(j)と、補間処理部48が出力するインタラプト中情報(int)と、解析処理部45が出力するリフトアップ量(r)とを状態変数として観測する。電流値(j)は、駆動部10のサーボモータ11および主軸モータ14に流れる電流の値を示す。インタラプト中情報(int)は、インタラプト動作を実施中か否かを示す。リフトアップ量(r)は、インタラプト動作を行うときの工具のリフトアップ量を示す。軸データ出力部50が出力する電流値(j)は、工具とワークの干渉が発生すると急激に大きくなる。そのため、状態観測部511は、インタラプト中情報(int)がインタラプト動作の実施中を示しているときに電流値(j)が急激に大きくなった場合、工具とワークの干渉が発生したと判断する。
学習部512は、インタラプト中情報(int)、リフトアップ量(r)および電流値(j)の状態変数に基づいて作成される訓練データセットに従って、リフトアップ量の変更方法を学習する。すなわち、学習部512は、状態観測部511によるインタラプト中情報(int)、リフトアップ量(r)および電流値(j)の観測結果がどのような内容となった場合にリフトアップ量をどのように変更すべきかを学習する。
学習部512が上記の学習を行う際に用いる学習アルゴリズムはどのようなものであってもよい。一例として、強化学習(Reinforcement Learning)を適用した場合について説明する。強化学習は、ある環境内におけるエージェント(行動主体)が、現在の状態を観測し、取るべき行動を決定する、というものである。エージェントは行動を選択することで環境から報酬を得て、一連の行動を通じて報酬が最も多く得られるような方策を学習する。強化学習の代表的な手法として、Q学習(Q-learning)やTD学習(TD-learning)が知られている。例えば、Q学習の場合、行動価値関数Q(s,a)の一般的な更新式(行動価値テーブル)は式(1)で表される。
式(1)において、stは時刻tにおける環境を表し、atは時刻tにおける行動を表す。行動atにより、環境はst+1に変わる。rt+1はその環境の変化によってもらえる報酬を表し、γは割引率を表し、αは学習係数を表す。Q学習を適用した場合、インタラプト動作の実施条件の変更(リフトアップ量の変更)が行動atとなる。
式(1)で表される更新式は、時刻t+1における最良の行動aの行動価値Qが、時刻tにおいて実行された行動aの行動価値Qよりも大きければ、行動価値Qを大きくし、逆の場合は、行動価値Qを小さくする。換言すれば、時刻tにおける行動aの行動価値Qを、時刻t+1における最良の行動価値に近づけるように、行動価値関数Q(s,a)を更新する。それにより、或る環境における最良の行動価値が、それ以前の環境における行動価値に順次伝播していくようになる。
学習部512は、報酬計算部513と、関数更新部514と、をさらに備えている。
報酬計算部513は、インタラプト中情報(int)、リフトアップ量(r)および電流値(j)に基づいて、報酬(k)を計算する。例えば、インタラプト動作を実施中に電流値(j)が急激に大きくなった場合には報酬(k)を低減させる。報酬計算部513は、例えば、「-1」の報酬を与えることで、報酬(k)を低減させる。他方、インタラプト動作を実施中に電流値(j)が大きく変化しない場合には、「1」の報酬を与えることで、報酬(k)を増加させる。なお、学習に用いるリフトアップ中情報、リフトアップ量(r)および電流値(j)は、公知の方法に従って抽出される。「-1」の報酬のときは、ワークと工具が干渉したと判定して最低報酬になる。
関数更新部514は、報酬計算部513によって計算される報酬に従って、行動(n)すなわち、インタラプト動作の実施条件の変更内容(リフトアップ量(r)の変更内容)を決定するための関数を更新する。例えばQ学習の場合、式(1)で表される行動価値関数Q(st,at)を行動(リフトアップ量(r)の変更内容)を決定するための関数として用いる。例えば、学習部512は、報酬が最大となるリフトアップ量(r)の変更量を決定する。決定した変更量を用いて更新されたリフトアップ量(r)は、学習部512から補間処理部48のインタラプト経路算出部482に行動(n)として伝えられる。インタラプト経路算出部482は、学習部512から与えられた更新後のリフトアップ量(r)を使用して、インタラプト動作中の工具の移動経路を算出する。
以上の手順により、数値制御装置1aの動作条件変更部51は、リフトアップ量(r)の変更量を決定し、報酬(k)が最大となるよう、リフトアップ量(r)を変更する。数値制御装置1aの動作条件変更部51以外の構成要素は、実施の形態1にかかる数値制御装置1が備える、同じ符号が付された構成要素と同様の処理を実行する。そのため、動作条件変更部51以外の構成要素については説明を省略する。
図19は、実施の形態2にかかる数値制御装置1aが備える動作条件変更部51の動作の一例を示すフローチャートである。
図19に示したように、動作条件変更部51は、インタラプト動作を実施中か否かを監視し(ステップS31)、実施中ではない場合(ステップS31:No)、監視を継続する。動作条件変更部51は、インタラプト中情報(int)を確認することにより、インタラプト動作を実施中か否かを判定する。動作条件変更部51は、インタラプト動作を実施中の場合(ステップS31:Yes)、工具とワークの干渉が発生したか否かを確認する(ステップS32)。動作条件変更部51は、電流値(j)が急激に大きくなった場合、干渉が発生したと判断する。動作条件変更部51は、干渉が発生していない場合(ステップS32:No)、ステップS31に戻って動作を継続する。
これに対して、工具とワークの干渉が発生した場合(ステップS32:Yes)、動作条件変更部51は、干渉の発生条件を学習する(ステップS33)。動作条件変更部51は、例えば、干渉の発生条件をリフトアップ量(r)および電流値(j)を用いて学習する。
動作条件変更部51は、次に、ステップS33での学習結果に基づいて、インタラプト動作の実施条件を変更する(ステップS34)。ステップS34で変更する対象が工具のリフトアップ量である場合、動作条件変更部51は、補間処理部48のインタラプト経路算出部482がインタラプト動作中の工具の経路を次回以降に算出する際に使用する工具のリフトアップ量を、現在の値よりも小さい値に変更する。動作条件変更部51は、工具のリフトアップ量の変更量を、電流値(j)に基づいて決定してもよい。動作条件変更部51は、例えば、電流値(j)が急激に大きくなってから小さくなるまでの所要時間が長いほど変更量が大きくなるようにする。動作条件変更部51は、ステップS34を実行した後はステップS31に戻って動作を継続する。
なお、本実施の形態において、動作条件変更部51は、インタラプト動作において工具とワークの干渉が発生したことを検出すると、干渉が発生しないように、工具のリフトアップ量を変更することとしたが、これに限定されない。動作条件変更部51は、工具とワークの干渉発生を検出した場合に工具のリフトアップ角度を変更するようにしてもよい。また、工具のリフトアップ量および工具のリフトアップ角度の双方を変更するようにしてもよい。すなわち、動作条件変更部51は、工具とワークの干渉が発生した場合、工具のリフトアップ量および工具のリフトアップ角度の少なくとも一方を変更する。
また、本実施の形態において、動作条件変更部51は、インタラプト動作において工具とワークの干渉が発生したことを検出すると、工具のリフトアップ量を一律に変更する、すなわち、全てのインタラプト動作における工具のリフトアップ量を変更することにしたがこれに限定されない。動作条件変更部51は、繰り返し実行するインタラプト動作のうち、どのインタラプト動作において工具とワークの干渉が発生するかについても学習し、干渉が発生するインタラプト動作においてのみ、工具のリフトアップ量を変更するようにしてもよい。この場合、動作条件変更部51の状態観測部511は、上記のインタラプト中情報(int)、リフトアップ量(r)および電流値(j)に加えて、例えば、数値制御装置1aが実行中の命令のシーケンス番号を観測する。学習部512は、インタラプト中情報(int)、リフトアップ量(r)、電流値(j)および実行中の命令のシーケンス番号を用いて、リフトアップ量の変更方法を学習する。
工具とワークの干渉が発生した場合に動作条件変更部51が全てのインタラプト動作における工具のリフトアップ量を変更する場合、1つのワークの加工が完了するまでの所要時間であるサイクルタイムの短縮化につながる。
実施の形態2にかかる数値制御装置1aが備える制御演算部40aは、実施の形態1にかかる数値制御装置1が備える制御演算部40を実現するハードウェア(図14参照)と同様のハードウェアで実現することができる。
以上のように、本実施の形態にかかる数値制御装置1aは、インタラプト動作を実施したときに工具とワークの干渉が発生する条件を学習し、学習結果を使用してインタラプト動作の実施条件を変更する。これにより、工具とワークが干渉する状態を自動的に解消させることが可能となり、加工精度の劣化、工具の破損などの問題が発生するのを抑制できる。
本実施の形態では、動作条件変更部51が数値制御装置1aの内部に存在する場合について説明したが、動作条件変更部51は数値制御装置1aの外部に存在する構成であってもよい。例えば、外部の機械学習装置が、実施の形態1にかかる数値制御装置1から上記のインタラプト中情報(int)、リフトアップ量(r)および電流値(j)といった学習用データを取得し、インタラプト動作の実施条件の変更方法を学習することで動作条件変更部51を実現してもよい。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
1,1a 数値制御装置、10 駆動部、11 サーボモータ、12,15 検出器、13X X軸サーボ制御部、13Z Z軸サーボ制御部、14 主軸モータ、16 主軸サーボ制御部、20 入力操作部、30 表示部、40,40a 制御演算部、41 入力制御部、42 データ設定部、43 記憶部、44 画面処理部、45 解析処理部、46 機械制御信号処理部、47 PLC、48 補間処理部、49 加減速処理部、50 軸データ出力部、51 動作条件変更部、431 パラメータ、432 加工プログラム、433 画面表示データ、434 共有エリア、451 インタラプト加工指令解析部、452 一般指令解析部、481 インタラプトタイミング判定部、482 インタラプト経路算出部、483 加工経路算出部、484 移動量算出部、511 状態観測部、512 学習部、513 報酬計算部、514 関数更新部。
Claims (10)
- 加工対象物を加工するための工具を駆動する複数の駆動軸を制御する数値制御装置であって、
加工プログラムを解析する解析処理部と、
前記解析処理部による前記加工プログラムの解析結果に基づいて前記加工対象物を切削加工する際の前記工具の移動経路である加工経路を算出する加工経路算出部と、
前記工具が前記加工経路に沿って移動し、前記加工対象物を加工している途中に繰り返し実行する動作であり、前記工具を前記加工経路から一時的にリフトアップさせるインタラプト動作における前記工具の移動経路を前記解析結果に基づいて算出するインタラプト経路算出部と、
を備えることを特徴とする数値制御装置。 - 前記インタラプト経路算出部は、前記インタラプト動作において前記工具を前記加工経路に対してリフトアップさせるリフトアップ角度を0°より大きく、90°以下の角度で算出する、
ことを特徴とする請求項1に記載の数値制御装置。 - 前記解析処理部は、
前記加工プログラムに含まれる指令のうち、前記インタラプト動作の実施条件を指令する指令値を含んだインタラプト加工指令を解析するインタラプト加工指令解析部、
を備え、
前記インタラプト経路算出部は、前記インタラプト加工指令に含まれる指令値に従い前記インタラプト動作における前記工具の移動経路を算出する、
ことを特徴とする請求項1または2に記載の数値制御装置。 - 前記インタラプト加工指令は、前記工具を前記加工経路からリフトアップさせる際の前記工具の移動量を指令する指令値と、前記工具を前記加工経路からリフトアップさせる際の前記工具の移動方向と前記加工経路との角度を指令する指令値と、を含むことを特徴とする請求項3に記載の数値制御装置。
- 前記インタラプト加工指令は、前記工具を前記加工経路からリフトアップさせた後に前記工具が前記加工対象物と接触する状態に戻す際に前記工具をどこに戻すかを指令する指令値、を更に含むことを特徴とする請求項4に記載の数値制御装置。
- 前記インタラプト加工指令は、前記工具を前記加工経路からリフトアップさせた後に前記工具が前記加工対象物と接触する状態に戻す際の前記工具の経路を直線形状と円弧形状のどちらにするかを指令する指令値、を更に含むことを特徴とする請求項4または5に記載の数値制御装置。
- 前記インタラプト加工指令は、前記工具を前記加工経路からリフトアップさせた後に前記工具が移動を停止した状態を維持する時間の長さを指令する指令値、を更に含むことを特徴とする請求項4から6のいずれか一つに記載の数値制御装置。
- 前記インタラプト動作において前記工具と前記加工対象物の干渉が発生した場合の前記実施条件の変更方法を学習する動作条件変更部、
を備えることを特徴とする請求項3から7のいずれか一つに記載の数値制御装置。 - 前記動作条件変更部は、
前記インタラプト動作を実施中に前記工具を移動させるサーボモータに流れる電流値と、前記インタラプト加工指令に含まれる指令値のうち、前記工具を前記加工経路からリフトアップさせる際の前記工具の移動量を指令する指令値と、を使用して前記学習を行う機械学習装置で実現される、
ことを特徴とする請求項8に記載の数値制御装置。 - 請求項3から7のいずれか一つに記載の数値制御装置が実施する前記インタラプト動作において前記工具と前記加工対象物の干渉が発生した場合に、前記インタラプト動作の実施条件の変更方法を学習する機械学習装置であって、
前記インタラプト動作を実施中に前記工具を移動させるサーボモータに流れる電流値と、前記インタラプト加工指令に含まれる指令値のうち、前記工具を前記加工経路からリフトアップさせる際の前記工具の移動量を指令する指令値と、を使用して前記学習を行うことを特徴とする機械学習装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2018/048575 WO2020136899A1 (ja) | 2018-12-28 | 2018-12-28 | 数値制御装置および機械学習装置 |
DE112018008169.9T DE112018008169B4 (de) | 2018-12-28 | 2018-12-28 | Numerische Steuerung und Maschinenlernvorrichtung |
US17/413,955 US20220043426A1 (en) | 2018-12-28 | 2018-12-28 | Numerical control device and machine learning device |
JP2019556997A JP6661062B1 (ja) | 2018-12-28 | 2018-12-28 | 数値制御装置および機械学習装置 |
CN201880100447.2A CN113260933B (zh) | 2018-12-28 | 2018-12-28 | 数控装置及机器学习装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2018/048575 WO2020136899A1 (ja) | 2018-12-28 | 2018-12-28 | 数値制御装置および機械学習装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020136899A1 true WO2020136899A1 (ja) | 2020-07-02 |
Family
ID=69998060
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2018/048575 WO2020136899A1 (ja) | 2018-12-28 | 2018-12-28 | 数値制御装置および機械学習装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220043426A1 (ja) |
JP (1) | JP6661062B1 (ja) |
CN (1) | CN113260933B (ja) |
DE (1) | DE112018008169B4 (ja) |
WO (1) | WO2020136899A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6916409B1 (ja) * | 2020-01-16 | 2021-08-11 | ファナック株式会社 | 数値制御装置 |
CN114578755B (zh) * | 2022-03-03 | 2024-04-02 | 东莞市正森精密零件有限公司 | 一种具有刀具自动进给补偿功能的数控加工装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06285701A (ja) * | 1993-04-05 | 1994-10-11 | Fanuc Ltd | Nc旋削加工装置 |
JPH10124127A (ja) * | 1996-10-16 | 1998-05-15 | Mori Seiki Co Ltd | Nc旋盤を用いたねじ切り装置及びその方法 |
WO2004024378A1 (ja) * | 2002-09-12 | 2004-03-25 | Kabushiki Kaisha Daido Kikai Seisakusho | 鋼管端部の加工方法 |
JP2015225518A (ja) * | 2014-05-28 | 2015-12-14 | ファナック株式会社 | 切上げ・切込み運動または円運動挿入機能を有する数値制御装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004011015A1 (de) | 2004-03-02 | 2005-09-15 | Brose Fahrzeugteile Gmbh & Co. Kg, Coburg | Verfahren zum Überwachen der Verstellbewegung eines von einer Antriebseinrichtung angetriebenen Bauteils |
US8240234B2 (en) | 2007-10-16 | 2012-08-14 | University Of North Carolina At Charlotte | Methods and systems for chip breaking in turning applications using CNC toolpaths |
WO2014125569A1 (ja) * | 2013-02-12 | 2014-08-21 | 三菱電機株式会社 | 数値制御装置 |
JP5851670B1 (ja) * | 2014-10-28 | 2016-02-03 | 三菱電機株式会社 | 数値制御装置 |
JP6457432B2 (ja) | 2016-05-16 | 2019-01-23 | ファナック株式会社 | 揺動切削を行う工作機械のサーボ制御装置、制御方法及びコンピュータプログラム |
JP6499709B2 (ja) | 2017-04-14 | 2019-04-10 | ファナック株式会社 | 揺動切削を行う工作機械の制御装置 |
-
2018
- 2018-12-28 DE DE112018008169.9T patent/DE112018008169B4/de active Active
- 2018-12-28 CN CN201880100447.2A patent/CN113260933B/zh active Active
- 2018-12-28 JP JP2019556997A patent/JP6661062B1/ja active Active
- 2018-12-28 US US17/413,955 patent/US20220043426A1/en not_active Abandoned
- 2018-12-28 WO PCT/JP2018/048575 patent/WO2020136899A1/ja active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06285701A (ja) * | 1993-04-05 | 1994-10-11 | Fanuc Ltd | Nc旋削加工装置 |
JPH10124127A (ja) * | 1996-10-16 | 1998-05-15 | Mori Seiki Co Ltd | Nc旋盤を用いたねじ切り装置及びその方法 |
WO2004024378A1 (ja) * | 2002-09-12 | 2004-03-25 | Kabushiki Kaisha Daido Kikai Seisakusho | 鋼管端部の加工方法 |
JP2015225518A (ja) * | 2014-05-28 | 2015-12-14 | ファナック株式会社 | 切上げ・切込み運動または円運動挿入機能を有する数値制御装置 |
Also Published As
Publication number | Publication date |
---|---|
JP6661062B1 (ja) | 2020-03-11 |
JPWO2020136899A1 (ja) | 2021-02-18 |
CN113260933A (zh) | 2021-08-13 |
DE112018008169T5 (de) | 2021-09-02 |
CN113260933B (zh) | 2022-06-07 |
US20220043426A1 (en) | 2022-02-10 |
DE112018008169B4 (de) | 2023-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6450732B2 (ja) | 数値制御装置 | |
US11131979B2 (en) | Numerical control device and numerical control method | |
JP2006293537A (ja) | 数値制御装置 | |
JP2009098982A (ja) | 加工シミュレーション装置およびそのプログラム | |
JP2015225518A (ja) | 切上げ・切込み運動または円運動挿入機能を有する数値制御装置 | |
WO2020136899A1 (ja) | 数値制御装置および機械学習装置 | |
EP1471404A2 (en) | Numerical control apparatus for machine tool | |
JP2008117032A (ja) | 加工制御装置およびそのプログラム | |
US20230286169A1 (en) | Numerical control system and robot control method | |
JP6571716B2 (ja) | 評価用プログラム、情報記憶媒体、評価方法、及び制御装置 | |
JP2007066001A (ja) | ロボットの制御装置 | |
JP2007537521A (ja) | データ媒体に記憶された機械の制御装置のための制御ファイルを含んでいるデータ媒体、およびこれと関連する方法と装置 | |
JP6693927B2 (ja) | 制御装置 | |
JPWO2017221380A1 (ja) | 数値制御装置 | |
JP6362795B1 (ja) | 加工制御装置及び工作機械、並びに加工制御方法 | |
JP3696805B2 (ja) | 工作機械の移動位置設定方法 | |
JP6324616B1 (ja) | 数値制御装置 | |
JP5875740B1 (ja) | 数値制御装置 | |
JP2006344041A (ja) | 工具軌跡描画方法及び装置 | |
JP6110250B2 (ja) | Ncプログラムにおける回転送り軸指令の変化度合いの算出及び表示方法並びに装置 | |
JP4982170B2 (ja) | 加工制御装置および加工制御プログラム | |
JP2019181635A (ja) | 情報処理装置及び情報処理方法 | |
WO2021230237A1 (ja) | 加工経路作成装置 | |
WO2022196622A1 (ja) | 数値制御装置 | |
JP2017001153A (ja) | エンドミルを用いた加工システム及び加工方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ENP | Entry into the national phase |
Ref document number: 2019556997 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: 18944839 Country of ref document: EP Kind code of ref document: A1 |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18944839 Country of ref document: EP Kind code of ref document: A1 |