WO2020110251A1 - 数値制御装置、数値制御方法、および機械学習装置 - Google Patents

数値制御装置、数値制御方法、および機械学習装置 Download PDF

Info

Publication number
WO2020110251A1
WO2020110251A1 PCT/JP2018/043942 JP2018043942W WO2020110251A1 WO 2020110251 A1 WO2020110251 A1 WO 2020110251A1 JP 2018043942 W JP2018043942 W JP 2018043942W WO 2020110251 A1 WO2020110251 A1 WO 2020110251A1
Authority
WO
WIPO (PCT)
Prior art keywords
vibration
vibration waveform
tool
axis direction
tolerance value
Prior art date
Application number
PCT/JP2018/043942
Other languages
English (en)
French (fr)
Inventor
正一 嵯峨▲崎▼
悟 井口
山田 喜範
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to CN201880099718.7A priority Critical patent/CN113168155B/zh
Priority to JP2019537850A priority patent/JP6740483B1/ja
Priority to DE112018008087.0T priority patent/DE112018008087B4/de
Priority to US17/276,486 priority patent/US11131979B2/en
Priority to PCT/JP2018/043942 priority patent/WO2020110251A1/ja
Publication of WO2020110251A1 publication Critical patent/WO2020110251A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/182Numerical 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 the machine tool function, e.g. thread cutting, cam making, tool direction control
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B23MACHINE TOOLS; METAL-WORKING NOT OTHERWISE PROVIDED FOR
    • B23QDETAILS, COMPONENTS, OR ACCESSORIES FOR MACHINE TOOLS, e.g. ARRANGEMENTS FOR COPYING OR CONTROLLING; MACHINE TOOLS IN GENERAL CHARACTERISED BY THE CONSTRUCTION OF PARTICULAR DETAILS OR COMPONENTS; COMBINATIONS OR ASSOCIATIONS OF METAL-WORKING MACHINES, NOT DIRECTED TO A PARTICULAR RESULT
    • B23Q15/00Automatic control or regulation of feed movement, cutting velocity or position of tool or work
    • B23Q15/007Automatic control or regulation of feed movement, cutting velocity or position of tool or work while the tool acts upon the workpiece
    • B23Q15/013Control or regulation of feed movement
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37346Cutting, chip quality
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37435Vibration of machine

Definitions

  • the present invention relates to a numerical control device, a numerical control method, and a machine learning device for controlling vibration cutting while vibrating a tool.
  • the numerical control device controls the operation of the tool according to a machining program for machining the machining target, and thereby causes the tool to machine the machining target.
  • Some of these numerical control devices vibrate and cut a workpiece while vibrating the tool at a specific frequency along the movement path of the tool.
  • 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 does not wait for the next command until the tool reaches the target position in the X-axis direction when processing the corner portion of the object to be processed in the X-axis direction and the Z-axis direction. Instead, when the vibration advance position of the tool reaches the target position, the corner portion is smoothly machined by executing the command in the Z-axis direction.
  • Patent Document 1 it is possible to perform corner machining of a specific shape, but it has not been possible to perform corner machining with a desired machining accuracy.
  • the present invention has been made in view of the above, and an object of the present invention is to obtain a numerical control device that can perform corner machining with desired machining accuracy.
  • the present invention provides a first axis that drives a main shaft that is a rotation axis of a workpiece and a tool for performing vibration cutting of the workpiece in a first direction. And a second drive shaft for driving a tool or an object to be machined in a second direction, and stores a machining program for vibration cutting the object to be machined. It has a storage unit.
  • the numerical control device of the present invention calculates a specific point through which the tool passes during vibration cutting, based on the tolerance value, which is a tolerance when cornering a workpiece, and calculates the specific point of the tool passing through the specific point. It has a control operation part which produces
  • the control calculation unit controls the movement and vibration of the tool according to the machining program and the vibration waveform.
  • the numerical control device has the effect of being able to perform corner machining with desired machining accuracy.
  • FIG. 3 is a flowchart showing a processing procedure for setting a travel route by the numerical control device according to the first embodiment.
  • FIG. 3 is a diagram for explaining a specific passing point set by the numerical control device according to the first embodiment.
  • FIG. 3 is a diagram for explaining a vibration waveform generated by the numerical control device according to the first embodiment.
  • FIG. 6 is a flowchart showing a processing procedure of moving route setting by the numerical control device according to the second embodiment.
  • the figure which shows the shape of the processed work when the corner angle of the processed work is 60° and the angle of the movement path is 120°.
  • the figure which shows the shape of the processed work when the corner angle of the processed work is 300° and the angle of the moving path is 60°.
  • FIG. 6 is a diagram for explaining a vibration waveform generated by the numerical control device according to the second embodiment.
  • FIG. 10 is a diagram showing a movement route generated by the numerical control device according to the third embodiment.
  • FIG. 6 is a flowchart showing a processing procedure for setting a moving route by the numerical control device according to the third embodiment.
  • the figure for demonstrating the vibration waveform before the numerical control apparatus concerning Embodiment 3 correct
  • the figure for demonstrating the vibration waveform after the numerical control apparatus concerning Embodiment 3 correct
  • FIG. 8 is a diagram for explaining tolerance stage information used in the numerical controller according to the fourth embodiment.
  • FIG. 3 is a diagram showing a hardware configuration example of a control calculation unit according to the first to fifth embodiments.
  • FIG. 1 is a diagram illustrating a configuration example of a numerical control device according to the first embodiment.
  • FIG. 2 is a diagram illustrating a configuration example of the machine tool according to the first embodiment.
  • the horizontal direction of the paper surface is the Z-axis direction
  • the vertical direction of the paper surface is the X-axis direction.
  • Numerical control (NC) device 1X executes control of low frequency vibration cutting (LFV: Low Frequency Vibration-cutting), which is processing while vibrating tool 66A, for machine tool 110 that performs lathe processing. Is a computer that does.
  • LUV Low Frequency Vibration-cutting
  • the low frequency vibration may be simply referred to as vibration.
  • the numerical controller 1X creates a movement path so that the tool 66A passes through a specific point (a specific passing point described later) corresponding to the tolerance value, based on the tolerance value which is a permissible error when cornering the processed workpiece 70. To do.
  • the numerical control device 1X controls the machining of the machining workpiece 70 while moving the tool 66A and the machining workpiece 70, which is the machining object, relative to each other by two or more drive axes. That is, the numerical controller 1X processes the machine tool 110 having a Z-axis drive shaft for moving the tool 66A or the workpiece 70 and an X-axis drive shaft for moving the tool 66A with the tool 66A.
  • the work 70 is vibrationally cut.
  • the numerical control device 1X controls a machine tool 110 including one spindle 60 that is a rotation axis of a workpiece 70 and two drive axes that move a tool 66A.
  • the work 70 is a workpiece that is machined by the machine tool 110.
  • FIG. 2 the center line of the main shaft 60 is shown as the main shaft 60.
  • the numerical controller 1X includes a control operation unit 2X, an input operation unit 3, a display unit 4, and a PLC operation unit 5 such as a machine operation panel for operating a PLC (Programmable Logic Controller) 36.
  • a control operation unit 2X controls the input operation unit 3 and a display unit 4.
  • a PLC operation unit 5 such as a machine operation panel for operating a PLC (Programmable Logic Controller) 36.
  • FIG. 1 shows a drive unit 90 that is a component of the machine tool 110.
  • the drive unit 90 drives the tool rest 65A and the like included in the machine tool 110.
  • the drive unit 90 is a drive mechanism that drives the tool 66A while rotating the workpiece 70.
  • the driving directions of the tool 66A are two directions, a direction parallel to the X-axis direction and a direction parallel to the Z-axis direction.
  • the drive unit 90 moves and vibrates the tool 66A along the X-axis direction and the Z-axis direction. That is, the drive unit 90 controls the drive in the X-axis direction and the Z-axis direction, so that the tool rest 65A moves in the XZ plane. Since the axial direction depends on the device configuration, the axial direction is not limited to the above direction.
  • the arrow pointing to the right in FIG. 2 indicates the processing direction in which the tool 66A processes the workpiece 70 in the first embodiment.
  • the drive unit 90 includes servo motors 901 and 902 that move the tool 66A in the respective axial directions defined on the numerical controller 1X, and detectors 97 and 98 that detect the positions and speeds of the servo motors 901 and 902. ing.
  • the drive unit 90 also includes servo control units for controlling the servomotors 901 and 902 based on a command from the numerical controller 1X.
  • the servo control unit in each axis direction performs feedback control to the servo motors 901 and 902 based on the position and speed from the detectors 97 and 98.
  • the X-axis servo control unit 91 controls the operation of the tool 66A in the X-axis direction by controlling the servo motor 901, and the Z-axis servo control unit 92 controls the servo motor 902. Controls the movement of the tool 66A in the Z-axis direction.
  • the machine tool 110 may include two or more tool rests.
  • the drive unit 90 includes a set of an X-axis servo control unit 91, a Z-axis servo control unit 92, servo motors 901 and 902, and detectors 97 and 98 for each tool post.
  • the drive unit 90 also includes a spindle motor 911 that rotates the spindle 60 for rotating the workpiece 70, and a detector 211 that detects the position and rotation speed of the spindle motor 911.
  • the rotation speed detected by the detector 211 corresponds to the rotation speed of the spindle motor 911.
  • the drive unit 90 also includes a spindle servo control unit 200 that controls the spindle motor 911 based on a command from the numerical controller 1X.
  • the spindle servo control unit 200 performs feedback control to the spindle motor 911 based on the position and speed from the detector 211.
  • the drive unit 90 includes two sets of a spindle motor 911, a detector 211, and a spindle servo control unit 200.
  • the machine tool 110 is equipped with two or more turrets.
  • the input operation unit 3 is a means for inputting information to the control calculation unit 2X.
  • the input operation unit 3 is composed of an input means such as a keyboard, a button, or a mouse, and receives an input of a command or the like by the user to the numerical control device 1X, or a machining program or a parameter, and inputs them to the control calculation unit 2X.
  • the display unit 4 is configured by a display unit such as a liquid crystal display device, and displays the information processed by the control calculation unit 2X on the display screen.
  • the PLC operation unit 5 accepts an operation by the user and sends an instruction corresponding to the operation to the PLC 36.
  • the control calculation unit 2X which is a control unit, includes an input control unit 32, a data setting unit 33, a storage unit 34, a screen processing unit 31, an analysis processing unit 37, a control signal processing unit 35, a PLC 36, and an interpolation unit. It has a processing unit 38X, an acceleration/deceleration processing unit 39, and an axis data output unit 40.
  • the PLC 36 may be arranged outside the control calculation unit 2X.
  • the storage unit 34 has a parameter storage area 341, a machining program storage area 343, a display data storage area 344, and a shared area 345.
  • parameters and the like used in the processing of the control calculation unit 2X are stored.
  • control parameters for operating the numerical controller 1X, servo parameters, and tool data are stored.
  • the machining program storage area 343 stores a machining program (a machining program 101, etc. described later) used for machining the machined workpiece 70.
  • the machining program according to the first embodiment includes a vibration command that is a command to vibrate the tool 66A and a movement command that is a command to move the tool 66A.
  • the screen display data displayed on the display unit 4 is stored in the display data storage area 344.
  • the screen display data is data for displaying information on the display unit 4.
  • the storage unit 34 is provided with a shared area 345 for storing temporarily used data.
  • the screen processing unit 31 controls the display unit 4 to display the screen display data stored in the display data storage area 344.
  • the input control unit 32 receives information input from the input operation unit 3.
  • the data setting unit 33 causes the storage unit 34 to store the information received by the input control unit 32. That is, the input information received by the input operation unit 3 is written in the storage unit 34 via the input control unit 32 and the data setting unit 33.
  • the control signal processing unit 35 is connected to the PLC 36, and receives from the PLC 36 signal information such as a relay that operates the machine tool 110.
  • the control signal processing unit 35 writes the received signal information in the shared area 345 of the storage unit 34.
  • the interpolation processing unit 38X refers to these pieces of signal information during the machining operation.
  • the analysis processing unit 37 outputs an auxiliary instruction to the shared area 345
  • the control signal processing unit 35 reads the auxiliary instruction from the shared area 345 and sends it to the PLC 36.
  • the auxiliary command is a command other than a command for operating the drive axis which is the numerical control axis. Examples of auxiliary commands are M code or T code.
  • the PLC 36 executes the operation according to this operation.
  • the PLC 36 stores a ladder program in which machine operations executed by the PLC 36 are described.
  • the PLC 36 executes the processing corresponding to the auxiliary instruction to the machine tool 110 according to the ladder program.
  • the PLC 36 sends a completion signal indicating that the machine control is completed to the control signal processing unit 35 in order to execute the next block of the machining program.
  • control calculation unit 2X the control signal processing unit 35, the analysis processing unit 37, and the interpolation processing unit 38X are connected via the storage unit 34, and writing and reading of information via the storage unit 34 are performed. To do. In the following description, a case where the storage unit 34 is omitted when writing and reading information among the control signal processing unit 35, the analysis processing unit 37, and the interpolation processing unit 38X is omitted. There is.
  • the user selects the machining program by inputting the machining program number on the input operation unit 3.
  • This machining program number is written in the shared area 345 via the input control unit 32 and the data setting unit 33.
  • the analysis processing unit 37 receives the work designation information designating the machining work 70 corresponding to the machining program number selected in the shared area 345 from the shared area 345, using the cycle start of the machine operation panel or the like as a trigger, the analysis processing unit 37 designates the workpiece.
  • the machining program corresponding to the information is read from the machining program storage area 343, and analysis processing is performed on each block (each row) of the machining program.
  • the analysis processing unit 37 analyzes, for example, a G code (command relating to axis movement etc.), a T code (tool replacement command etc.), an S code (spindle motor rotation speed command) and an M code (machine operation command).
  • the analysis processing unit 37 sends the analysis result to the PLC 36 via the shared area 345 and the control signal processing unit 35. Further, when the analyzed line includes the M code, the analysis processing unit 37 sends the M code to the PLC 36 via the control signal processing unit 35.
  • the PLC 36 executes the machine control corresponding to the M code. When the execution is completed, the result indicating the completion of the M code is written in the storage unit 34 via the control signal processing unit 35.
  • the interpolation processing unit 38X refers to the execution result written in the storage unit 34.
  • the analysis processing unit 37 sends the analysis result to the interpolation processing unit 38X via the shared area 345. Specifically, the analysis processing unit 37 generates a movement condition corresponding to the G code and sends it to the interpolation processing unit 38X. The analysis processing unit 37 also sends the spindle rotational speed designated by the S code to the interpolation processing unit 38X. The spindle rotation speed is the number of rotations of the spindle 60 per unit time.
  • the movement condition is a condition of the tool feed for the tool 66A to move the machining position, and is indicated by a speed at which the tool rest 65A is moved, a position at which the tool rest 65A is moved, and the like. For example, the tool feed of the tool 66A advances the tool 66A in the X-axis direction (+X direction) and the Z-axis direction (+Z direction).
  • the analysis processing unit 37 also includes a vibration command analysis unit 11 and a movement command analysis unit 12.
  • the vibration command analysis unit 11 is means for analyzing vibration commands in the X-axis direction and the Z-axis direction.
  • the vibration command analysis unit 11 analyzes a vibration command included in a machining program (such as a machining program 101 described later) to generate vibration conditions in the X-axis direction and the Z-axis direction, and the generated vibration condition is set in the shared area 345.
  • a machining program such as a machining program 101 described later
  • the vibration condition is the condition of vibration when performing vibration cutting.
  • An example of the vibration condition is the number of vibrations during vibration cutting.
  • the number of vibrations in the X-axis direction is the number of vibrations of the tool post 65A in the X-axis direction during one rotation of the main shaft 60
  • the number of vibrations in the Z-axis direction is the Z number of the tool post 65A during one rotation of the main shaft 60.
  • the number of vibrations of the tool rest 65A corresponds to the frequency of vibration based on the time required for the main shaft 60 to rotate once.
  • the movement command analysis unit 12 analyzes the movement command included in the machining program to generate movement conditions in the X-axis direction and the Z-axis direction, and sends the generated movement conditions to the interpolation processing unit 38X via the shared area 345. .. In the machining program, the spindle speed, the vibration command and the movement command are set so that the chips can be finely divided.
  • the movement command analysis unit 12 generates a movement condition corresponding to the G code and sends it to the interpolation processing unit 38X. Examples of the moving conditions are the moving speed of the tool rest 65A, the position at which the tool rest 65A is moved, and the like.
  • the vibration command in the X-axis direction is a command to vibrate the tool rest 65A in the X-axis direction
  • the vibration command in the Z-axis direction is a command to vibrate the tool rest 65A in the Z-axis direction.
  • the movement command in the X-axis direction is a command to move the tool rest 65A in the X-axis direction
  • the movement command in the Z-axis direction is a command to move the tool rest 65A in the Z-axis direction.
  • the interpolation processing unit 38X includes a command movement amount calculation unit 21, a vibration movement amount calculation unit 22, a tolerance value setting unit 23, a waveform generation unit 24, and a vibration correction unit 25.
  • the interpolation processing unit 38X reads, from the shared area 345, the number of rotations of the spindle and the number of times the tool rest 65A vibrates in the X-axis direction and the Z-axis direction.
  • the command movement amount calculation unit 21 receives the movement condition as the analysis result from the analysis processing unit 37, performs interpolation processing on the movement condition, and calculates the command movement amount per unit time corresponding to the result of the interpolation processing. Specifically, the command movement amount calculation unit 21 calculates a command movement amount for moving the tool rest 65A in the X-axis direction in a unit time based on the movement condition in the X-axis direction analyzed by the analysis processing unit 37. It is sent to the waveform generator 24. Further, the command movement amount calculation unit 21 calculates the command movement amount for moving the tool rest 65A in the Z axis direction in a unit time based on the movement condition in the Z axis direction analyzed by the analysis processing unit 37, and calculates the waveform generation unit. Send to 24.
  • the tolerance value setting unit 23 sets the tolerance value during corner machining. Specifically, the tolerance value setting unit 23 checks whether or not the tolerance value is designated by a machining program, a ladder program, or a parameter, and defines in which place the tolerance value is prioritized. The tolerance value is set based on the priority information. The tolerance value setting unit 23 sends the set tolerance value to the waveform generation unit 24. The priority information is stored in the storage unit 34.
  • the cutting directions are the X-axis direction and the Z-axis direction in FIG.
  • the movement of the tool 66A is the sum of the movement for vibration cutting and the movement in the direction (cutting direction) for advancing the machining of the workpiece 70. Therefore, the waveform generation unit 24 adds the vibration movement amount for vibration cutting and the movement amount in the cutting direction for advancing the machining of the workpiece 70.
  • the vibration movement amount is indicated by, for example, a waveform.
  • the waveform generation unit 24 calculates the command movement amount in the X axis direction sent from the command movement amount calculation unit 21, and the vibration movement amount in the X axis direction sent from the vibration movement amount calculation unit 22. To generate a combined movement amount in the X-axis direction.
  • the waveform generation unit 24 also combines the Z-axis command movement amount sent from the command movement amount calculation unit 21 and the Z-axis vibration movement amount sent from the vibration movement amount calculation unit 22. By doing so, a combined movement amount in the Z-axis direction is generated.
  • the combined movement amount in the X-axis direction is shown as a waveform on a graph in which the horizontal axis is time and the vertical axis is the position in the X-axis direction.
  • the combined movement amount in the Z-axis direction is time on the horizontal axis and on the vertical axis. It is shown by the waveform on the graph as the position in the Z-axis direction.
  • the waveform generation unit 24 sends to the vibration correction unit 25 the waveform of the movement path indicating the combined movement amount in the X-axis direction and the Z-axis direction that is the result of the interpolation processing.
  • the waveform indicating the movement path of the tool 66A during vibration cutting will be referred to as a vibration waveform.
  • the vibration correction unit 25 corrects the vibration waveform in the X-axis direction when the vibration waveform in the X-axis direction ends based on the vibration waveform in the X-axis direction and the target position (X coordinate) for processing. Further, the vibration correction unit 25 corrects the Z-axis vibration waveform at the start and end of the Z-axis vibration waveform based on the Z-axis vibration waveform and the machining target position (Z coordinate). To do.
  • the vibration correction unit 25 calculates the coordinates along which the moving route passes based on the tolerance value, and adjusts the timing to start moving in the Z-axis direction so that the moving route passes through the calculated coordinates. At this time, the vibration correction unit 25 determines the timing to start the vibration waveform (movement and vibration) in the Z-axis direction based on the calculated coordinates, the vibration waveform in the X-axis direction, and the vibration waveform in the Z-axis direction. adjust. The vibration correction unit 25 sends the corrected vibration waveform in the X-axis direction and the corrected vibration waveform in the Z-axis direction to the acceleration/deceleration processing unit 39.
  • the acceleration/deceleration processing unit 39 performs the acceleration/deceleration processing for smoothly changing the acceleration on the result of the interpolation processing supplied from the interpolation processing unit 38X.
  • the acceleration/deceleration processing unit 39 performs acceleration/deceleration processing when starting and stopping the movement. Specifically, the acceleration/deceleration processing unit 39 generates a movement command in the X-axis direction based on the combined movement amount in the X-axis direction, and based on the combined movement amount in the Z-axis direction, moves in the Z-axis direction. Generate a move command.
  • the position command processed by the acceleration/deceleration processing unit 39 is a speed command per unit time.
  • the acceleration/deceleration processing unit 39 sends a speed command, which is the processing result of the acceleration/deceleration processing, to the axis data output unit 40.
  • the acceleration/deceleration processing unit 39 does not perform the acceleration/deceleration processing on the spindle rotational speed.
  • the acceleration/deceleration processing unit 39 sends a rotation speed command corresponding to the rotation speed of the spindle to the axis data output unit 40.
  • the rotation speed command generated by the acceleration/deceleration processing unit 39 is a step command.
  • Axis data output unit 40 outputs a speed command to drive unit 90. Specifically, the axis data output unit 40 outputs a speed command for the X axis to the X axis servo control unit 91, and outputs a speed command for the Z axis to the Z axis servo control unit 92. The axis data output unit 40 also outputs a rotation speed command to the spindle 60 to the spindle servo control unit 200.
  • the X-axis servo control unit 91, the Z-axis servo control unit 92, and the spindle servo control unit 200 control the operation of the tool 66A in the X-axis direction and the Z-axis direction, and the rotation operation of the spindle 60.
  • the operation procedure of the machining control by the numerical controller 1X will be outlined.
  • the PLC 36 When machining by the machine tool 110 is started, the PLC 36 outputs a cycle start signal to the control signal processing unit 35, and the control signal processing unit 35 outputs the cycle start signal to the interpolation processing unit 38X.
  • the interpolation processing unit 38X activates the analysis processing unit 37.
  • the analysis processing unit 37 reads the processing program for each block and analyzes the processing program, and stores the vibration conditions, the movement conditions, and the spindle rotation speed, which are the analysis results, in the shared area 345. Then, the interpolation processing unit 38X calculates the combined movement amount per unit time in the X-axis direction and the combined movement amount per unit time in the Z-axis direction based on the analysis result of the analysis processing unit 37 to calculate the acceleration/deceleration processing unit. Send to 39.
  • the acceleration/deceleration processing unit 39 generates a movement command in the X-axis direction that has been subjected to the acceleration/deceleration processing based on the combined movement amount in the X-axis direction, and accelerates/decelerates based on the combined movement amount in the Z-axis direction.
  • a processed movement command in the Z-axis direction is generated.
  • the machine tool 110 is a lathe with one spindle and one turret having a drive shaft in the turret 65A.
  • a lathe with one spindle and one turret is a lathe equipped with one spindle and one turret.
  • the tool rest 65A is also called a turret.
  • An example of the machine tool 110 is a turret lathe.
  • the machining workpiece 70 may move and vibrate in the Z axis direction instead of the tool rest 65A moving and vibrating in the Z axis direction.
  • the machine tool 110 has a headstock with a first spindle 75.
  • the first spindle 75 rotates while the work 70 is attached, thereby rotating the work 70.
  • the rotation axis of the workpiece 70 by the first spindle 75 is the spindle 60 provided on the headstock.
  • the machine tool 110 includes a tool rest 65A, and the tool rest 65A is provided with a drive shaft 61X in the X-axis direction and a drive shaft 61Z in the Z-axis direction.
  • the tool rest 65A is movable in the X-axis direction and the Z-axis direction.
  • the X-axis direction is the first direction
  • the drive shaft 61X in the X-axis direction is the first drive shaft.
  • the Z-axis direction is the second direction
  • the Z-axis drive shaft 61Z is the second drive shaft.
  • the center line of the drive shaft 61X is shown as the drive shaft 61X
  • the center line of the drive shaft 61Z is shown as the drive shaft 61Z.
  • the numerical controller 1X controls the operation of the tool 66A and the workpiece 70 by controlling the main shaft 60, the drive shaft 61X, and the drive shaft 61Z.
  • the turret 65A is a swivel turret.
  • a plurality of tools 66A can be attached to the tool rest 65A, and the tools 66A to be used are switched by rotating the tools 66A. :
  • the tool rest 65A vibrates in the X-axis direction and the Z-axis direction, so that the tool 66A vibrates and cuts the workpiece 70. That is, the tool rest 65A vibrates in the direction in which the X-axis direction and the Z-axis direction are added. That is, the tool rest 65A vibrates in a direction parallel to the processing direction of the tool rest 65A.
  • the vibration of the tool rest 65A may be described as the vibration of the tool 66A.
  • FIG. 3 is a diagram showing a machining program used by the numerical control device according to the first embodiment.
  • FIG. 4 is a diagram showing a movement route generated by the numerical control device according to the first embodiment.
  • the numerical control device 1X generates the movement path shown in FIG. 4 from the machining program shown in FIG.
  • the movement route here includes a movement route in the X-axis direction and a movement route in the Z-axis direction.
  • the machining program 101 is used when the numerical controller 1X controls the machine tool 110.
  • the horizontal axis represents the Z-axis position which is the position in the Z-axis direction
  • the vertical axis represents the X-axis position which is the position in the X-axis direction.
  • the tool 66A When the tool 66A is placed on the upper side of the machined work 70 like the machine tool 110 shown in FIG. 2, the tool 66A is on the left side of the movement path of FIG. 4 and the machined work 70 is on the right side.
  • the tool 66A When the tool 66A is a drill and the hole is drilled from the right side to the left side of the machined work 70 along the Z-axis direction, the tool 66A is on the right side of the movement path in FIG. 4 and the machined work 70 is on the left side. ..
  • the Z axis is the same axis as the main axis 60.
  • the X-axis direction is the hole radial direction
  • the Z-axis direction is the hole depth direction.
  • the tolerance value is a value that indicates the allowable error when cornering the processed workpiece 70, and is specified by the K address.
  • the tolerance value increases as the value increases.
  • the tolerance value the smaller the value, the better the processing accuracy, and the larger the value, the shorter the processing time.
  • the tool 66A passes a position m away from the right angle position so that the shortest distance between the movement path of the tool 66A and the right angle position is the distance m.
  • the coordinates where the shortest distance between the movement path of the tool 66A and the right angle position is the distance m may be referred to as a specific passing point.
  • G0 of the first block N01 is a positioning command
  • G165 of the second block N02 is a low frequency vibration command
  • G95 of the third block N03 is a point feed (synchronous feed) command every time. ..
  • the positioning command is a command to move to a specific position.
  • the X coordinate is 0.0 and the Z coordinate is 0.0.
  • the low frequency vibration command is a command for executing low frequency vibration.
  • the tolerance value is specified in the low frequency vibration command.
  • the tolerance value here is m.
  • the point feed command for each time is a command that specifies the feed speed F per one rotation of the spindle 60.
  • G0, G165, G95 are commands (modal commands) that are valid until a specific G code is commanded.
  • the tool 66A is fed from the block of this instruction at the feed speed F per one rotation of the spindle 60.
  • the feed rate F here is 0.05.
  • the numerical controller 1X is configured so that the vibration waveform in the X-axis direction and the vibration waveform in the Z-axis direction simultaneously pass through the specific passing point in the movement path from the first specific position to the second specific position. , Adjust the timing to start the movement in the Z-axis direction. That is, the numerical controller 1X corrects the start timing of the vibration waveform in the Z-axis direction so that the movement position, which is the amount of superposition of the movement in the X-axis direction and the movement in the Z-axis direction, passes through the specific passing point.
  • the command of G165 is ended.
  • the machining program 101 includes a spindle rotation speed command and the like in addition to the commands shown in FIG.
  • the spindle rotation speed command is a command for rotating the spindle 60 by a specific rotation speed per minute.
  • G165 includes the amplitude of vibration of the tool 66, the number of vibrations during one rotation of the main shaft 60, and the like.
  • FIG. 5 is a flowchart showing a processing procedure of moving route setting by the numerical control device according to the first embodiment.
  • FIG. 5 a process of setting a moving route when the moving route passes through a specific passing point will be described.
  • the movement instruction analysis unit 12 analyzes the movement instruction included in the machining program 101 to generate movement conditions in the X-axis direction and Z-axis direction, and the generated movement condition is It is sent to the interpolation processing unit 38X via the shared area 345.
  • the vibration command analysis unit 11 analyzes the vibration command included in the machining program 101 to generate vibration conditions in the X-axis direction and the Z-axis direction, and interpolates the generated vibration condition via the shared area 345. Send to section 38X.
  • the vibration condition generated by the vibration command analysis unit 11 includes the vibration frequency, amplitude, tolerance value, and the like.
  • the tolerance value setting unit 23 determines whether or not a tolerance value larger than 0 is set (whether or not a tolerance value>0 is set) (step S10).
  • the tolerance value is set in a ladder program, a machining program, parameters and the like.
  • the tolerance value setting unit 23 sets and sets the tolerance value used for the tolerance control based on the priority information that defines which of the ladder program, the machining program, the parameter and the like the tolerance value set is prioritized. It is determined whether the tolerance value is greater than 0.
  • the tolerance value setting unit 23 sets the tolerance value of the ladder program to the tolerance value used for the tolerance control. Further, the tolerance value setting unit 23 sets the tolerance value of the machining program to the tolerance value used for the tolerance control when the tolerance value is not designated in the ladder program. Further, the tolerance value setting unit 23 sets the tolerance value of the parameter to the tolerance value used for the tolerance control when the tolerance value is not specified in both the ladder program and the machining program.
  • the priority information of the tolerance value can be switched by a user operation.
  • the numerical control device 1X When the tolerance value larger than 0 is not set (No in step S10), the numerical control device 1X does not execute the movement route setting process described in the first embodiment.
  • the tolerance value setting unit 23 determines, based on the tolerance value, the specific passing point (X coordinate and Z coordinate) which is the position where the tool 66A passes. Is calculated (step S20).
  • FIG. 6 is a diagram for explaining a specific passing point set by the numerical control device according to the first embodiment.
  • FIG. 6 shows a specific passing point P0 set to satisfy the tolerance value for the movement route shown in FIG.
  • the waveform generation unit 24 combines the command movement amount in the X-axis direction sent from the command movement amount calculation unit 21 and the vibration movement amount in the X-axis direction sent from the vibration movement amount calculation unit 22. A vibration waveform of the movement path indicating the combined movement amount in the X-axis direction is generated.
  • the waveform generation unit 24 also combines the Z-axis command movement amount sent from the command movement amount calculation unit 21 and the Z-axis vibration movement amount sent from the vibration movement amount calculation unit 22. As a result, a vibration waveform indicating the combined movement amount in the Z-axis direction is generated.
  • the waveform generation unit 24 when generating the vibration waveform of the moving path, obtains the vibration forward position where the amplitude of the vibration condition is added to the moving path and the vibration backward position where the amplitude is subtracted.
  • the vibration advancing position is the maximum point of the vibration waveform of the moving path
  • the vibration backward position is the minimum point of the vibration waveform of the moving path.
  • the waveform generation unit 24 generates a vibration waveform of the movement path in the X-axis direction and the Z-axis direction based on the vibration forward position and the vibration backward position.
  • the vibration correction unit 25 corrects the vibration waveforms of the first movement route and the second movement route of the movement route based on the vibration waveform indicating the movement route.
  • FIG. 7 is a diagram for explaining a vibration waveform generated by the numerical control device according to the first embodiment.
  • the vibration waveform here includes a vibration waveform in the X-axis direction and a vibration waveform in the Z-axis direction.
  • FIG. 7 shows a vibration waveform 51X corresponding to the movement path in the X-axis direction and a vibration waveform 51Z corresponding to the movement path in the Z-axis direction.
  • the horizontal axis of FIG. 7 is time
  • the vertical axis of the vibration waveform 51X is the position in the X axis direction (axis position)
  • the vertical axis of the vibration waveform 51Z is the position in the Z axis direction (axis position).
  • the vibration waveform 51X is the first vibration waveform and the vibration waveform 51Z is the second vibration waveform.
  • the vibration waveform generated by the waveform generation unit 24 is a vibration waveform in the X-axis direction (moving path) and a vibration waveform in the Z-axis direction (moving path).
  • the waveform generation unit 24 generates a vibration waveform indicating that the Z-axis direction machining is started at a timing after the X-axis direction machining is completed.
  • the vibration correction unit 25 corrects the vibration of the generated vibration waveform before and after switching the moving path (step S30). That is, the vibration correction unit 25 causes the vibration waveform when the vibration waveform in the X-axis direction starts, the vibration waveform when the vibration waveform in the X-axis direction ends, and the vibration waveform when the vibration waveform in the Z-axis direction starts. The waveform and the vibration waveform when the vibration waveform in the Z-axis direction ends are corrected.
  • a vibration waveform 51X is obtained by correcting the amplitude at the start and end of the vibration waveform in the X-axis direction.
  • the vibration correction unit 25 sets the position coordinate of the tool 66A at the end of movement in the Z-axis to the Z-axis vibration waveform generated by the waveform generation unit 24, similarly to the convergence in the X-axis direction.
  • a vibration waveform 51Z is obtained by correcting the amplitude at the start and end of the vibration waveform in the Z-axis direction.
  • the vibration correction unit 25 adjusts the timing (time T1) at which the vibration waveform 51Z is started so that the tool 66A passes the specific passing point P0.
  • the vibration correction unit 25 corrects the start time of the moving vibration in the Z-axis direction (step S40).
  • the moving vibration is the movement of the tool 66A accompanied by the vibration.
  • FIG. 7 shows a vibration waveform 51Z in which the start time of the moving vibration in the Z-axis direction is shortened.
  • the control calculation unit 2X controls the movement and vibration of the tool 66A according to the machining program 101 and the vibration waveforms 51X and 51Z. That is, the tool 66A executes the moving vibration of the vibration waveforms 51X and 51Z shown in FIG. 7, whereby the processing of the moving path shown in FIG. 6 is realized.
  • the vibration correction unit 25 may correct the start time of the moving vibration based on the vibration waveform 51X. For example, the vibration correction unit 25 corrects the vibration waveform 51X so that the intermediate position between the vibration forward position and the vibration backward position passes through the specific passing point P0. Further, the vibration correction unit 25 adjusts the start time of the vibration waveform 51Z so that the intermediate position between the vibration forward position and the vibration reverse position passes through the specific passing point P0 together with the correction of the start time of the moving vibration of the vibration waveform 51X. You may correct. That is, the processing of the moving path shown in FIG. 6 may be realized by relatively adjusting the vibration start time of the vibration waveform 51X and the vibration start time of the vibration waveform 51Z.
  • the vibration correction unit 25 may set any passing timing to the time T2.
  • the vibration correction unit 25 may also set, for example, the timing at which the time T2 becomes the shortest, that is, the timing at which the specific passing point P0 passes the earliest, to the time T2, and the timing at which the time T1 becomes the shortest to the time T1. ..
  • the vibration correction unit 25 sets the timing at which the point closest to the intermediate position between the vibration forward position and the vibration reverse position in the vibration waveform 51X and the vibration waveform 51Z passes the specific passing point P0 at time T2. May be.
  • the numerical controller 1X adjusts the time T1, which is the start time of the moving vibration by the vibration waveform 51Z, so as to pass the specific passing point P0 based on the tolerance value, so that the vibration cutting corresponding to the tolerance value is realized. can do.
  • the tolerance value is increased, the machining time can be shortened, and when the tolerance value is decreased, the machining accuracy at the corner can be improved.Therefore, control the machining time and the machining accuracy during corner machining in low frequency vibration cutting. be able to.
  • the tolerance value can be specified in the machining program, the user can specify the accuracy during corner machining during low frequency vibration cutting at the user's discretion. Further, since the tolerance value can be specified by the ladder program, the user can specify the accuracy at the time of corner machining at the time of low frequency vibration cutting at the user's discretion. Further, since the tolerance value can be designated by a parameter, the precision at the time of corner machining can be designated by a parameter in advance without designating the tolerance value from the machining program or the ladder program.
  • the numerical controller 1X calculates the specific passing point P0 corresponding to the tolerance value, and moves along the moving path (X-axis) passing through the specific passing point P0. And a Z-axis vibration waveform). Therefore, it becomes possible to perform corner processing with desired processing accuracy. Further, it becomes possible to perform the corner processing in a desired processing time.
  • Embodiment 2 Next, a second embodiment of the present invention will be described with reference to FIGS.
  • FIG. 8 is a diagram showing a machining program used by the numerical control device according to the second embodiment.
  • FIG. 9 is a diagram showing a movement route generated by the numerical control device according to the second embodiment.
  • the numerical control device 1X generates the movement route shown in FIG. 9 from the machining program shown in FIG.
  • the movement route here includes a movement route in the X-axis direction and a movement route in the Z-axis direction.
  • the machining program 102 is used when the numerical controller 1X controls the machine tool 110.
  • the horizontal axis indicates the position in the Z-axis direction
  • the vertical axis indicates the position in the X-axis direction.
  • the movement path of the tool 66A passes through the right angle position.
  • the right angle position is the specific passing point P0.
  • the machining program 102 includes a spindle rotation speed command and the like in addition to the commands shown in FIG. Further, G165 of the machining program 102, like the machining program 101, includes the amplitude of vibration of the tool 66A, the number of vibrations during one rotation of the spindle 60, and the like.
  • FIG. 10 is a flow chart showing a processing procedure of moving route setting by the numerical control device according to the second embodiment.
  • a movement route setting process when the movement route passes through a right angle position will be described. It should be noted that duplicate description of the same processing as the processing described in FIG. 5 of the first embodiment will be omitted.
  • the movement command analysis unit 12 analyzes the movement command included in the machining program 102 to generate movement conditions in the X-axis direction and the Z-axis direction, and sends the generated movement conditions to the interpolation processing unit 38X. Further, the vibration command analysis unit 11 analyzes the vibration command included in the machining program 102 to generate vibration conditions in the X-axis direction and the Z-axis direction, and sends the generated vibration conditions to the interpolation processing unit 38X.
  • the tolerance value setting unit 23 sets the tolerance value used for the tolerance control based on priority information that defines whether the tolerance value set in the machining program or the ladder program is prioritized.
  • the tolerance value setting unit 23 sets the tolerance value to 0 when the machining shape of the machining workpiece 70 is a specific angle (for example, 60°) or less. It is determined whether or not is set (step S120).
  • the tolerance value setting unit 23 determines whether the machining shape of the workpiece 70 is less than or equal to the specific angle. It is determined (step S130).
  • the specific angle is 60° will be described, but the specific angle may be any angle as long as it is less than 90°.
  • FIG. 11 is a diagram showing the shape of the processed work when the corner angle of the processed work is 60° and the angle of the movement path is 120°
  • FIG. 12 shows the corner angle of the processed work is 300°. It is a figure which shows the shape of the workpiece
  • the tolerance value setting unit 23 determines, based on the machining program, whether or not the machining workpiece 70 is machined at a specified specific angle or less. For example, when the moving route from the first coordinate (a, b) to the second coordinate (c, d) is set by the machining program, only the coordinate information indicates that the moving route is at a corner of 60°. It cannot be determined whether there is a corner or a corner of 300°. Therefore, the tolerance value setting unit 23 determines whether the corner of the moving path is 60° or 300° based on the command of the nose R included in the machining program.
  • the nose R includes information on whether to machine the work 70 on the right side of the tool 66A or machine the work 70 on the left side of the tool 66A.
  • the G code of G42 is used in the machining program.
  • the G code of G41 is used in the machining program.
  • the tolerance value setting unit 23 determines the corner angle of the moving route from the information of the first and second coordinates and the above G code. That is, in FIGS. 11 and 12, when the machining program includes G42, it is determined that the machining workpiece 70 is machined at 60°, and when the machining program includes G41, It is determined that the processed workpiece 70 is processed at 120°.
  • the tolerance value is automatically set to 0 when the movement path is equal to or less than the specific angle (for example, 60° or less). It is also possible to set parameters so that
  • the numerical control device 1X does not execute the movement route setting process described in the second embodiment. ..
  • the numerical controller 1X does not execute the movement route setting process described in the second embodiment.
  • the waveform generation unit 24 generates a movement path in the X axis direction and a movement path in the Z axis direction.
  • the vibration correction unit 25 corrects the vibration waveform of the first movement route which is the movement route in the X-axis direction and the vibration waveform of the second movement route which is the movement route in the Z-axis direction based on the vibration waveform indicating the movement route. To do.
  • FIG. 13 is a diagram for explaining a vibration waveform generated by the numerical control device according to the second embodiment.
  • the vibration waveform here includes a vibration waveform in the X-axis direction and a vibration waveform in the Z-axis direction.
  • a vibration waveform 52X in the X-axis direction and a vibration waveform 52Z in the Z-axis direction are shown.
  • the horizontal axis of FIG. 13 is time
  • the vertical axis of the vibration waveform 52X is the position in the X-axis direction (axis position)
  • the vertical axis of the vibration waveform 52Z is the position in the Z-axis direction (axis position).
  • the vibration waveform 52X is the first vibration waveform and the vibration waveform 52Z is the second vibration waveform.
  • the vibration waveform generated by the waveform generation unit 24 is a vibration waveform in the X-axis direction and a vibration waveform in the Z-axis direction.
  • the waveform generation unit 24 generates a vibration waveform that starts machining in the Z-axis direction at a timing after the machining in the X-axis direction is completed. As a result, corner machining with a tolerance value of 0 becomes possible.
  • the amplitude is gradually increased so as not to move to a small X-axis position. That is, the vibration correction unit 25 gradually increases the amplitude in the X-axis direction while setting the amplitude at the position where the movement in the X-axis direction starts to 0.
  • the vibration correction unit 25 increases the amplitude until the amplitude reaches the amplitude defined by the vibration condition.
  • a vibration waveform 52X is obtained by correcting the amplitude at the start and end of the vibration waveform in the X-axis direction.
  • the amplitude is gradually increased so that it does not move to the position in the direction. That is, the vibration correction unit 25 gradually increases the amplitude in the Z-axis direction while setting the amplitude at the position where the movement in the Z-axis direction starts to 0.
  • the vibration correction unit 25 increases the amplitude until the amplitude reaches the amplitude defined by the vibration condition.
  • the vibration correction unit 25 sets the position coordinate of the tool 66A at the end of movement in the Z-axis to the Z-axis vibration waveform generated by the waveform generation unit 24, similarly to the convergence in the X-axis direction.
  • a vibration waveform 52Z is obtained by correcting the amplitude at the start and end of the vibration waveform in the Z-axis direction.
  • the vibration correction unit 25 sets the line connecting the vibration forward positions of each vibration waveform to be a straight line, and the line connecting the vibration backward positions to be a straight line. Correct the amplitude of each vibration waveform. As a result, it is possible to realize machining with a high corner angle accuracy without excessively cutting the machined work in the corner portion.
  • the control calculation unit 2X controls the movement and vibration of the tool 66A according to the machining program 102 and the vibration waveforms 52X and 52Z. That is, the tool 66A executes the moving vibration of the vibration waveforms 52X and 52Z shown in FIG. 13, whereby the processing of the moving path shown in FIG. 9 is realized.
  • the numerical control device 1X starts the movement in the Z-axis direction after the movement in the X-axis direction is completed. Therefore, the vibration waveform of the first movement path and the vibration waveform of the second movement path are not combined. Therefore, vibration cutting with high processing accuracy can be realized.
  • Embodiment 3 Next, a third embodiment of the invention will be described with reference to FIGS. 14 to 17.
  • the third embodiment a method of realizing the tolerance control by a method different from that of the first embodiment will be described.
  • a direction different from the X axis and the Z axis in the XZ plane is the third direction
  • the third direction is the direction in which the X axis reference vector and the Z axis reference vector are combined. ..
  • the machining program 101 is used as in the first embodiment.
  • FIG. 14 is a diagram showing a travel route generated by the numerical control device according to the third embodiment.
  • the numerical control device 1X generates the movement route shown in FIG. 14 from the machining program shown in FIG.
  • the movement route here includes a movement route in the X-axis direction and movement routes R11, R1, R12 in the Z-axis direction.
  • FIG. 14 shows a specific passing point P0 set to satisfy the tolerance value for the movement route shown in FIG. Further, in FIG. 14, the position on the X axis through which the tool 66A passes is indicated by a position P1, and the position on the Z axis through which the tool 66A passes is indicated by a position P2.
  • the route connecting the position P1 and the position P2 is the movement route R1 of the tool 66A.
  • the positions P1 and P2 are set so that the specific passing point P0 is on the movement route R1 connecting the positions P1 and P2.
  • the X coordinate of the position P1 is indicated by X2
  • the Z coordinate of the position P2 is indicated by Z2.
  • the numerical controller 1X sets the movement route so as to start from the starting point, pass through the position P1, the specific passing point P0, and the position P2 in order and reach the ending point. Specifically, the numerical controller 1X sets a movement route R11 from the start point to the position P1, a movement route R1 from the position P1 to the position P2, and a movement route R12 from the position P2 to the end point.
  • FIG. 15 is a flowchart showing a processing procedure of moving route setting by the numerical control device according to the third embodiment.
  • a process of setting a movement route using the movement route in the third direction will be described. It should be noted that duplicate description will be omitted for the processing similar to the processing described in FIG. 5 of the first embodiment or the processing described in FIG. 10 of the second embodiment.
  • the tolerance value setting unit 23 determines whether a tolerance value greater than 0 is set (whether the specified tolerance value>0) (step S210). When the tolerance value larger than 0 is not set (No in step S210), the numerical control device 1X does not execute the movement route setting process described in the third embodiment.
  • the tolerance value setting unit 23 sends the tolerance value to the waveform generation unit 24.
  • the waveform generation unit 24 generates a first movement route which is a movement route in the X-axis direction and a second movement route which is a movement route in the Z-axis direction.
  • the waveform generation unit 24 calculates the position P1 on the first movement route and the position P2 on the second movement route based on the tolerance value.
  • the waveform generation unit 24 generates the movement route R1 in the third direction connecting the position P1 on the first movement route and the position P2 on the second movement route (step S220).
  • the movement route R1 in the third direction is a route connecting the position P1 and the position P2, and is generated by combining the movement route in the X-axis direction and the movement route in the Z-axis direction.
  • the waveform generation unit 24 generates the movement route R1 so as to pass through the position P1, the specific passing point P0, and the position P2.
  • the moving route R1 may be a straight line or a curved line.
  • the waveform generation unit 24 deletes the movement route R2 that the tool 66A does not pass from the first movement route and deletes the movement route R3 that the tool 66A does not pass from the second movement route. That is, the waveform generation unit 24 deletes an unnecessary movement route from the first movement route and the second movement route based on the intersection of the movement route R1 in the third direction and each axis (step S230).
  • the intersection of the movement route R1 in the third direction and the X axis is the position P1
  • the intersection of the movement route R1 in the third direction and the Z axis is the position P2.
  • the waveform generation unit 24 generates a movement route R11 in which the movement route R2 is deleted from the first movement route, and generates a movement route R12 in which the movement route R3 is deleted from the second movement route.
  • the waveform generation unit 24 obtains a vibration forward position in which the amplitude of the vibration condition is added to the movement paths R1, R11, R12 and a vibration backward position in which the amplitude is subtracted.
  • the waveform generation unit 24 generates a vibration waveform of the movement paths R1, R11, R12 based on the vibration forward position and the vibration backward position.
  • the vibration waveform of the movement route R11 is a wave vibration type of the movement route in the X-axis direction
  • the vibration waveform of the movement route R12 is a vibration waveform of the movement route in the Z-axis direction.
  • the vibration waveform of the moving path R1 is the vibration waveform of the moving path in which the moving path in the X-axis direction and the moving path in the Z-axis direction are combined.
  • the vibration correction unit 25 corrects the vibration waveforms of the movement routes R1, R11, R12 based on the vibration waveforms indicating the movement routes R1, R11, R12.
  • FIG. 16 is a diagram for explaining a vibration waveform before the numerical control device according to the third embodiment corrects the start time of the moving vibration.
  • the vibration waveforms shown in FIG. 16 and FIG. 17 described later include a vibration waveform in the X-axis direction, a vibration waveform in the Z-axis direction, and a vibration waveform in the third direction in which the X-axis direction and the Z-axis direction are combined. I'm out.
  • FIG. 16 shows a vibration waveform when the vibration is corrected before and after the switching of the movement route.
  • the vibration waveform 53X is obtained by correcting the amplitude at the start and end of the vibration waveform in the X-axis direction.
  • the vibration waveform 53XZ is obtained by correcting the amplitude at the start and end of the vibration waveform in the third direction.
  • the amplitude is gradually increased.
  • a vibration waveform 53Z is obtained by correcting the amplitude at the start and end of the vibration waveform in the Z-axis direction.
  • time T5 the time when the machining with the vibration waveform 53X is completed and the machining with the vibration waveform 53XZ is started is indicated by time T5
  • time T6 the time when the machining with the vibration waveform 53XZ is completed and the machining with the vibration waveform 53Z is started is time T6. Shows.
  • the vibration correction unit 25 corrects the times T5 and T6, which are the start times of the moving vibrations (step S250).
  • FIG. 17 is a diagram for explaining a vibration waveform after the numerical control device according to the third embodiment corrects the start time of the moving vibration.
  • FIG. 17 illustrates a vibration waveform 54X in the X-axis direction, a vibration waveform 54XZ in which the start time of the moving vibration in the third direction is corrected, and a vibration waveform 54Z in which the start time of the moving vibration in the Z-axis direction is corrected.
  • the vibration waveform 54X is the first vibration waveform
  • the vibration waveform 54Z is the second vibration waveform
  • the vibration waveform 54XZ is the third vibration waveform.
  • the vibration waveform 54X is the same as the vibration waveform 53X shown in FIG.
  • the vibration waveform 54XZ is a vibration waveform in which the start time of the vibration waveform 53XZ shown in FIG. 16 is corrected
  • the vibration waveform 54Z is a vibration waveform in which the start time of the vibration waveform 53Z shown in FIG. 16 is corrected.
  • the control calculation unit 2X controls the movement and vibration of the tool 66A according to the machining program 101 and the vibration waveforms 54X, 54XZ, 54Z. That is, the tool 66A executes the moving vibration of the vibration waveforms 54X, 54XZ, 54Z shown in FIG. 17, whereby the processing of the moving path shown in FIG. 14 is realized.
  • the numerical controller 1X uses the tolerance value to set the specific passing point P0 corresponding to the tolerance value to the tool. A moving path through which 66A passes is generated. Therefore, it becomes possible to set the movement route corresponding to the tolerance value.
  • a fourth embodiment of the invention will be described with reference to FIGS. 18 to 21.
  • the process of correcting the vibration is performed before and after the switching of the movement path.
  • the cutting edge of the tool 66A does not interfere (contact) with the workpiece 70, the movement path is changed.
  • the process of correcting the vibration is not performed before and after switching.
  • FIG. 18 is a diagram showing a movement route generated by the numerical control device according to the fourth embodiment.
  • the numerical control device 1X generates the movement path of FIG. 18 from the machining program of FIG.
  • the movement route here includes a movement route in the X-axis direction and a movement route in the Z-axis direction.
  • FIG. 18 shows a specific passing point P0 set to satisfy the tolerance value for the moving route shown in FIG.
  • the X coordinate of the specific passing point P0 is indicated by X3
  • the Z coordinate is indicated by Z3.
  • the position on the X axis through which the tool 66A passes is indicated by a position P3
  • the position on the Z axis through which the tool 66A passes is indicated by a position P4.
  • the route connecting the position P3 and the position P4 is the movement route of the tool 66A.
  • the positions P3 and P4 are set so that the specific passing point P0 is on the movement route connecting the positions P3 and P4.
  • the numerical controller 1X sets a movement route so as to start from a start point and sequentially pass through a position P3, a specific passing point P0, and a position P4 to reach an end point.
  • FIG. 19 is a flowchart showing a processing procedure for setting a travel route by the numerical control device according to the fourth embodiment.
  • the processing of steps S310 and S320 is the same as the processing of steps S10 and S20 described with reference to FIG. 5 of the first embodiment, so description thereof will be omitted.
  • the waveform generation unit 24 generates a vibration waveform by the same processing as the processing described in the first embodiment. That is, the waveform generation unit 24 generates a vibration waveform corresponding to the movement path in the X axis direction by combining the command movement amount and the vibration movement amount in the X axis direction. In addition, the waveform generation unit 24 generates a vibration waveform corresponding to the movement path in the Z-axis direction by combining the command movement amount and the vibration movement amount in the Z-axis direction.
  • the vibration correction unit 25 acquires the positional relationship between the processed work 70 and the tool 66A (step S330). Specifically, the vibration correction unit 25 determines whether the machining workpiece 70 is inside the corner formed by the movement path of the tool 66A, based on the command of the nose R obtained by the analysis processing unit 37 analyzing. Get information on what is outside.
  • the inside of the corner means a side having an angle of less than 180°, and the outside of the corner means a side having an angle of more than 180°.
  • the vibration correction unit 25 determines that the tool 66A may extend outside the right angle position. In other words, when the machining work 70 is inside the corner of the movement path shown in FIG. 18, even if the tool 66A exceeds the range from the start position coordinate to the end position coordinate, the shape of the machining work 70 after machining is affected. Don't give. Therefore, the vibration correction unit 25 determines that the tool 66A and the workpiece 70 do not interfere with each other without correcting the moving path of the tool 66A when switching the moving direction.
  • the vibration correction unit 25 determines that the tool 66A should not protrude outside the right angle position.
  • FIG. 20 is a diagram for explaining a vibration waveform generated by the numerical control device according to the fourth embodiment.
  • the vibration waveform here includes a vibration waveform in the X-axis direction and a vibration waveform in the Z-axis direction.
  • a vibration waveform 55X corresponding to the movement path in the X-axis direction and a vibration waveform 55Z corresponding to the movement path in the Z-axis direction are shown.
  • the horizontal axis of FIG. 20 is time
  • the vertical axis of the vibration waveform 55X is the position in the X axis direction (axis position)
  • the vertical axis of the vibration waveform 55Z is the position in the Z axis direction (axis position).
  • the movement routes generated by the waveform generation unit 24 are the movement route in the X-axis direction and the movement route in the Z-axis direction.
  • the waveform generation unit 24 generates a movement path that starts machining in the Z-axis direction at the timing when machining in the X-axis direction is completed.
  • the vibration correction unit 25 determines whether the vibration forward position of the first movement path or the vibration backward position of the second movement path interferes with the work 70 based on the positional relationship between the work 70 and the tool 66A (Ste S340). That is, the vibration correction unit 25 determines whether or not the position indicated by the vibration waveform interferes with the workpiece 70 when the position indicated by the vibration waveform reaches the target position.
  • the vibration correction unit 25 switches the movement route as in the first embodiment. Vibration is corrected before and after (step S350). That is, when the vibration advance position of the first movement path interferes with the workpiece 70, the vibration correction unit 25 starts and stops the vibration advance position with respect to the vibration waveform in the X-axis direction so as not to interfere with the workpiece 70. Correct the amplitude at the end.
  • the vibration correction unit 25 starts and ends the vibration backward position with respect to the vibration waveform in the Z-axis direction so as not to interfere with the workpiece 70. Correct the amplitude at.
  • the vibration correction unit 25 does not correct the vibration before and after switching the movement path.
  • the vibration correction unit 25 determines the vibration waveform in the X-axis direction when the movement vibration of the first movement path ends. No correction is made to converge the amplitude. Further, when the tool 66A does not interfere with the workpiece 70 when the movement vibration of the second movement path starts, the vibration correction unit 25 slightly reduces the amplitude of the vibration waveform in the Z-axis direction when the second movement path starts. No correction is made to increase the value.
  • the vibration correction unit 25 starts the vibration waveform 55Z so that the tool 66A passes the specific passing point P0 (time as in the first embodiment) (time). Adjust T9). In other words, the vibration correction unit 25 corrects the start time of the moving vibration in the Z axis direction (step S360).
  • the control calculation unit 2X controls the movement and vibration of the tool 66A according to the machining program 101 and the vibration waveforms 55X and 55Z. That is, the tool 66A executes the moving vibration of the vibration waveforms 55X and 55Z shown in FIG. 20, whereby the processing of the moving path shown in FIG. 18 is realized.
  • the vibration of the tool 66A can be continued by not correcting the amplitude of the vibration waveform, so that the machining time can be shortened.
  • the tolerance value may be specified by the user (operator).
  • the user specifies the tolerance value by storing the tolerance value in the machining program or the ladder program.
  • the tolerance value designated by the user is not limited to the case where the tolerance value is designated directly, and may be designated in stages.
  • the tolerance value set in stages is stored in the storage unit 34 of the numerical controller 1X as tolerance stage information.
  • FIG. 21 is a diagram for explaining tolerance stage information used in the numerical control device according to the fourth embodiment.
  • the tolerance stage information 71 is information in which a tolerance value according to the processing accuracy is set in stages.
  • the tolerance level information 71 is information in which a tolerance value and a level of processing accuracy (processing time) are associated with each other. For example, in the tolerance level information 71, the first level has a tolerance value of 0 ⁇ m and the second level has a tolerance value of 10 ⁇ m. In the tolerance level information 71, the fourth level has a tolerance value of 30 ⁇ m, and the fifth level has a tolerance value of 40 ⁇ m.
  • the tolerance stage information 71 the lower the stage, the higher the processing accuracy, and the higher the stage, the higher the processing time. That is, the processing accuracy is best when processed with the first-step tolerance value, and the processing time is shortest when the fifth-step tolerance value is processed.
  • the tolerance value setting unit 23 of the numerical control device 1X sets the tolerance value based on the stage designated by the user and the tolerance stage information 71.
  • the tolerance value identification information may be used instead of the tolerance level information 71. That is, the tolerance stage information 71 may be information in which the tolerance value and the identification information are associated with each other.
  • the tolerance stage information 71 can be customized by an operation by the user. Further, the stage in the tolerance stage information 71 may be designated by a machining program or the like. In this case, the tolerance value setting unit 23 of the numerical control device 1X sets the tolerance value based on the stage designated by the machining program and the tolerance stage information 71. Also in the first to third embodiments, the tolerance value setting unit 23 may set the tolerance value based on the tolerance stage information 71.
  • the numerical control device 1X when the cutting edge of the tool 66A does not interfere with the workpiece 70, the numerical control device 1X does not correct the vibration before and after the switching of the movement path, so that the amplitude of the vibration waveform is maintained. Corner processing can be performed as it is. As a result, the processing time is not delayed due to the increase or decrease in the amplitude of the vibration waveform, so that the processing time can be prevented from becoming long.
  • Embodiment 5 Next, a fifth embodiment of the invention will be described with reference to FIG.
  • a tolerance value for performing machining on a desired moving path is learned by machine learning.
  • FIG. 22 is a diagram showing a configuration example of the numerical control device according to the fifth embodiment.
  • the numerical control device 1Y executes control of low-frequency vibration cutting on the machine tool 110, similarly to the numerical control devices 1X described in the first to fourth embodiments.
  • the numerical control device 1Y includes a machine learning device 400.
  • the machine learning device 400 learns a tolerance value used in the tolerance control and determines a behavior of the tolerance control in order to improve the accuracy of the tolerance control.
  • the numerical control device 1Y includes a control calculation unit 2Y instead of the control calculation unit 2X as compared with the numerical control device 1X.
  • the control calculation unit 2Y includes an interpolation processing unit 38Y instead of the interpolation processing unit 38X, and includes an axis data input/output unit 46 instead of the axis data output unit 40.
  • the control calculation unit 2Y includes a machine learning device 400.
  • the interpolation processing unit 38Y includes a tolerance detection unit 26 in addition to the constituent elements of the interpolation processing unit 38X.
  • the tolerance detection unit 26 acquires the tolerance value (m) determined by the tolerance value setting unit 23 and sends it to the machine learning device 400.
  • the axis data input/output unit 46 has feedback (FB: Feed-Back) sent from the X-axis servo control unit 91 and the Z-axis servo control unit 92. )
  • FB Feed-Back
  • a function of receiving the position (j) and inputting it to the machine learning device 400 is provided.
  • the FB position (j) is the actual position (coordinates) of the specific passing point when the tolerance control is performed using the tolerance value (m).
  • the axis data input/output unit 46 receives the position in the X-axis direction of the FB position (j) from the X-axis servo control unit 91, and receives the position of the FB position (j) in the Z-axis direction from the Z-axis servo control unit 92. Accept the position of.
  • the machine learning device 400 includes a learning unit 45 and a state observing unit 41.
  • the state observing unit 41 observes the FB position (j) and the tolerance value (m) as the state variable (i).
  • the learning unit 45 learns the behavior (n), that is, the tolerance value (m) to be determined next time, according to the training data set created based on the state variable (i) of the FB position (j) and the tolerance value (m). To do.
  • Reinforcement Learning is that an agent (action subject) in a certain environment observes the current state and determines the action (n) to be taken. The agent obtains a reward from the environment by selecting the action (n), and learns a policy for obtaining the greatest reward 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 in 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 of the best action a at the time t+1 is larger than the action value Q of the action a executed at the time t, the action value Q is increased, and vice versa. In that case, 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. As a result, the best action value in a certain environment is sequentially propagated to the action value in the previous environment.
  • the learning unit 45 includes a reward calculation unit 42 and a function updating unit 43.
  • the reward calculation unit 42 calculates the reward (k) based on the tolerance value (m) and the FB position (j), which are the state variables (i). For example, when the difference between the position of the specific passing point P0 corresponding to the tolerance value (m) and the FB position (j) that is the actual specific passing point P0 is small, the reward calculating unit 42 gives the reward (k). Increase (eg give a "1" reward). On the other hand, the reward calculation unit 42 reduces the reward (k) when the difference between the tolerance value (m) and the FB position (j) is large (for example, gives a reward of “ ⁇ 1”).
  • the reward calculation unit 42 may give a larger reward as the difference between the tolerance value (m) and the FB position (j) is smaller, and may give a smaller reward as the difference is larger.
  • the tolerance value (m) and the FB position (j) are extracted according to a known method. When the difference between the tolerance value (m) and the FB position (j) is “0”, the maximum reward is given.
  • the function updating unit 43 updates the function for determining the action (n) (next tolerance value) according to the reward calculated by the reward calculating unit 42. For example, in the case of Q learning, the function updating unit 43 uses the action value function Q(s t , a t ) represented by Expression (1) as a function for determining the next tolerance value (m). For example, the learning unit 45 determines the next tolerance value (m) at which the difference between the tolerance value (m) and the FB position (j) that maximizes the reward is “0”.
  • next tolerance value (m) is determined, only the determination condition is changed so as to be the next tolerance value (m) that maximizes the reward, and other control methods are the same as in the first to fourth embodiments. Good.
  • machine learning device 400 may be arranged outside the control calculation unit 2Y. Further, in the fifth embodiment, the case where machine learning is performed using reinforcement learning has been described, but machine learning is executed according to another known method such as neural network, genetic programming, functional logic programming, and support vector machine. You may.
  • the machine learning device 400 learns an appropriate tolerance value (m) based on the current tolerance value (m) and FB position (j). It is possible to improve the processing accuracy during the tolerance processing.
  • FIG. 23 is a diagram illustrating a hardware configuration example of the control calculation unit according to the first to fifth embodiments. Since the control calculation units 2X and 2Y have the same hardware configuration, the hardware configuration of the control calculation unit 2Y will be described here.
  • the control operation unit 2Y can be realized by the processor 301 and the memory 302 shown in FIG.
  • the processor 301 are a CPU (Central Processing Unit, a central processing unit, a processing unit, an arithmetic unit, a microprocessor, a microcomputer, a processor, and a DSP (Digital Signal Processor)) or a system LSI (Large Scale Integration).
  • the memory 302 are RAM (Random Access Memory) or ROM (Read Only Memory).
  • the control calculation unit 2Y is realized by the processor 301 reading and executing a program stored in the memory 302 for executing the operation of the control calculation unit 2Y. It can also be said that this program causes a computer to execute the procedure or method of the control calculation unit 2Y.
  • the memory 302 is also used as a temporary memory when the processor 301 executes various processes.
  • the program executed by the processor 301 may be a computer program product having a computer-readable, non-transitory recording medium including a plurality of instructions for performing data processing, which is computer-executable. ..
  • the program executed by the processor 301 causes a computer to execute data processing by a plurality of instructions.
  • control calculation unit 2Y may be realized by dedicated hardware. Further, the functions of the control calculation unit 2Y may be partially realized by dedicated hardware and partially realized by software or firmware.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Manufacturing & Machinery (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Numerical Control (AREA)
  • Turning (AREA)
  • Automatic Control Of Machine Tools (AREA)

Abstract

加工ワーク(70)の回転軸である主軸(60)と、加工ワーク(70)を振動切削加工するための工具(66A)をX軸方向に駆動する駆動軸(61X)と、工具(66A)または加工ワーク(70)をZ軸方向に駆動する駆動軸(61Z)と、を制御する数値制御装置(1X)であって、加工ワーク(70)を振動切削加工するための加工プログラムを記憶する記憶部(34)と、加工ワーク(70)へのコーナ加工時の許容誤差であるトレランス値に基づいて、振動切削加工の際に工具(66A)が通過する特定点を算出し、特定点を通過する工具(66A)の移動経路を示す工具(66A)の振動波形を生成する制御演算部(2X)と、を有し、制御演算部(2X)は、加工プログラムおよび振動波形に従って、工具(66A)の移動および振動を制御する。

Description

数値制御装置、数値制御方法、および機械学習装置
 本発明は、工具を振動させながらの振動切削を制御する数値制御装置、数値制御方法、および機械学習装置に関する。
 旋削加工の分野では、数値制御装置が、加工対象物を加工するための加工プログラムに従って工具の動作を制御し、これにより工具に加工対象物を加工させている。この数値制御装置の中には、工具の移動経路に沿って特定の周波数で工具を振動させながら加工対象物を振動切削させるものがある。
 特許文献1に記載の数値制御装置は、工具への移動指令から単位時間あたりの指令移動量を算出し、振動条件から単位時間あたりの振動移動量を算出し、指令移動量と振動移動量とを合成して合成移動量を算出し、合成移動量に基づいて振動切削を制御している。特許文献1に記載の数値制御装置は、加工対象物のコーナ部をX軸方向およびZ軸方向に加工する際に、工具がX軸方向の目標位置に到達するまで次の指令を待つのではなく、工具の振動前進位置が目標位置に到達した時点で、Z軸方向の指令を実行することによって、コーナ部を滑らかに加工している。
特許第5599523号公報
 しかしながら、上記特許文献1の技術では、特定形状のコーナ加工を行うことはできるが、所望の加工精度でコーナ加工を行うことはできなかった。
 本発明は、上記に鑑みてなされたものであって、所望の加工精度でコーナ加工を行うことができる数値制御装置を得ることを目的とする。
 上述した課題を解決し、目的を達成するために、本発明は、加工対象物の回転軸である主軸と、加工対象物を振動切削加工するための工具を第1の方向に駆動する第1の駆動軸と、工具または加工対象物を第2の方向に駆動する第2の駆動軸と、を制御する数値制御装置であって、加工対象物を振動切削加工するための加工プログラムを記憶する記憶部を有する。本発明の数値制御装置は、加工対象物へのコーナ加工時の許容誤差であるトレランス値に基づいて、振動切削加工の際に工具が通過する特定点を算出し、特定点を通過する工具の移動経路を示す工具の振動波形を生成する制御演算部を有する。制御演算部は、加工プログラムおよび振動波形に従って、工具の移動および振動を制御する。
 本発明にかかる数値制御装置は、所望の加工精度でコーナ加工を行うことができるという効果を奏する。
実施の形態1にかかる数値制御装置の構成例を示す図 実施の形態1にかかる工作機械の構成例を示す図 実施の形態1にかかる数値制御装置が用いる加工プログラムを示す図 実施の形態1にかかる数値制御装置が生成する移動経路を示す図 実施の形態1にかかる数値制御装置による移動経路設定の処理手順を示すフローチャート 実施の形態1にかかる数値制御装置が設定する特定通過点を説明するための図 実施の形態1にかかる数値制御装置が生成する振動波形を説明するための図 実施の形態2にかかる数値制御装置が用いる加工プログラムを示す図 実施の形態2にかかる数値制御装置が生成する移動経路を示す図 実施の形態2にかかる数値制御装置による移動経路設定の処理手順を示すフローチャート 加工ワークのコーナ角度が60°であり、移動経路の角度が120°である場合の加工ワークの形状を示す図 加工ワークのコーナ角度が300°であり、移動経路の角度が60°である場合の加工ワークの形状を示す図 実施の形態2にかかる数値制御装置が生成する振動波形を説明するための図 実施の形態3にかかる数値制御装置が生成する移動経路を示す図 実施の形態3にかかる数値制御装置による移動経路設定の処理手順を示すフローチャート 実施の形態3にかかる数値制御装置が移動振動の開始時間を補正する前の振動波形を説明するための図 実施の形態3にかかる数値制御装置が移動振動の開始時間を補正した後の振動波形を説明するための図 実施の形態4にかかる数値制御装置が生成する移動経路を示す図 実施の形態4にかかる数値制御装置による移動経路設定の処理手順を示すフローチャート 実施の形態4にかかる数値制御装置が生成する振動波形を説明するための図 実施の形態4にかかる数値制御装置で用いられるトレランス段階情報を説明するための図 実施の形態5にかかる数値制御装置の構成例を示す図 実施の形態1から5にかかる制御演算部のハードウェア構成例を示す図
 以下に、本発明の実施の形態にかかる数値制御装置、数値制御方法、および機械学習装置を図面に基づいて詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
実施の形態1.
 図1は、実施の形態1にかかる数値制御装置の構成例を示す図である。図2は、実施の形態1にかかる工作機械の構成例を示す図である。図2では、紙面の横方向がZ軸方向であり、紙面の縦方向がX軸方向である。
 数値制御(NC:Numerical Control)装置1Xは、旋盤加工を行う工作機械110に対して、工具66Aを振動させながらの加工である低周波振動切削(LFV:Low Frequency Vibration-cutting)の制御を実行するコンピュータである。以下の説明では低周波振動を単に振動という場合がある。
 数値制御装置1Xは、加工ワーク70へのコーナ加工時の許容誤差であるトレランス値に基づいて、工具66Aがトレランス値に対応する特定点(後述の特定通過点)を通過するよう移動経路を生成する。
 数値制御装置1Xは、2軸以上の駆動軸によって、工具66Aと加工対象物である加工ワーク70とを相対的に移動させながら、加工ワーク70の加工を制御する。すなわち、数値制御装置1Xは、工具66Aまたは加工ワーク70を移動させるZ軸方向の駆動軸と、工具66Aを移動させるX軸方向の駆動軸とを有した工作機械110に対し、工具66Aによって加工ワーク70を振動切削させる。
 実施の形態1では、数値制御装置1Xが、加工ワーク70の回転軸である1つの主軸60と、工具66Aを移動させる2つの駆動軸を備えた工作機械110を制御する場合について説明する。加工ワーク70は、工作機械110によって加工される被加工物である。なお、図2では、主軸60として主軸60の中心線を図示している。
 数値制御装置1Xは、制御演算部2Xと、入力操作部3と、表示部4と、PLC(Programmable Logic Controller:プログラマブルロジックコントローラ)36を操作するための機械操作盤などのPLC操作部5とを有する。図1には、工作機械110の構成要素である駆動部90が示されている。
 駆動部90は、工作機械110が備える刃物台65Aなどを駆動させる。駆動部90は、加工ワーク70を回転させながら、工具66Aを駆動する駆動機構である。実施の形態1では、工具66Aの駆動方向が、X軸方向に平行な方向とZ軸方向に平行な方向との2方向である。駆動部90は、X軸方向およびZ軸方向に沿って、工具66Aを移動および振動させる。すなわち、駆動部90が、X軸方向およびZ軸方向の駆動を制御することによって、X-Z平面内を刃物台65Aが移動する。なお、軸方向は装置構成によるので、軸方向は、上記方向に限定されない。図2における右向きの矢印が、実施の形態1で工具66Aが加工ワーク70を加工する加工方向を示す。
 駆動部90は、数値制御装置1X上で規定された各軸方向に工具66Aを移動させるサーボモータ901,902と、サーボモータ901,902の位置および速度を検出する検出器97,98とを備えている。また、駆動部90は、数値制御装置1Xからの指令に基づいて、サーボモータ901,902を制御する各軸方向のサーボ制御部を備えている。各軸方向のサーボ制御部は、検出器97,98からの位置および速度に基づいて、サーボモータ901,902へのフィードバック制御を行う。
 サーボ制御部のうちの、X軸サーボ制御部91は、サーボモータ901を制御することによって工具66AのX軸方向の動作を制御し、Z軸サーボ制御部92は、サーボモータ902を制御することによって工具66AのZ軸方向の動作を制御する。なお、工作機械110が2つ以上の刃物台を備えていてもよい。この場合、駆動部90は、1つの刃物台毎に、1組のX軸サーボ制御部91と、Z軸サーボ制御部92と、サーボモータ901,902と、検出器97,98とを備える。
 また、駆動部90は、加工ワーク70を回転させるための主軸60を回転させる主軸モータ911と、主軸モータ911の位置および回転数を検出する検出器211とを備えている。検出器211が検出する回転数は、主軸モータ911の回転数に対応している。
 また、駆動部90は、数値制御装置1Xからの指令に基づいて、主軸モータ911を制御する主軸サーボ制御部200を備えている。主軸サーボ制御部200は、検出器211からの位置および速度に基づいて、主軸モータ911へのフィードバック制御を行う。
 なお、工作機械110が2つの加工ワーク70を同時に加工する場合には、駆動部90は、主軸モータ911と、検出器211と、主軸サーボ制御部200とを2組備える。この場合、工作機械110は、2つ以上の刃物台を備えている。
 入力操作部3は、制御演算部2Xに情報を入力する手段である。入力操作部3は、キーボード、ボタンまたはマウスなどの入力手段によって構成され、ユーザによる数値制御装置1Xに対するコマンドなどの入力、または加工プログラムもしくはパラメータなどを受付けて制御演算部2Xに入力する。表示部4は、液晶表示装置などの表示手段によって構成され、制御演算部2Xによって処理された情報を表示画面に表示する。PLC操作部5は、ユーザによる操作を受付けて、操作に対応する指示をPLC36に送る。
 制御部である制御演算部2Xは、入力制御部32と、データ設定部33と、記憶部34と、画面処理部31と、解析処理部37と、制御信号処理部35と、PLC36と、補間処理部38Xと、加減速処理部39と、軸データ出力部40と、を有する。なお、PLC36は、制御演算部2Xの外部に配置されてもよい。
 記憶部34は、パラメータ記憶エリア341、加工プログラム記憶エリア343、表示データ記憶エリア344、および共有エリア345を有している。パラメータ記憶エリア341内には、制御演算部2Xの処理で使用されるパラメータ等が格納される。具体的には、パラメータ記憶エリア341内には、数値制御装置1Xを動作させるための制御パラメータ、サーボパラメータおよび工具データが格納される。加工プログラム記憶エリア343内には、加工ワーク70の加工に用いられる加工プログラム(後述する加工プログラム101等)が格納される。実施の形態1の加工プログラムは、工具66Aを振動させる指令である振動指令と、工具66Aを移動させる指令である移動指令とを含んでいる。
 表示データ記憶エリア344内には、表示部4で表示される画面表示データが格納される。画面表示データは、表示部4に情報を表示するためのデータである。また、記憶部34には、一時的に使用されるデータを記憶する共有エリア345が設けられている。
 画面処理部31は、表示データ記憶エリア344に格納された画面表示データを表示部4に表示させる制御を行う。入力制御部32は、入力操作部3から入力される情報を受付ける。データ設定部33は、入力制御部32で受付けられた情報を記憶部34に記憶させる。すなわち、入力操作部3が受付けた入力情報は、入力制御部32およびデータ設定部33を介して記憶部34に書き込まれる。
 制御信号処理部35は、PLC36に接続されており、PLC36から、工作機械110を動作させるリレーなどの信号情報を受付ける。制御信号処理部35は、受付けた信号情報を、記憶部34の共有エリア345に書き込む。これらの信号情報は、加工運転時に補間処理部38Xが参照する。また、制御信号処理部35は、解析処理部37によって共有エリア345に補助指令が出力されると、この補助指令を共有エリア345から読み出してPLC36に送る。補助指令は、数値制御軸である駆動軸を動作させる指令以外の指令である。補助指令の例は、MコードまたはTコードである。
 PLC36は、PLC操作部5に対して操作が行われると、この操作に応じた動作を実行する。PLC36は、PLC36が実行する機械動作が記述されたラダープログラムを格納している。PLC36は、補助指令であるTコードまたはMコードを受付けると、ラダープログラムに従って補助指令に対応する処理を工作機械110に実行する。PLC36は、補助指令に対応する処理を実行した後、加工プログラムの次のブロックを実行させるために、機械制御が完了したことを示す完了信号を制御信号処理部35に送る。
 制御演算部2Xでは、制御信号処理部35と、解析処理部37と、補間処理部38Xとが、記憶部34を介して接続されており、記憶部34を介して情報の書き込み、および読み出しを行う。以下の説明では、制御信号処理部35と、解析処理部37と、補間処理部38Xとの間の情報の書き込み、および読み出しを説明する際に記憶部34が介されていることを省略する場合がある。
 加工プログラムの選択は、ユーザが入力操作部3で加工プログラム番号を入力することによって行われる。この加工プログラム番号は、入力制御部32およびデータ設定部33を介して共有エリア345に書き込まれる。機械操作盤等のサイクルスタートをトリガとして、解析処理部37は、共有エリア345内の選択された加工プログラム番号に対応する加工ワーク70を指定したワーク指定情報を共有エリア345から受付けると、ワーク指定情報に対応する加工プログラムを加工プログラム記憶エリア343内から読み出して、加工プログラムの各ブロック(各行)に対して解析処理を行う。解析処理部37は、例えば、Gコード(軸移動等に関する指令)、Tコード(工具交換指令など)、Sコード(主軸モータ回転数指令)、およびMコード(機械動作指令)を解析する。
 解析処理部37は、解析した行にMコードまたはTコードが含まれている場合には、解析結果を共有エリア345および制御信号処理部35を介してPLC36に送る。また、解析処理部37は、解析した行にMコードが含まれている場合には、Mコードを、制御信号処理部35を介してPLC36に送る。PLC36はMコードに対応する機械制御を実行する。実行が完了した場合、制御信号処理部35を介してMコードの完了を示す結果が記憶部34に書き込まれる。補間処理部38Xは記憶部34に書き込まれた実行結果を参照する。
 また、解析処理部37は、Gコードが含まれている場合には、共有エリア345を介して解析結果を補間処理部38Xに送る。具体的には、解析処理部37は、Gコードに対応する移動条件を生成して補間処理部38Xに送る。また、解析処理部37は、Sコードで指定された主軸回転数を補間処理部38Xに送る。主軸回転数は、単位時間あたりの主軸60の回転の回数である。移動条件は、工具66Aが加工位置を移動させていくための工具送りの条件であり、刃物台65Aを移動させる速度、刃物台65Aを移動させる位置などで示される。例えば、工具66Aの工具送りは、工具66AをX軸方向(+X方向)およびZ軸方向(+Z方向)に進ませる。
 また、解析処理部37は、振動指令解析部11と、移動指令解析部12とを有している。振動指令解析部11は、X軸方向およびZ軸方向への振動指令を解析する手段である。振動指令解析部11は、加工プログラム(後述の加工プログラム101など)に含まれる振動指令を解析してX軸方向およびZ軸方向への振動条件を生成し、生成した振動条件を、共有エリア345を介して補間処理部38Xに送る。
 振動条件は、振動切削を実行する際の振動の条件である。振動条件の例は、振動切削の際の振動回数である。X軸方向の振動回数は、主軸60が1回転する間の刃物台65AのX軸方向の振動回数であり、Z軸方向の振動回数は、主軸60が1回転する間の刃物台65AのZ軸方向の振動回数である。刃物台65Aの振動回数は、主軸60が1回転する時間を基準とした振動の周波数に対応している。
 移動指令解析部12は、加工プログラムに含まれる移動指令を解析してX軸方向およびZ軸方向の移動条件を生成し、生成した移動条件を、共有エリア345を介して補間処理部38Xに送る。加工プログラムでは、切屑を細かく分断することができるよう、主軸回転数、振動指令および移動指令が設定されている。移動指令解析部12は、Gコードに対応する移動条件を生成して補間処理部38Xに送る。移動条件の例は、刃物台65Aの移動速度、刃物台65Aを移動させる位置などである。
 X軸方向の振動指令は、刃物台65AをX軸方向に振動させる指令であり、Z軸方向の振動指令は、刃物台65AをZ軸方向に振動させる指令である。X軸方向の移動指令は、刃物台65AをX軸方向に移動させる指令であり、Z軸方向の移動指令は、刃物台65AをZ軸方向に移動させる指令である。
 補間処理部38Xは、指令移動量算出部21と、振動移動量算出部22と、トレランス値設定部23と、波形生成部24と、振動補正部25とを備えている。補間処理部38Xは、主軸回転数、刃物台65AのX軸方向およびZ軸方向の振動回数を、共有エリア345から読み出す。
 指令移動量算出部21は、解析処理部37から解析結果である移動条件を受け取り、移動条件に対する補間処理を行い、補間処理の結果に対応する単位時間当たりの指令移動量を算出する。具体的には、指令移動量算出部21は、解析処理部37が解析したX軸方向の移動条件に基づいて、刃物台65Aを単位時間でX軸方向に移動させる指令移動量を算出して波形生成部24に送る。また、指令移動量算出部21は、解析処理部37が解析したZ軸方向の移動条件に基づいて、刃物台65Aを単位時間でZ軸方向に移動させる指令移動量を算出して波形生成部24に送る。
 トレランス値設定部23は、コーナ加工時のトレランス値を設定する。具体的には、トレランス値設定部23は、加工プログラム、ラダープログラム、またはパラメータによってトレランス値が指定されているか否かをチェックし、何れの場所で規定されているトレランス値を優先させるかを規定した優先情報に基づいて、トレランス値を設定する。トレランス値設定部23は、設定したトレランス値を波形生成部24に送る。優先情報は、記憶部34内に格納されている。
 実施の形態1では、切削方向は図2におけるX軸方向およびZ軸方向である。工具66Aの移動は、振動切削のための移動と、加工ワーク70に対して加工を進める方向(切削方向)への移動と、を足し合わせたものである。したがって、波形生成部24は、振動切削のための振動移動量と、加工ワーク70に対して加工を進めるための切削方向への移動量とを足し合わせる。振動移動量は、例えば、波形で示される。
 具体的には、波形生成部24は、指令移動量算出部21から送られてきたX軸方向の指令移動量と、振動移動量算出部22から送られてきたX軸方向の振動移動量とを合成することによってX軸方向の合成移動量を生成する。また、波形生成部24は、指令移動量算出部21から送られてきたZ軸方向の指令移動量と、振動移動量算出部22から送られてきたZ軸方向の振動移動量とを合成することによってZ軸方向の合成移動量を生成する。
 X軸方向の合成移動量は、横軸を時間、縦軸をX軸方向の位置としたグラフ上での波形で示され、Z軸方向の合成移動量は、横軸を時間、縦軸をZ軸方向の位置としたグラフ上での波形で示される。波形生成部24は、補間処理の結果であるX軸方向およびZ軸方向の合成移動量を示す移動経路の波形を振動補正部25に送る。以下、振動切削の際の工具66Aの移動経路を示す波形を、振動波形という。
 振動補正部25は、X軸方向の振動波形および加工の目標位置(X座標)に基づいて、X軸方向の振動波形が終了する際のX軸方向の振動波形を補正する。また、振動補正部25は、Z軸方向の振動波形および加工の目標位置(Z座標)に基づいて、Z軸方向の振動波形が開始する際および終了する際のZ軸方向の振動波形を補正する。
 また、振動補正部25は、トレランス値に基づいて、移動経路が通過する座標を算出し、算出した座標を移動経路が通過するよう、Z軸方向の移動を開始するタイミングを調整する。このとき、振動補正部25は、算出した座標と、X軸方向の振動波形と、Z軸方向の振動波形と、に基づいて、Z軸方向の振動波形(移動および振動)を開始するタイミングを調整する。振動補正部25は、補正したX軸方向の振動波形および補正したZ軸方向の振動波形を加減速処理部39に送る。
 加減速処理部39は、補間処理部38Xから供給された補間処理の結果に対して、加速度をなめらかに変化させるための加減速処理を行う。加減速処理部39は、移動の開始および停止の際の加減速処理を行う。具体的には、加減速処理部39は、X軸方向の合成移動量に基づいて、X軸方向への移動指令を生成し、Z軸方向の合成移動量に基づいて、Z軸方向への移動指令を生成する。加減速処理部39が処理する位置指令は、単位時間あたりの速度指令である。
 加減速処理部39は、加減速処理の処理結果である速度指令を軸データ出力部40に送る。なお、加減速処理部39は、主軸回転数に対しては加減速処理を行わない。加減速処理部39は、主軸回転数に対応する回転数指令を軸データ出力部40に送る。加減速処理部39が生成する回転数指令は、ステップ指令である。
 軸データ出力部40は、速度指令を駆動部90に出力する。具体的には、軸データ出力部40は、X軸への速度指令をX軸サーボ制御部91に出力し、Z軸への速度指令をZ軸サーボ制御部92に出力する。また、軸データ出力部40は、主軸60への回転数指令を主軸サーボ制御部200に出力する。これにより、X軸サーボ制御部91、Z軸サーボ制御部92、主軸サーボ制御部200は、工具66AのX軸方向およびZ軸方向の動作と、主軸60の回転動作とを制御する。
 ここで、数値制御装置1Xによる加工制御の動作手順の概略について説明する。工作機械110による加工が開始される際には、PLC36が制御信号処理部35へサイクルスタート信号を出力し、制御信号処理部35が、サイクルスタート信号を補間処理部38Xに出力する。これにより、補間処理部38Xが、解析処理部37を起動する。
 この後、解析処理部37が加工プログラムを1ブロック毎に読み込んで解析し、解析結果である振動条件、移動条件および主軸回転数を共有エリア345に格納する。そして、補間処理部38Xが、解析処理部37の解析結果に基づいて、X軸方向の単位時間あたりの合成移動量およびZ軸方向の単位時間あたりの合成移動量を算出して加減速処理部39に送る。
 これにより、加減速処理部39は、X軸方向の合成移動量に基づいて、加減速処理されたX軸方向への移動指令を生成し、Z軸方向の合成移動量に基づいて、加減速処理されたZ軸方向への移動指令を生成する。これらの移動指令は、軸データ出力部40から駆動部90に出力され、駆動部90が移動指令に従ってX軸およびZ軸の動作を制御する。
 実施の形態1にかかる工作機械110は、刃物台65Aに駆動軸がある1スピンドル1刃物台の旋盤である。1スピンドル1刃物台の旋盤は、1つの主軸と1つの刃物台を具備した旋盤である。刃物台65Aは、タレットともよばれる。工作機械110の一例は、タレット旋盤である。なお、工作機械110では、刃物台65AがZ軸方向に移動および振動する代わりに加工ワーク70がZ軸方向に移動および振動してもよい。
 工作機械110は、第1スピンドル75を備えた主軸台を有している。第1スピンドル75は、加工ワーク70が取り付けられた状態で回転し、これにより加工ワーク70を回転させる。第1スピンドル75による加工ワーク70の回転軸が、主軸台に設けられた主軸60である。
 工作機械110は、刃物台65Aを備えており、刃物台65AにX軸方向の駆動軸61XおよびZ軸方向の駆動軸61Zが設けられている。刃物台65Aは、X軸方向およびZ軸方向に移動可能となっている。工作機械110では、X軸方向が第1の方向であり、X軸方向の駆動軸61Xが第1の駆動軸である。また、工作機械110では、Z軸方向が第2の方向であり、Z軸方向の駆動軸61Zが第2の駆動軸である。図2では、駆動軸61Xとして駆動軸61Xの中心線を図示し、駆動軸61Zとして駆動軸61Zの中心線を図示している。数値制御装置1Xは、主軸60と、駆動軸61Xと、駆動軸61Zとを制御することによって、工具66Aと加工ワーク70の動作を制御する。
 刃物台65Aは、旋回式の刃物台である。刃物台65Aは、複数の工具66Aを取り付け可能となっており、工具66Aを旋回させることで使用する工具66Aを切り替える。   
 刃物台65Aは、X軸方向およびZ軸方向に振動することによって、工具66Aが加工ワーク70の振動切削加工を行う。すなわち、刃物台65Aは、X軸方向およびZ軸方向を足し合わせた方向に振動する。つまり、刃物台65Aは、刃物台65Aの加工方向に平行な方向に振動する。なお、実施の形態1では、説明の便宜上、刃物台65Aの振動を工具66Aの振動として説明する場合がある。
 図3は、実施の形態1にかかる数値制御装置が用いる加工プログラムを示す図である。図4は、実施の形態1にかかる数値制御装置が生成する移動経路を示す図である。実施の形態1では、数値制御装置1Xが、図3の加工プログラムから図4の移動経路を生成する。ここでの移動経路は、X軸方向の移動経路と、Z軸方向の移動経路とを含んでいる。
 加工プログラム101は、数値制御装置1Xが工作機械110を制御する際に用いられる。加工プログラム101は、加工時間を短縮するために、トレランス値=mとした場合の加工プログラム例である。図4に示す移動経路の図では、横軸がZ軸方向の位置であるZ軸位置を示し、縦軸がX軸方向の位置であるX軸位置を示している。図4の移動経路では、X=0.0、Z=0.0が移動の開始位置であり、X=10.0、Z=10.0が移動の終了位置(目標位置)である。
 工具66Aが図2に示した工作機械110のように加工ワーク70の上側に載置されている場合、図4の移動経路の左側に工具66Aがあり、右側が加工ワーク70である。
 工具66Aが穴あけドリルであり、Z軸方向に沿って加工ワーク70の右側から左側に向かって穴あけ加工を行う場合、図4の移動経路の右側に工具66Aがあり、左側が加工ワーク70である。この場合、Z軸が主軸60と同じ軸となる。また、X軸方向が、穴の径方向となり、Z軸方向が穴の深さ方向となる。以下の説明では、工具66Aが図2に示した工作機械110のように加工ワーク70の上側に載置されている場合について説明する。
 トレランス値は、加工ワーク70へのコーナ加工時の許容誤差を示す値であり、Kアドレスで指定される。トレランス値は、値が大きいほど許容誤差が大きくなる。トレランス値は、値が小さいほど加工精度が良くなり、値が大きいほど加工時間が短くなる。トレランス値が0の場合、工具66Aは、Z=0.0、X=10.0を通過する。すなわち、トレランス値が0の場合、加工ワーク70は、Z=0.0、X=10.0の箇所で直角に加工される。以下の説明では、トレランス値が0の場合のZ=0.0、X=10.0の座標(コーナ部分)を直角位置という場合がある。
 トレランス値がmの場合、工具66Aの移動経路と、直角位置との最短距離が距離mとなるよう、工具66Aは、直角位置から距離mだけ離れた位置を通過する。以下の説明では、Z=0.0かつX=0.0の位置を開始点といい、Z=10.0かつX=10.0の位置を終了点という場合がある。また、工具66Aの移動経路と直角位置との最短距離が距離mとなる座標を特定通過点という場合がある。
 第1ブロックであるN01のG0は位置決め指令であり、第2ブロックであるN02のG165は低周波振動指令であり、第3ブロックであるN03のG95は毎回点送り(同期送り)の指令である。
 位置決め指令は、特定の位置へ移動させる指令である。ここでの位置決め指令では、X座標が0.0であり、Z座標が0.0である。低周波振動指令は、低周波振動を実行させる指令である。低周波振動指令では、トレランス値が指定される。ここでのトレランス値は、mである。毎回点送りの指令は、主軸60の1回転当たりの送り速度Fを指定する指令である。
 G0、G165、G95は、特定のGコードが指令されるまで有効な指令(モーダル指令)である。G95である毎回点送りが指令されると、この指令のブロックから主軸60の1回転当たりの送り速度Fで工具66Aが工具送りされる。ここでの送り速度Fは、0.05である。
 また、ここでの毎回点送りの指令では、工具66Aを移動させるX座標(X=10.0)が指定されている。このため、指定されたX座標まで送り速度Fで工具66Aが工具送りされる。また、第4ブロックであるN04では、工具66Aを移動させるZ座標(Z=10.0)が指定されている。このため、指定されたZ座標まで送り速度Fで工具66Aが工具送りされる。
 実施の形態1では、工具66Aが指定されたX座標(X=10.0)まで移動する途中で、指定されたZ座標(Z=10.0)への工具66Aの移動を開始する。すなわち、数値制御装置1Xは、工具66Aが、開始点である原点から第1の特定位置までは、X軸方向へ移動し、第1の特定位置から第2の特定位置まではX軸方向とZ軸方向との両方向に移動し、第2の特定位置から終了点まではZ軸方向へ移動するよう、Z軸方向の移動を開始するタイミングを調整する。この場合において、数値制御装置1Xは、第1の特定位置から第2の特定位置までの移動経路において、X軸方向の振動波形とZ軸方向の振動波形とが同時に特定通過点を通過するよう、Z軸方向の移動を開始するタイミングを調整する。すなわち、数値制御装置1Xは、X軸方向の移動とZ軸方向の移動との重ね合わせ量である移動位置が、特定通過点を通過するようZ軸方向の振動波形の開始タイミングを補正する。第5ブロックであるN05では、G165の指令が終了される。
 以上のように、加工プログラム101が実行されると、工具66Aは、X座標=0.0、Z座標=0.0まで移動する。さらに、工具66Aは、主軸60の1回転当たりの送り速度F=0.05でトレランス値=mを満たすよう振動しながらX=10.0かつZ=10.0まで移動する。
 工具66Aが穴あけドリルであり、Z軸方向に沿って加工ワーク70の右側から左側に向かって穴あけ加工を行う場合、工具66Aは、X座標=10.0、Z座標=10.0まで移動する。さらに、工具66Aは、主軸60の1回転当たりの送り速度F=0.05でトレランス値=mを満たすよう振動しながらZ=0.0まで移動し、主軸60の1回転当たりの送り速度F=0.05でトレランス値=mを満たすよう振動しながらX=0.0まで移動する。
 なお、加工プログラム101には、図3に示した指令の他に、主軸回転数指令などが含まれている。主軸回転数指令は、主軸60を1分間あたりに特定の回転数だけ回転させる指令である。また、G165には、工具66の振動の振幅、主軸60が1回転する間の振動回数などが含まれている。
 図5は、実施の形態1にかかる数値制御装置による移動経路設定の処理手順を示すフローチャートである。図5では、移動経路が特定通過点を通過する場合の移動経路の設定処理について説明する。
 数値制御装置1Xの解析処理部37では、移動指令解析部12が、加工プログラム101に含まれる移動指令を解析してX軸方向およびZ軸方向の移動条件を生成し、生成した移動条件を、共有エリア345を介して補間処理部38Xに送る。
 また、振動指令解析部11は、加工プログラム101に含まれる振動指令を解析してX軸方向およびZ軸方向への振動条件を生成し、生成した振動条件を、共有エリア345を介して補間処理部38Xに送る。振動指令解析部11が生成する振動条件には、振動の周波数、振幅、およびトレランス値などが含まれている。
 トレランス値設定部23は、0よりも大きいトレランス値が設定されているか否か(トレランス値>0が設定されているか否か)を判定する(ステップS10)。トレランス値は、ラダープログラム、加工プログラム、パラメータ等に設定されている。トレランス値設定部23は、上記ラダープログラム、加工プログラム、パラメータ等の何れに設定されているトレランス値を優先させるかを規定した優先情報に基づいて、トレランス制御に用いるトレランス値を設定し、設定したトレランス値が0よりも大きいか否かを判定する。
 例えば、優先順位の高い順番がラダープログラム、加工プログラム、パラメータの順であるとする。この場合、トレランス値設定部23は、ラダープログラムにてトレランス値が指定されている場合には、ラダープログラムのトレランス値をトレランス制御に用いるトレランス値に設定する。また、トレランス値設定部23は、ラダープログラムにてトレランス値が指定されていない場合には、加工プログラムのトレランス値をトレランス制御に用いるトレランス値に設定する。また、トレランス値設定部23は、ラダープログラムおよび加工プログラムの両方にてトレランス値が指定されていない場合には、パラメータのトレランス値をトレランス制御に用いるトレランス値に設定する。なお、トレランス値の優先情報は、ユーザによる操作によって切替え可能である。
 0よりも大きいトレランス値が設定されていない場合(ステップS10、No)、数値制御装置1Xは、実施の形態1で説明する移動経路の設定処理は実行しない。
 0よりも大きいトレランス値が設定されている場合(ステップS10、Yes)、トレランス値設定部23は、トレランス値に基づいて、工具66Aが通過する位置である特定通過点(X座標およびZ座標)を算出する(ステップS20)。
 図6は、実施の形態1にかかる数値制御装置が設定する特定通過点を説明するための図である。図6では、図4に示した移動経路に対し、トレランス値を満たすために設定された特定通過点P0を示している。特定通過点P0は、X座標=X1、Z座標=Z1で示されている。特定通過点P0は、Z=0.0、X=10.0の位置から距離mだけ離れた位置である。特定通過点P0は、工具66Aの移動経路上の位置のうちZ=0.0、X=10.0の位置との距離が最短となる位置である。
 波形生成部24は、指令移動量算出部21から送られてきたX軸方向の指令移動量と、振動移動量算出部22から送られてきたX軸方向の振動移動量とを合成することによってX軸方向の合成移動量を示す移動経路の振動波形を生成する。
 また、波形生成部24は、指令移動量算出部21から送られてきたZ軸方向の指令移動量と、振動移動量算出部22から送られてきたZ軸方向の振動移動量とを合成することによってZ軸方向の合成移動量を示す振動波形を生成する。
 波形生成部24は、移動経路の振動波形を生成する際には、移動経路に振動条件の振幅を加算した振動前進位置と、振幅を減算した振動後進位置とを求める。振動前進位置は、移動経路の振動波形の極大点であり、振動後進位置は、移動経路の振動波形の極小点である。波形生成部24は、振動前進位置および振動後進位置に基づいて、X軸方向およびZ軸方向の移動経路の振動波形を生成する。
 振動補正部25は、移動経路を示す振動波形に基づいて、移動経路のうちの第1移動経路および第2移動経路の振動波形を補正する。補正前の第1移動経路は、X軸方向の移動経路であり、振幅が一定値であり、X座標がX=0.0からX=10.0までの移動経路である。補正前の第2移動経路は、Z軸方向の移動経路であり、振幅が一定値であり、Z座標がZ=0.0からZ=10.0までの移動経路である。
 振動補正部25は、指定されたトレランス値=mに合わせて、第1移動経路が終わる際の振動波形と、第2移動経路が始まる際の振動波形を補正する。
 図7は、実施の形態1にかかる数値制御装置が生成する振動波形を説明するための図である。ここでの振動波形は、X軸方向の振動波形と、Z軸方向の振動波形とを含んでいる。図7では、X軸方向の移動経路に対応する振動波形51Xと、Z軸方向の移動経路に対応する振動波形51Zとを示している。図7の横軸は時間であり、振動波形51Xの縦軸はX軸方向の位置(軸位置)であり、振動波形51Zの縦軸はZ軸方向の位置(軸位置)である。実施の形態1では、振動波形51Xが第1の振動波形であり、振動波形51Zが第2の振動波形である。
 波形生成部24が生成する振動波形は、X軸方向の振動波形(移動経路)およびZ軸方向の振動波形(移動経路)である。波形生成部24は、X軸方向の加工が完了した後のタイミングでZ軸方向の加工を開始することを示す振動波形を生成する。この生成した振動波形に対し、振動補正部25は、移動経路の切り替え前後で振動を補正する(ステップS30)。すなわち、振動補正部25は、X軸方向の振動波形が開始する際の振動波形と、X軸方向の振動波形が終了する際の振動波形と、Z軸方向の振動波形が開始する際の振動波形と、Z軸方向の振動波形が終了する際の振動波形と、を補正する。
 具体的には、振動補正部25は、波形生成部24が生成したX軸方向の振動波形に対し、X軸方向の移動を開始する際の工具66Aの位置座標がX=0.0よりも小さくならないよう振幅を制限し、振幅を少しずつ増加させる。すなわち、振動補正部25は、X軸方向の移動が開始する位置での振幅を0としつつ、X軸方向の振幅を少しずつ増やしていく。振動補正部25は、振幅が振動条件で規定された振幅となるまで振幅を増やす。
 また、振動補正部25は、波形生成部24が生成したX軸方向の振動波形に対し、X軸方向の移動が終了する際の工具66Aの位置座標がX=10.0より大きくならないよう振幅を0に収束させて停止させる。すなわち、振動補正部25は、X軸方向の振動波形で示される位置が目標位置に到達する際に目標位置を超えて振動せず、X軸方向の移動が終了する目標位置での振幅が0になるよう、X軸方向の振幅を少しずつ減らして停止させる。X軸方向の振動波形に対して、開始および終了の際の振幅を補正したものが、振動波形51Xである。
 また、振動補正部25は、波形生成部24が生成したZ軸方向の振動波形に対し、Z軸方向の移動を開始する際の工具66Aの位置座標がZ=0.0よりも小さくならないよう振幅を制限し、振幅を少しずつ増加させる。すなわち、振動補正部25は、Z軸方向の移動の開始位置での振幅を0としつつ、Z軸方向の振動波形で示される位置が振動波形の開始位置を超えてZ軸の-方向へ振動しないよう、Z軸方向の振幅を少しずつ増やしていく。振動補正部25は、振幅が振動条件で規定された振幅となるまで振幅を増やす。
 また、振動補正部25は、波形生成部24が生成したZ軸方向の振動波形に対し、X軸方向の収束と同様に、Z軸方向の移動が終了する際の工具66Aの位置座標がZ=10.0より大きくならないよう振幅を0に収束させて停止させる。Z軸方向の振動波形に対して、開始および終了の際の振幅を補正したものが、振動波形51Zである。
 続いて、振動補正部25は、工具66Aが特定通過点P0を通過するよう、振動波形51Zを開始するタイミング(時間T1)を調整する。換言すると、振動補正部25は、Z軸方向の移動振動の開始時間を補正する(ステップS40)。移動振動は、振動を伴う工具66Aの移動である。図7では、Z軸方向の移動振動の開始時間を早めた振動波形51Zを図示している。
 振動補正部25は、振動波形51Xが、X=X1の位置を通過する時間T2で、振動波形51ZがZ=Z1の位置を通過するよう時間T1を調整する。すなわち、振動補正部25は、振動波形51Xおよび振動波形51Zが、時間T2で、特定通過点P0であるX=X1、Z=Z1の位置を通過するよう時間T1を調整する。このように、振動補正部25は、振動波形51X,51Zの振動波形に特定通過点P0を通過させるため、振動波形51XがX=X1に到達した時点で振動波形51ZがZ=Z1に到達するよう、振動波形51Zによる移動振動の開始時間を早める。
 制御演算部2Xは、加工プログラム101および振動波形51X,51Zに従って、工具66Aの移動および振動を制御する。すなわち、工具66Aが、図7に示す振動波形51X,51Zの移動振動を実行することにより、図6に示した移動経路の加工が実現される。
 なお、振動補正部25は、振動波形51Xによる移動振動の開始時間を補正してもよい。例えば、振動補正部25は、振動前進位置と振動後進位置との中間位置が特定通過点P0を通過するよう振動波形51Xを補正する。さらに、振動補正部25は、振動波形51Xの移動振動の開始時間の補正と合わせて、振動前進位置と振動後進位置との中間位置が特定通過点P0を通過するよう振動波形51Zの開始時間を補正してもよい。すなわち、振動波形51Xの振動開始時間と振動波形51Zの振動開始時間とを相対的に調整することにより、図6に示される移動経路の加工が実現されればよい。
 また、振動波形51Xが、特定通過点P0を複数回通過する場合、振動補正部25は、何れの通過タイミングを時間T2に設定してもよい。また、振動波形51Zが、特定通過点P0を複数回通過可能な場合、振動補正部25は、何れの通過タイミングを時間T2に設定してもよい。振動補正部25は、例えば、時間T2が最も短くなるタイミング、すなわち最も早く特定通過点P0を通過するタイミングを時間T2に設定し、時間T1が最も短くなるタイミングを時間T1に設定することもできる。これにより、振動波形51Xおよび振動波形51Zによって工具66Aが加工を実行する時間を短くすることができる。あるいは、振動補正部25は、振動波形51Xと振動波形51Zの両波形において、振動前進位置と振動後進位置との中間位置に最も近い点が特定通過点P0を通過するタイミングを時間T2に設定してもよい。
 このように数値制御装置1Xは、トレランス値に基づいて、特定通過点P0を通過するよう振動波形51Zによる移動振動の開始時間である時間T1を調整するので、トレランス値に対応する振動切削を実現することができる。トレランス値を大きくした場合は加工時間を短縮でき、トレランス値を小さくした場合はコーナ部分における加工精度を向上させることができるので、低周波振動切削におけるコーナ加工時の加工時間および加工精度をコントロールすることができる。
 また、トレランス値は、加工プログラムで指定できるので、ユーザは、ユーザの判断で低周波振動切削時におけるコーナ加工時の精度を指定することができる。また、トレランス値は、ラダープログラムで指定できるので、ユーザは、ユーザの判断で低周波振動切削時におけるコーナ加工時の精度を指定することができる。また、トレランス値は、パラメータで指定できるので、トレランス値を加工プログラムまたはラダープログラムから指定しなくても、予めコーナ加工時の精度をパラメータで指定することができる。
 このように実施の形態1では、トレランス値が0よりも大きい場合に、数値制御装置1Xが、トレランス値に対応する特定通過点P0を算出し、特定通過点P0を通過する移動経路(X軸およびZ軸の振動波形)を生成する。したがって、所望の加工精度でコーナ加工を行うことが可能となる。また、所望の加工時間でコーナ加工を行うことが可能となる。
実施の形態2.
 つぎに、図8から図13を用いてこの発明の実施の形態2について説明する。実施の形態2では、数値制御装置1Xが、加工形状の特定角度が所定角度以下であればトレランス値=0である場合の移動経路を設定する。
 図8は、実施の形態2にかかる数値制御装置が用いる加工プログラムを示す図である。図9は、実施の形態2にかかる数値制御装置が生成する移動経路を示す図である。実施の形態2では、数値制御装置1Xが、図8の加工プログラムから図9の移動経路を生成する。ここでの移動経路は、X軸方向の移動経路と、Z軸方向の移動経路とを含んでいる。
 加工プログラム102は、数値制御装置1Xが工作機械110を制御する際に用いられる。加工プログラム102は、加工精度を向上させるために、トレランス値=0(図8では、トレランス値を「0.0」と記載)とした場合の加工プログラム例である。図9の移動経路を示す図では、横軸がZ軸方向の位置を示し、縦軸がX軸方向の位置を示している。
 トレランス値が0の場合、工具66Aの移動経路が直角位置を通過する。換言すると、トレランス値=0では、直角位置が特定通過点P0である。
 実施の形態2では、工具66Aが指定されたX座標(X=10.0)まで移動した後、指定されたZ座標(Z=10.0)への移動を開始する。すなわち、数値制御装置1Xは、工具66Aを、開始点から直角位置までX軸方向へ移動させ、直角位置から終了点までZ軸方向へ移動させる。
 なお、加工プログラム102には、図8に示した指令の他に、主軸回転数指令などが含まれている。また、加工プログラム102のG165には、加工プログラム101と同様に、工具66Aの振動の振幅、主軸60が1回転する間の振動回数などが含まれている。
 図10は、実施の形態2にかかる数値制御装置による移動経路設定の処理手順を示すフローチャートである。図10では、移動経路が直角位置を通過する場合の移動経路の設定処理について説明する。なお、実施の形態1の図5で説明した処理と同様の処理については重複する説明を省略する。
 移動指令解析部12は、加工プログラム102に含まれる移動指令を解析してX軸方向およびZ軸方向の移動条件を生成し、生成した移動条件を補間処理部38Xに送る。また、振動指令解析部11は、加工プログラム102に含まれる振動指令を解析してX軸方向およびZ軸方向への振動条件を生成し、生成した振動条件を補間処理部38Xに送る。
 トレランス値設定部23は、加工プログラムまたはラダープログラム等の何れに設定されているトレランス値を優先させるかを規定した優先情報に基づいて、トレランス制御に用いるトレランス値を設定する。トレランス値設定部23は、トレランス制御に用いるトレランス値が0に設定(トレランス値=0が設定)されているか否かを判定する(ステップS110)。
 トレランス値が0に設定されていない場合(ステップS110、No)、トレランス値設定部23は、加工ワーク70の加工形状が特定角度(例えば、60°)以下であればトレランス値を0にすることが設定されているか否かを判定する(ステップS120)。
 加工形状が特定角度以下であればトレランス値を0にすることが設定されている場合(ステップS120、Yes)、トレランス値設定部23は、加工ワーク70の加工形状が特定角度以下であるか否かを判定する(ステップS130)。ここでは、特定角度が60°である場合について説明するが、特定角度は90°未満であれば何れの角度であってもよい。加工ワーク70が60°に加工される場合、工具66Aの移動経路は120°であり、加工ワーク70が300°に加工される場合、工具66Aの移動経路は60°である。
 図11は、加工ワークのコーナ角度が60°であり、移動経路の角度が120°である場合の加工ワークの形状を示す図であり、図12は、加工ワークのコーナ角度が300°であり、移動経路の角度が60°である場合の加工ワークの形状を示す図であり、いずれの加工ワークも特定角度は60°である。すなわち、特定角度は、工具66Aの移動経路の角度の180°未満の角度を示す。
 トレランス値設定部23は、加工プログラムに基づいて、加工ワーク70が指定された特定角度以下に加工されるか否かを判定する。例えば、加工プログラムによって、第1の座標(a,b)から第2の座標(c,d)への移動経路が設定されている場合、座標の情報のみでは、移動経路が60°のコーナであるか300°のコーナであるかを判定できない。そこで、トレランス値設定部23は、加工プログラムに含まれるノーズRの指令に基づいて、移動経路のコーナが60°であるか300°であるかを判定する。ノーズRは、工具66Aの右側で加工ワーク70を加工するか、工具66Aの左側で加工ワーク70を加工するかの情報を含んでいる。例えば、図11に示すように、工具66Aの右側で加工ワーク70を加工する場合、加工プログラムではG42のGコードが用いられる。また、図12に示すように、工具66Aの左側で加工ワーク70を加工する場合、加工プログラムではG41のGコードが用いられる。
 トレランス値設定部23は、第1および第2の座標の情報と上述のGコードとから移動経路のコーナの角度を判定する。すなわち、図11、図12においては、加工プログラムにG42が含まれている場合には、加工ワーク70が60°に加工されると判断し、加工プログラムにG41が含まれている場合には、加工ワーク70が120°に加工されると判断する。
 加工ワーク70の加工形状が特定角度以下である場合(ステップS130、Yes)、加工精度が重要となるので、トレランス値設定部23は、トレランス値を0に設定する(ステップS140)。
 このように、ラダープログラム等でトレランス値が0に設定されていない場合であっても、移動経路が特定角度以下(例えば、60°以下)となるような場合には、トレランス値が自動で0となるようにパラメータ設定しておくことも可能である。
 加工形状が特定角度以下であればトレランス値を0にすることが設定されていない場合(ステップS120、No)、数値制御装置1Xは、実施の形態2で説明する移動経路の設定処理は実行しない。
 また、加工ワーク70の加工形状が特定角度よりも大きい場合(ステップS130、No)、数値制御装置1Xは、実施の形態2で説明する移動経路の設定処理は実行しない。
 ラダープログラム等でトレランス値=0に設定されている場合(ステップS110、Yes)、またはトレランス値設定部23がトレランス値=0に設定した場合(ステップS140)、トレランス値設定部23は、トレランス値=0を波形生成部24に送る。波形生成部24は、X軸方向の移動経路およびZ軸方向の移動経路を生成する。
 振動補正部25は、移動経路を示す振動波形に基づいて、X軸方向の移動経路である第1移動経路の振動波形、およびZ軸方向の移動経路である第2移動経路の振動波形を補正する。
 振動補正部25は、指定されたトレランス値=0に合わせて、第1移動経路が終わる際の振動波形と、第2移動経路が始まる際の振動波形を補正する。
 図13は、実施の形態2にかかる数値制御装置が生成する振動波形を説明するための図である。ここでの振動波形は、X軸方向の振動波形およびZ軸方向の振動波形を含んでいる。図13では、X軸方向の振動波形52Xと、Z軸方向の振動波形52Zとを示している。図13の横軸は時間であり、振動波形52Xの縦軸はX軸方向の位置(軸位置)であり、振動波形52Zの縦軸はZ軸方向の位置(軸位置)である。実施の形態2では、振動波形52Xが第1の振動波形であり、振動波形52Zが第2の振動波形である。
 波形生成部24が生成する振動波形は、X軸方向の振動波形およびZ軸方向の振動波形である。波形生成部24は、X軸方向の加工が完了した後のタイミングで、Z軸方向の加工を開始する振動波形を生成する。これにより、トレランス値0でのコーナ加工が可能となる。
 波形生成部24は、X軸方向の振動波形が、X=10.0の位置に到達する時間T3にZ軸方向の加工が開始される振動波形を生成する。Z軸方向の振動波形が、Z=10.0の位置に到達する時間は時間T4である。なお、振動波形の到達時間は、図13で示されるように、振動波形の振動後進位置を結ぶ直線が終点位置に到達する時点とする。
 振動補正部25は、指定されたトレランス値=0に合わせて、移動経路の切り替え前後で振動を補正する。このとき、振動補正部25は、実施の形態1で説明した処理と同様の処理によって、第1移動経路(X軸方向の移動経路)から第2移動経路(Z軸方向の移動経路)への切り替え前後で振動を補正する(ステップS150)。
 具体的には、振動補正部25は、波形生成部24が生成したX軸方向の振動波形に対し、X軸方向の振動を開始する際の工具66Aの位置座標がX=0.0よりも小さなX軸方向の位置に移動しないよう振幅を少しずつ増加させる。すなわち、振動補正部25は、X軸方向の移動が開始する位置での振幅を0としつつ、X軸方向の振幅を少しずつ増やしていく。振動補正部25は、振幅が振動条件で規定された振幅となるまで振幅を増やす。
 また、振動補正部25は、波形生成部24が生成したX軸方向の振動波形に対し、X軸方向の移動が終了する際の工具66Aの位置座標がX=10.0より大きくならないよう振幅を収束させる。X軸方向の振動波形に対して、開始および終了の際の振幅を補正したものが、振動波形52Xである。
 また、振動補正部25は、波形生成部24が生成したZ軸方向の振動波形に対し、Z軸方向の振動を開始する際の工具66Aの位置座標がZ=0.0よりも小さなZ軸方向の位置に移動しないよう振幅を少しずつ増加させる。すなわち、振動補正部25は、Z軸方向の移動が開始する位置での振幅を0としつつ、Z軸方向の振幅を少しずつ増やしていく。振動補正部25は、振幅が振動条件で規定された振幅となるまで振幅を増やす。
 また、振動補正部25は、波形生成部24が生成したZ軸方向の振動波形に対し、X軸方向の収束と同様に、Z軸方向の移動が終了する際の工具66Aの位置座標がZ=10.0より大きくならないよう振幅を0に収束させる。Z軸方向の振動波形に対して、開始および終了の際の振幅を補正したものが、振動波形52Zである。
 本実施の形態では、図13に示すように、振動補正部25が、各振動波形の振動前進位置を結ぶ線が直線となるように、また振動後進位置を結ぶ線が直線となるように、各振動波形の振幅を補正する。これにより、コーナ部において加工ワークを削りすぎず、さらにコーナ角度の精度が良い加工が実現できる。
 制御演算部2Xは、加工プログラム102および振動波形52X,52Zに従って、工具66Aの移動および振動を制御する。すなわち、工具66Aが、図13に示す振動波形52X,52Zの移動振動を実行することにより、図9に示した移動経路の加工が実現される。
 このように実施の形態2によれば、トレランス値が0の場合には、数値制御装置1Xが、X軸方向の移動が終了した後にZ軸方向の移動を開始させるので、移動経路の切り替え前後で第1移動経路の振動波形と第2移動経路の振動波形とが合成されることはない。したがって、加工精度の良い振動切削を実現することができる。
 また、振動波形の振幅が各軸の終点に向かって収束していくため、X軸方向の移動が終了した時点でX軸方向の移動を停止させることを加工プログラム内で規定する必要がないので、加工プログラムを容易に作成することが可能となる。
実施の形態3.
 つぎに、図14から図17を用いてこの発明の実施の形態3について説明する。実施の形態3では、実施の形態1とは異なる方法でトレランス制御を実現する方法について説明する。実施の形態3では、トレランス値=mの場合に、X軸方向およびZ軸方向と異なる第3の方向の移動経路を用いた移動経路を設定する。実施の形態3では、X-Z平面内でX軸、Z軸とは異なる方向を第3の方向とし、第3の方向をX軸の基準ベクトルとZ軸の基準ベクトルを合成した方向とする。実施の形態3でも、実施の形態1と同様に加工プログラム101が用いられる。
 図14は、実施の形態3にかかる数値制御装置が生成する移動経路を示す図である。実施の形態3では、数値制御装置1Xが、図3の加工プログラムから図14の移動経路を生成する。ここでの移動経路は、X軸方向の移動経路と、Z軸方向の移動経路R11,R1,R12とを含んでいる。
 図14に示す移動経路の図では、横軸がZ軸方向の位置(Z軸位置)を示し、縦軸がX軸方向の位置(X軸位置)を示している。図14では、図4に示した移動経路に対し、トレランス値を満たすために設定された特定通過点P0を示している。また、図14では、工具66Aが通過するX軸上の位置を位置P1で示し、工具66Aが通過するZ軸上の位置を位置P2で示している。
 位置P1と位置P2とを結ぶ経路は、工具66Aの移動経路R1である。位置P1,P2は、特定通過点P0が位置P1と位置P2とを結ぶ移動経路R1上となるよう設定される。図14では、位置P1のX座標はX2で示され、位置P2のZ座標はZ2で示されている。数値制御装置1Xは、開始点からスタートして、位置P1、特定通過点P0、位置P2を順番に通過して終了点まで到達するよう移動経路を設定する。具体的には、数値制御装置1Xは、開始点から位置P1までの移動経路R11と、位置P1から位置P2までの移動経路R1と、位置P2から終了点までの移動経路R12とを設定する。
 ここで、移動経路R11,R1,R12の設定処理について説明する。図15は、実施の形態3にかかる数値制御装置による移動経路設定の処理手順を示すフローチャートである。図15では、第3の方向の移動経路を用いた移動経路を設定する処理について説明する。なお、実施の形態1の図5で説明した処理または実施の形態2の図10で説明した処理と同様の処理については重複する説明を省略する。
 トレランス値設定部23は、0よりも大きいトレランス値が設定されているか否か(指定されたトレランス値>0であるか否か)を判定する(ステップS210)。0よりも大きいトレランス値が設定されていない場合(ステップS210、No)、数値制御装置1Xは、実施の形態3で説明する移動経路の設定処理は実行しない。
 0よりも大きいトレランス値が設定されている場合(ステップS210、Yes)、トレランス値設定部23は、トレランス値を波形生成部24に送る。波形生成部24は、X軸方向の移動経路である第1移動経路、およびZ軸方向の移動経路である第2移動経路を生成する。波形生成部24が生成する第1移動経路は、X=0.0からX=10.0までを結ぶ移動経路である。波形生成部24が生成する第2移動経路は、Z=0.0からZ=10.0までを結ぶ移動経路である。
 波形生成部24は、トレランス値に基づいて、第1移動経路上の位置P1および第2移動経路上の位置P2を算出する。波形生成部24は、第1移動経路上の位置P1と第2移動経路上の位置P2とを結ぶ第3の方向の移動経路R1を生成する(ステップS220)。第3の方向の移動経路R1は、位置P1から位置P2までを結ぶ経路であり、X軸方向の移動経路とZ軸方向の移動経路とが合成されることによって生成される。波形生成部24は、位置P1、特定通過点P0、位置P2を通過するよう、移動経路R1を生成する。なお、移動経路R1は、直線でもよいし曲線でもよい。
 さらに、波形生成部24は、第1移動経路から工具66Aが通過しない移動経路R2を削除し、第2移動経路から工具66Aが通過しない移動経路R3を削除する。すなわち、波形生成部24は、第3の方向の移動経路R1と各軸との交点に基づいて、第1移動経路および第2移動経路から不要な移動経路を削除する(ステップS230)。第3の方向の移動経路R1とX軸との交点が位置P1であり、第3の方向の移動経路R1とZ軸との交点が位置P2である。波形生成部24は、第1移動経路から移動経路R2を削除した移動経路R11を生成し、第2移動経路から移動経路R3を削除した移動経路R12を生成する。移動経路R11は、X軸上のX=0.0からX=X2までを結ぶ移動経路であり、移動経路R12は、Z軸上のZ=Z2からZ=10.0までを結ぶ移動経路である。
 波形生成部24は、移動経路R1,R11,R12に振動条件の振幅を加算した振動前進位置と、振幅を減算した振動後進位置とを求める。波形生成部24は、振動前進位置および振動後進位置に基づいて移動経路R1,R11,R12の振動波形を生成する。移動経路R11の振動波形は、X軸方向の移動経路の波振動形であり、移動経路R12の振動波形は、Z軸方向の移動経路の振動波形である。移動経路R1の振動波形は、X軸方向の移動経路とZ軸方向の移動経路とが合成された移動経路の振動波形である。
 振動補正部25は、移動経路R1,R11,R12を示す振動波形に基づいて、移動経路R1,R11,R12の振動波形を補正する。
 図16は、実施の形態3にかかる数値制御装置が移動振動の開始時間を補正する前の振動波形を説明するための図である。図16および後述の図17に示す振動波形は、X軸方向の振動波形と、Z軸方向の振動波形と、X軸方向およびZ軸方向を合成した第3の方向の振動波形と、を含んでいる。図16では、移動経路の切り替え前後で振動が補正された場合の振動波形を示している。
 振動補正部25は、実施の形態1で説明した処理と同様の処理によって、移動経路の切り替え前後で振動を補正する(ステップS240)。具体的には、振動補正部25は、波形生成部24が生成したX軸方向の移動経路R11に対し、X軸方向の移動が開始する際の工具66AのX座標がX=0.0より小さくならないよう少しずつ振幅を増加させる。
 また、振動補正部25は、波形生成部24が生成したX軸方向の移動経路R11に対し、X軸方向の移動が終了する際の工具66AのX座標がX=X2より大きくならないよう振幅を0に収束させる。X軸方向の振動波形に対して、開始および終了の際の振幅を補正したものが、振動波形53Xである。
 また、振動補正部25は、波形生成部24が生成した第3の方向の移動経路R1に対し、第3の方向の移動が開始する際の工具66AのZ座標がZ=0.0よりも小さくならず、且つ工具66AのX座標がX=X2よりも小さくならないよう少しずつ振幅を増加させる。
 また、振動補正部25は、波形生成部24が生成した第3の方向の移動経路R1に対し、第3の方向の移動が終了する際の工具66AのX座標がX=10.0より大きくならず、且つ工具66AのZ座標がZ=Z2よりも大きくならないよう振幅を0に収束させる。第3の方向の振動波形に対して、開始および終了の際の振幅を補正したものが、振動波形53XZである。
 また、振動補正部25は、波形生成部24が生成したZ軸方向の移動経路R12に対し、Z軸方向の移動が開始する際の工具66AのZ座標がZ=Z2よりも小さくならないよう少しずつ振幅を増加させる。
 また、振動補正部25は、波形生成部24が生成したZ軸方向の移動経路R12に対し、Z軸方向の移動が終了する際の工具66AのZ座標がZ=10.0よりも大きくならないよう振幅を0に収束させる。Z軸方向の振動波形に対して、開始および終了の際の振幅を補正したものが、振動波形53Zである。
 図16では、振動波形53Xによる加工が完了し、振動波形53XZによる加工が開始する時間を時間T5で示し、振動波形53XZによる加工が完了し、振動波形53Zによる加工が開始する時間を時間T6で示している。
 振動補正部25は、移動振動の開始時間である時間T5,T6を補正する(ステップS250)。図17は、実施の形態3にかかる数値制御装置が移動振動の開始時間を補正した後の振動波形を説明するための図である。
 図17では、X軸方向の振動波形54Xと、第3の方向の移動振動の開始時間を補正した振動波形54XZと、Z軸方向の移動振動の開始時間を補正した振動波形54Zとを図示している。実施の形態3では、振動波形54Xが第1の振動波形であり、振動波形54Zが第2の振動波形であり、振動波形54XZが第3の振動波形である。
 振動波形54Xは、図16に示した振動波形53Xと同様の振動波形である。振動波形54XZは、図16に示した振動波形53XZの開始時間を補正した振動波形であり、振動波形54Zは、図16に示した振動波形53Zの開始時間を補正した振動波形である。
 振動補正部25は、振動波形54XZが特定通過点P0を通過し、且つX=X2の位置に最初に到達する時間T7で第3の方向の加工が開始されるよう振動波形54XZの開始時間を調整する。すなわち、振動補正部25は、振動波形54XZの開始時間を時間T7に変更する。このように、振動補正部25は、振動波形54Xが、X=X2の位置に到達するタイミングと、振動波形54XZを開始するタイミングが同じになるよう、振動波形54XZの開始時間を早める。これにより、工具66Aの振動を停止させることなく移動方向の切り替えを行うことができるので、滑らかな振動波形を実現することができる。
 また、振動補正部25は、振動波形54XZが、Z=Z2、X=10.0の位置に最初に到達する時間T8で、振動波形54Zによる加工が開始されるよう振動波形54Zの開始時間を調整する。ここで、振動波形が所定の位置に最初に到達する時間とは、当該振動波形の極大点を結ぶ直線が所定の位置に到達する時間を言う。すなわち、振動補正部25は、振動波形54Zの開始時間を時間T8に変更する。このように、振動補正部25は、振動波形54XZが、Z=Z2、X=10.0の位置に最初に到達するタイミングと、振動波形54Zを開始するタイミングが同じになるよう、振動波形54Zの開始時間を早める。これにより、工具66Aの振動を停止させることなく移動方向の切り替えを行うことができるので、滑らかな振動波形を実現することができる。
 制御演算部2Xは、加工プログラム101および振動波形54X,54XZ,54Zに従って、工具66Aの移動および振動を制御する。すなわち、工具66Aが、図17に示す振動波形54X,54XZ,54Zの移動振動を実行することにより、図14に示した移動経路の加工が実現される。
 なお、振動波形54XZを開始させるタイミングは、振動波形54Xが、X=X2に最初に到達したタイミングから振動波形54Xの振幅が0となるまでの間であれば、何れのタイミングであってもよい。また、振動波形54Zを開始させるタイミングは、振動波形54XZが、Z=Z2に最初に到達したタイミングから振動波形54XZの振幅が0となるまでの間であれば、何れのタイミングであってもよい。
 このように実施の形態3では、実施の形態1と同様に、トレランス値が0よりも大きい場合に、数値制御装置1Xが、トレランス値に基づいて、トレランス値に対応する特定通過点P0を工具66Aが通過する移動経路を生成する。したがって、トレランス値に対応する移動経路を設定することが可能となる。
実施の形態4.
 つぎに、図18から図21を用いてこの発明の実施の形態4について説明する。実施の形態1から3では、移動経路の切り替え前後で振動を補正する処理を行ったが、実施の形態4では、工具66Aの刃先が加工ワーク70に干渉(接触)しない場合には、移動経路の切り替え前後で振動を補正する処理を行わない。
 実施の形態4の処理を実施の形態1から3の何れかに適用する場合、何れに適用する場合も同様の処理が行われるので、実施の形態4では、実施の形態1で説明した移動経路の設定処理の際に移動経路の切り替え前後で振動を補正する処理を行わない場合について説明する。
 図18は、実施の形態4にかかる数値制御装置が生成する移動経路を示す図である。実施の形態4では、数値制御装置1Xが、図3の加工プログラムから図18の移動経路を生成する。ここでの移動経路は、X軸方向の移動経路と、Z軸方向の移動経路とを含んでいる。
 図18に示す移動経路の図では、横軸がZ軸方向の位置(Z軸位置)を示し、縦軸がX軸方向の位置(X軸位置)を示している。図18では、図4に示した移動経路に対し、トレランス値を満たすために設定された特定通過点P0を示している。図18では、特定通過点P0のX座標をX3で示し、Z座標をZ3で示している。また、図18では、工具66Aが通過するX軸上の位置を位置P3で示し、工具66Aが通過するZ軸上の位置を位置P4で示している。
 位置P3と位置P4とを結ぶ経路は、工具66Aの移動経路である。位置P3,P4は、特定通過点P0が位置P3と位置P4とを結ぶ移動経路上となるよう設定される。数値制御装置1Xは、開始点からスタートして、位置P3、特定通過点P0、位置P4を順番に通過して終了点まで到達するよう移動経路を設定する。
 図19は、実施の形態4にかかる数値制御装置による移動経路設定の処理手順を示すフローチャートである。ステップS310,S320の処理は、実施の形態1の図5で説明したステップS10,S20の処理と同様であるので、その説明を省略する。
 波形生成部24は、実施の形態1で説明した処理と同様の処理によって、振動波形を生成する。すなわち、波形生成部24は、X軸方向の指令移動量および振動移動量を合成することによってX軸方向の移動経路に対応する振動波形を生成する。また、波形生成部24は、Z軸方向の指令移動量および振動移動量を合成することによってZ軸方向の移動経路に対応する振動波形を生成する。
 振動補正部25は、加工ワーク70と工具66Aの位置関係を取得する(ステップS330)。具体的には、振動補正部25は、解析処理部37が解析することによって得られたノーズRの指令に基づいて、加工ワーク70が、工具66Aの移動経路が形成するコーナの内側にあるのか外側にあるのかの情報を得る。尚、コーナの内側とは180°未満の角度である側を言い、コーナの外側とは180°を超える角度である側を言う。
 図11に示したように、加工ワーク70のコーナ形状における角度が、180°未満である場合、すなわち、加工ワーク70が、移動経路が形成するコーナの内側にある場合、移動方向の切り替え時に工具66Aの移動経路を補正しなくても、工具66Aと加工ワーク70とが干渉しない。この場合、振動補正部25は、直角位置の外側に工具66Aがはみ出しても良いと判断する。換言すると、図18に示した移動経路のコーナの内側に加工ワーク70がある場合、工具66Aが開始位置座標から終点位置座標までの範囲を超えても、加工後の加工ワーク70の形状に影響を与えない。そのため、振動補正部25は、移動方向の切り替え時に工具66Aの移動経路を補正しなくても、工具66Aと加工ワーク70とが干渉しないと判断する。
 一方、図12に示したように、加工ワーク70が、工具66Aの移動経路のコーナの外側にある場合、移動方向の切り替え時に工具66Aの移動経路を補正しなければ、工具66Aと加工ワーク70とが干渉する。この場合、振動補正部25は、直角位置の外側に工具66Aがはみ出してはいけないと判断する。
 図20は、実施の形態4にかかる数値制御装置が生成する振動波形を説明するための図である。ここでの振動波形は、X軸方向の振動波形と、Z軸方向の振動波形とを含んでいる。図20では、X軸方向の移動経路に対応する振動波形55Xと、Z軸方向の移動経路に対応する振動波形55Zとを示している。図20の横軸は時間であり、振動波形55Xの縦軸はX軸方向の位置(軸位置)であり、振動波形55Zの縦軸はZ軸方向の位置(軸位置)である。
 波形生成部24が生成する移動経路は、X軸方向の移動経路およびZ軸方向の移動経路である。波形生成部24は、X軸方向の加工が完了したタイミングで、Z軸方向の加工を開始する移動経路を生成する。
 振動補正部25は、加工ワーク70と工具66Aの位置関係に基づいて、第1移動経路の振動前進位置または第2移動経路の振動後進位置が加工ワーク70に干渉するか否かを判定する(ステップS340)。すなわち、振動補正部25は、振動波形で示される位置が目標位置に到達する際に振動波形で示される位置が加工ワーク70に干渉するか否かを判定する。
 第1移動経路の振動前進位置または第2移動経路の振動後進位置が加工ワーク70に干渉する場合(ステップS340、Yes)、振動補正部25は、実施の形態1と同様に、移動経路の切り替え前後で振動を補正する(ステップS350)。すなわち、第1移動経路の振動前進位置が加工ワーク70に干渉する場合には、振動補正部25は、X軸方向の振動波形に対し、振動前進位置が加工ワーク70に干渉しないよう、開始および終了の際の振幅を補正する。また、第2移動経路の振動後進位置が加工ワーク70に干渉する場合には、振動補正部25は、Z軸方向の振動波形に対し、振動後進位置が加工ワーク70に干渉しないよう開始および終了の際の振幅を補正する。
 第1移動経路の振動前進位置および第2移動経路の振動後進位置が加工ワーク70に干渉しない場合(ステップS340、No)、振動補正部25は、移動経路の切り替え前後で振動を補正しない。
 すなわち、振動補正部25は、第1移動経路の移動振動が終わる際に工具66Aが加工ワーク70に干渉しない場合には、第1移動経路の移動振動が終わる際のX軸方向の振動波形の振幅を収束させる補正を行わない。また、振動補正部25は、第2移動経路の移動振動が始まる際に工具66Aが加工ワーク70に干渉しない場合には、第2移動経路が始まる際のZ軸方向の振動波形の振幅を少しずつ増加させる補正を行わない。
 ステップS340でNoの場合、またはステップS350の処理の後、振動補正部25は、実施の形態1と同様に、工具66Aが特定通過点P0を通過するよう、振動波形55Zを開始するタイミング(時間T9)を調整する。換言すると、振動補正部25は、Z軸方向の移動振動の開始時間を補正する(ステップS360)。
 制御演算部2Xは、加工プログラム101および振動波形55X,55Zに従って、工具66Aの移動および振動を制御する。すなわち、工具66Aが、図20に示す振動波形55X,55Zの移動振動を実行することにより、図18に示した移動経路の加工が実現される。
 このように、工具66Aが加工ワーク70に干渉しない場合、工具66Aが位置P3,P4からはみ出すデメリットは無い。工具66Aが加工ワーク70に干渉しない場合には、振動波形の振幅を補正しないことにより、工具66Aの振動を継続させることができるので、加工時間を短縮することができる。
 なお、トレランス値は、ユーザ(オペレータ)によって指定されてもよい。この場合、ユーザが、加工プログラムまたはラダープログラムにトレランス値を格納することによってトレランス値が指定される。また、ユーザによって指定されるトレランス値は、トレランス値が直接指定される場合に限らず、段階指定されてもよい。段階設定されたトレランス値は、トレランス段階情報として、数値制御装置1Xの記憶部34に格納される。
 図21は、実施の形態4にかかる数値制御装置で用いられるトレランス段階情報を説明するための図である。トレランス段階情報71は、加工精度に応じたトレランス値が段階的に設定された情報である。トレランス段階情報71では、トレランス値と、加工精度(加工時間)の段階とが対応付けされた情報である。例えば、トレランス段階情報71では、第1段階が0μmのトレランス値であり、第2段階が10μmのトレランス値である。また、トレランス段階情報71では、第4段階が30μmのトレランス値であり、第5段階が40μmのトレランス値である。
 トレランス段階情報71では、段階が低いほど加工精度が優先されており、段階が高いほど加工時間が優先されている。すなわち、第1段階のトレランス値で加工した場合に最も加工精度が良くなり、第5段階のトレランス値で加工した場合に最も加工時間が短くなる。数値制御装置1Xのトレランス値設定部23は、ユーザに指定された段階と、トレランス段階情報71とに基づいて、トレランス値を設定する。
 なお、トレランス段階情報71の段階の代わりにトレランス値の識別情報が用いられてもよい。すなわち、トレランス段階情報71は、トレランス値と、識別情報とが対応付けされた情報であってもよい。
 また、トレランス段階情報71は、ユーザからの操作によってカスタマイズが可能となっている。また、トレランス段階情報71内の段階が加工プログラムなどで指定されてもよい。この場合、数値制御装置1Xのトレランス値設定部23は、加工プログラムなどで指定されている段階と、トレランス段階情報71とに基づいて、トレランス値を設定する。実施の形態1から3でもトレランス値設定部23は、トレランス段階情報71に基づいて、トレランス値を設定してもよい。
 このように実施の形態4によれば、数値制御装置1Xは、工具66Aの刃先が加工ワーク70に干渉しない場合には、移動経路の切り替え前後で振動を補正しないので、振動波形の振幅を保ったままコーナ加工を行うことができる。これにより、振動波形の振幅の増加または減少に伴う加工時間の遅延を発生させることがないので、加工時間が長くなることを防止できる。
実施の形態5.
 つぎに、図22を用いてこの発明の実施の形態5について説明する。実施の形態5では、所望の移動経路で加工を行うためのトレランス値を機械学習によって学習する。
 図22は、実施の形態5にかかる数値制御装置の構成例を示す図である。数値制御装置1Yは、実施の形態1から4で説明した数値制御装置1Xと同様に、工作機械110に対して低周波振動切削の制御を実行する。数値制御装置1Yは、機械学習装置400を備えており、機械学習装置400が、トレランス制御の精度を上げるため、トレランス制御で用いられるトレランス値を学習し、トレランス制御の行動を決定する。
 数値制御装置1Yは、数値制御装置1Xと比較して、制御演算部2Xの代わりに制御演算部2Yを備えている。制御演算部2Yは、制御演算部2Xと比較して、補間処理部38Xの代わりに補間処理部38Yを備え、軸データ出力部40の代わりに、軸データ入出力部46を備えている。また、制御演算部2Yは、機械学習装置400を備えている。
 補間処理部38Yは、補間処理部38Xが有する構成要素に加えて、トレランス検出部26を備えている。トレランス検出部26は、トレランス値設定部23が決定したトレランス値(m)を取得して機械学習装置400に送る。
 軸データ入出力部46は、実施の形態1で説明した軸データ出力部40の機能に加え、X軸サーボ制御部91およびZ軸サーボ制御部92から送られてくるフィードバック(FB:Feed-Back)位置(j)を受け付けて機械学習装置400に入力する機能を備えている。FB位置(j)は、トレランス値(m)を用いてトレランス制御した場合の実際の特定通過点の位置(座標)である。軸データ入出力部46は、X軸サーボ制御部91からはFB位置(j)のうちのX軸方向の位置を受け付け、Z軸サーボ制御部92からはFB位置(j)のうちZ軸方向の位置を受け付ける。
 機械学習装置400は、学習部45と、状態観測部41とを備えている。状態観測部41は、FB位置(j)およびトレランス値(m)を状態変数(i)として観測する。学習部45は、FB位置(j)およびトレランス値(m)の状態変数(i)に基づいて作成される訓練データセットに従って、行動(n)、すなわち次回に決定するトレランス値(m)を学習する。
 学習部45が用いる学習アルゴリズムはどのようなものを用いてもよい。一例として、強化学習(Reinforcement Learning)を適用した場合について説明する。強化学習は、ある環境内におけるエージェント(行動主体)が、現在の状態を観測し、取るべき行動(n)を決定する、というものである。エージェントは行動(n)を選択することで環境から報酬を得て、一連の行動を通じて報酬が最も多く得られるような方策を学習する。強化学習の代表的な手法として、Q学習(Q-learning)やTD学習(TD-learning)が知られている。例えば、Q学習の場合、行動価値関数Q(s,a)の一般的な更新式(行動価値テーブル)は式(1)で表される。
Figure JPOXMLDOC01-appb-M000001
 式(1)において、stは時刻tにおける環境を表し、atは時刻tにおける行動を表す。行動atにより、環境はst+1に変わる。rt+1はその環境の変化によってもらえる報酬を表し、γは割引率を表し、αは学習係数を表す。Q学習を適用した場合、次回のトレランス値が行動atとなる。
 式(1)で表される更新式は、時刻t+1における最良の行動aの行動価値が、時刻tにおいて実行された行動aの行動価値Qよりも大きければ、行動価値Qを大きくし、逆の場合は、行動価値Qを小さくする。換言すれば、時刻tにおける行動aの行動価値Qを、時刻t+1における最良の行動価値に近づけるように、行動価値関数Q(s,a)を更新する。それにより、或る環境における最良の行動価値が、それ以前の環境における行動価値に順次伝播していくようになる。
 学習部45は、報酬計算部42と、関数更新部43とを備えている。報酬計算部42は、状態変数(i)である、トレランス値(m)およびFB位置(j)に基づいて、報酬(k)を計算する。報酬計算部42は、例えば、トレランス値(m)に対応する特定通過点P0の位置と、実際の特定通過点P0であるFB位置(j)との差が小さい場合には報酬(k)を増大させる(例えば「1」の報酬を与える)。他方、報酬計算部42は、トレランス値(m)とFB位置(j)との差が大きい場合には報酬(k)を低減する(例えば「-1」の報酬を与える)。報酬計算部42は、トレランス値(m)とFB位置(j)との差が小さいほど大きな報酬を与え、差が大きいほど小さな報酬を与えてもよい。トレランス値(m)およびFB位置(j)は、公知の方法に従って抽出される。トレランス値(m)とFB位置(j)との差が「0」のときは、最大報酬とする。
 関数更新部43は、報酬計算部42によって計算される報酬に従って、行動(n)(次回のトレランス値)を決定するための関数を更新する。例えばQ学習の場合、関数更新部43は、式(1)で表される行動価値関数Q(st,at)を、次回のトレランス値(m)を決定するための関数として用いる。例えば、学習部45は、報酬が最大となる、トレランス値(m)とFB位置(j)との差が「0」となる次回のトレランス値(m)を決定する。
 以上から次回のトレランス値(m)が決定され、報酬が最大となる次回のトレランス値(m)となるよう判定条件を変更するのみで、他の制御方法は実施の形態1から4と同じでよい。
 なお、機械学習装置400は、制御演算部2Yの外部に配置されてもよい。また、実施の形態5では、強化学習を利用して機械学習する場合について説明したが、他の公知の方法、例えばニューラルネットワーク、遺伝的プログラミング、機能論理プログラミング、サポートベクターマシンなどに従って機械学習を実行してもよい。
 このように実施の形態5によれば、機械学習装置400が、現状のトレランス値(m)およびFB位置(j)に基づいて、適切なトレランス値(m)を学習するので、低周波振動切削のトレランス加工時の加工精度を向上させることができる。
 ここで、数値制御装置1X,1Yが備える制御演算部2X,2Yのハードウェア構成について説明する。図23は、実施の形態1から5にかかる制御演算部のハードウェア構成例を示す図である。なお、制御演算部2X,2Yは、同様のハードウェア構成を有しているので、ここでは制御演算部2Yのハードウェア構成について説明する。
 制御演算部2Yは、図23に示したすなわちプロセッサ301およびメモリ302により実現することができる。プロセッサ301の例は、CPU(Central Processing Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサ、DSP(Digital Signal Processor)ともいう)またはシステムLSI(Large Scale Integration)である。メモリ302の例は、RAM(Random Access Memory)またはROM(Read Only Memory)などである。
 制御演算部2Yは、プロセッサ301が、メモリ302で記憶されている、制御演算部2Yの動作を実行するためのプログラムを読み出して実行することにより実現される。また、このプログラムは、制御演算部2Yの手順または方法をコンピュータに実行させるものであるともいえる。メモリ302は、プロセッサ301が各種処理を実行する際の一時メモリにも使用される。
 プロセッサ301が実行するプログラムは、コンピュータで実行可能な、データ処理を行うための複数の命令を含むコンピュータ読取り可能かつ非遷移的な(non-transitory)記録媒体を有するコンピュータプログラムプロダクトであってもよい。プロセッサ301が実行するプログラムは、複数の命令がデータ処理を行うことをコンピュータに実行させる。
 また、制御演算部2Yを専用のハードウェアで実現してもよい。また、制御演算部2Yの機能について、一部を専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
 以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
 1X,1Y 数値制御装置、2X,2Y 制御演算部、3 入力操作部、4 表示部、11 振動指令解析部、12 移動指令解析部、21 指令移動量算出部、22 振動移動量算出部、23 トレランス値設定部、24 波形生成部、25 振動補正部、26 トレランス検出部、34 記憶部、36 PLC、37 解析処理部、38X,38Y 補間処理部、39 加減速処理部、40 軸データ出力部、41 状態観測部、42 報酬計算部、43 関数更新部、45 学習部、46 軸データ入出力部、51X,51Z,52X,52Z,53X,53XZ,53Z,54X,54XZ,54Z,55X,55Z 振動波形、60 主軸、61X,61Z 駆動軸、65A 刃物台、66A 工具、70 加工ワーク、71 トレランス段階情報、90 駆動部、91 X軸サーボ制御部、92 Z軸サーボ制御部、101,102 加工プログラム、110 工作機械、341 パラメータ記憶エリア、343 加工プログラム記憶エリア、344 表示データ記憶エリア、345 共有エリア、400 機械学習装置、P0 特定通過点、P1~P4 位置、R1~R3,R11,R12 移動経路。

Claims (14)

  1.  加工対象物の回転軸である主軸と、前記加工対象物を振動切削加工するための工具を第1の方向に駆動する第1の駆動軸と、前記工具または前記加工対象物を第2の方向に駆動する第2の駆動軸と、を制御する数値制御装置であって、
     前記加工対象物を振動切削加工するための加工プログラムを記憶する記憶部と、
     前記加工対象物へのコーナ加工時の許容誤差であるトレランス値に基づいて、前記振動切削加工の際に前記工具が通過する特定点を算出し、前記特定点を通過する前記工具の移動経路を示す前記工具の振動波形を生成する制御演算部と、
     を有し、
     前記制御演算部は、前記加工プログラムおよび前記振動波形に従って、前記工具の移動および振動を制御する、
     ことを特徴とする数値制御装置。
  2.  前記制御演算部は、前記振動波形として、前記第1の方向への第1の振動波形と、前記第2の方向への第2の振動波形と、を生成する、
     ことを特徴とする請求項1に記載の数値制御装置。
  3.  前記制御演算部は、前記トレランス値が0よりも大きい場合に前記振動波形が前記特定点を通過するよう、前記第2の振動波形の開始タイミングを補正する、
     ことを特徴とする請求項2に記載の数値制御装置。
  4.  前記制御演算部は、前記トレランス値が0の場合、前記第2の振動波形の開始タイミングを前記第1の振動波形による前記第1の方向への駆動が完了した後とする、
     ことを特徴とする請求項2に記載の数値制御装置。
  5.  前記制御演算部は、コーナ加工時の前記移動経路が特定角度以下の経路であれば、前記トレランス値を0に設定する、
     ことを特徴とする請求項1に記載の数値制御装置。
  6.  前記制御演算部は、前記振動波形として、第3の方向への第3の振動波形と、を生成する、
     ことを特徴とする請求項2に記載の数値制御装置。
  7.  前記制御演算部は、前記トレランス値が0よりも大きい場合に前記振動波形が前記特定点を通過するよう、前記第2の振動波形の開始タイミングを補正する、
     ことを特徴とする請求項6に記載の数値制御装置。
  8.  前記制御演算部は、前記第1の振動波形が終了する前に、前記第3の振動波形が開始し、前記第3の振動波形が終了する前に、前記第2の振動波形が開始するよう、前記第3の振動波形および前記第2の振動波形の開始タイミングを補正する、
     ことを特徴とする請求項6または7に記載の数値制御装置。
  9.  前記制御演算部は、
     前記振動波形で示される位置が目標位置に到達する際に前記振動波形が前記目標位置を超えて振動しないよう、前記振動波形の振幅を補正し、
     前記振動波形が開始する際に前記振動波形が前記振動波形の開始位置を超えて振動しないよう、前記振動波形の振幅を補正する、
     ことを特徴とする請求項1から8の何れか1つに記載の数値制御装置。
  10.  前記制御演算部は、
     前記振動波形で示される位置が目標位置に到達する際に前記振動波形で示される位置が前記加工対象物に干渉するか否かを判定し、干渉しない場合には、前記目標位置に到達する際の前記振動波形を補正しない、
     ことを特徴とする請求項1から8の何れか1つに記載の数値制御装置。
  11.  前記トレランス値は、前記加工プログラム、プログラマブルロジックコントローラが実行する機械動作が記述されたラダープログラム、または前記制御演算部の処理で使用されるパラメータで指定されている、
     ことを特徴とする請求項1から10の何れか1つに記載の数値制御装置。
  12.  前記記憶部は、加工精度に応じたトレランス値が段階的に設定された段階情報を記憶し、
     前記制御演算部は、ユーザから指定された前記加工精度の段階と、前記段階情報とに基づいて、前記トレランス値を設定する、
     ことを特徴とする請求項1から11の何れか1つに記載の数値制御装置。
  13.  加工対象物の回転軸である主軸と、前記加工対象物を振動切削加工するための工具を第1の方向に駆動する第1の駆動軸と、前記工具または前記加工対象物を第2の方向に駆動する第2の駆動軸と、を制御する数値制御方法であって、
     前記加工対象物を振動切削加工するための加工プログラムを記憶する記憶ステップと、
     前記加工対象物へのコーナ加工時の許容誤差であるトレランス値に基づいて、前記振動切削加工の際に前記工具が通過する特定点を算出する算出ステップと、
     前記特定点を通過する前記工具の移動経路を示す前記工具の振動波形を生成する生成ステップと、
     前記加工プログラムおよび前記振動波形に従って、前記工具の移動および振動を制御する制御ステップと、
     を含むことを特徴とする数値制御方法。
  14.  加工対象物の回転軸である主軸と、前記加工対象物を振動切削加工するための工具を第1の方向に駆動する第1の駆動軸と、前記工具または前記加工対象物を第2の方向に駆動する第2の駆動軸と、を制御する際の、前記加工対象物へのコーナ加工時の許容誤差であるトレランス値を学習する機械学習装置であって、
     前記トレランス値と、前記トレランス値を用いて制御した場合に前記工具が通過する特定点の位置と、を状態変数として観測する状態観測部と、
     前記状態変数に基づいて作成されるデータセットに従って、前記トレランス値に対応する特定点と、実際の特定点と、の差が小さくなるトレランス値を学習する学習部と、
     を備える、
     ことを特徴とする機械学習装置。
PCT/JP2018/043942 2018-11-29 2018-11-29 数値制御装置、数値制御方法、および機械学習装置 WO2020110251A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201880099718.7A CN113168155B (zh) 2018-11-29 2018-11-29 数控装置及数控方法
JP2019537850A JP6740483B1 (ja) 2018-11-29 2018-11-29 数値制御装置および数値制御方法
DE112018008087.0T DE112018008087B4 (de) 2018-11-29 2018-11-29 Numerisches Steuerungsgerät und numerisches Steuerungsverfahren
US17/276,486 US11131979B2 (en) 2018-11-29 2018-11-29 Numerical control device and numerical control method
PCT/JP2018/043942 WO2020110251A1 (ja) 2018-11-29 2018-11-29 数値制御装置、数値制御方法、および機械学習装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/043942 WO2020110251A1 (ja) 2018-11-29 2018-11-29 数値制御装置、数値制御方法、および機械学習装置

Publications (1)

Publication Number Publication Date
WO2020110251A1 true WO2020110251A1 (ja) 2020-06-04

Family

ID=70852421

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/043942 WO2020110251A1 (ja) 2018-11-29 2018-11-29 数値制御装置、数値制御方法、および機械学習装置

Country Status (5)

Country Link
US (1) US11131979B2 (ja)
JP (1) JP6740483B1 (ja)
CN (1) CN113168155B (ja)
DE (1) DE112018008087B4 (ja)
WO (1) WO2020110251A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114473628A (zh) * 2021-11-18 2022-05-13 重庆铁马工业集团有限公司 一种压筋板坯数控切割变形控制方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022239155A1 (ja) * 2021-05-12 2022-11-17 ファナック株式会社 数値制御装置、およびコンピュータ読み取り可能な記憶媒体
CN114988679B (zh) * 2022-08-08 2022-10-25 启东市云鹏玻璃机械有限公司 一种玻璃切割机床智能走刀控制方法
CN116061004B (zh) * 2022-10-14 2023-08-08 哈尔滨理工大学 振动作用下铣刀瞬态切削能效分布的变化特性的识别方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015140906A1 (ja) * 2014-03-17 2015-09-24 三菱電機株式会社 数値制御装置
WO2016067392A1 (ja) * 2014-10-29 2016-05-06 株式会社牧野フライス製作所 工具経路の生成方法および工作機械
JP2017056515A (ja) * 2015-09-16 2017-03-23 ファナック株式会社 複数軸を備えた工作機械の制御装置
JP2018041275A (ja) * 2016-09-07 2018-03-15 ファナック株式会社 工作機械の制御装置、制御方法及びコンピュータプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07152417A (ja) 1993-11-29 1995-06-16 Fanuc Ltd 数値制御装置の工具径路および送り速度制御方式
US7508116B2 (en) * 2005-09-07 2009-03-24 Panasonic Corporation Method and apparatus for vibration machining with two independent axes
JP4553967B2 (ja) * 2008-03-19 2010-09-29 パナソニック株式会社 切削加工装置、加工方法、およびその加工方法で加工した金型
JP5033929B1 (ja) * 2011-11-10 2012-09-26 ハリキ精工株式会社 工作機械
EP2947527B1 (en) 2013-02-12 2017-06-21 Mitsubishi Electric Corporation Numerical control device
KR101863019B1 (ko) * 2014-11-26 2018-05-30 미쓰비시덴키 가부시키가이샤 수치 제어 장치
JP6530780B2 (ja) * 2017-05-16 2019-06-12 ファナック株式会社 揺動切削のための表示装置および加工システム
CN112130524B (zh) * 2019-06-25 2024-03-12 发那科株式会社 数值控制装置、程序记录介质以及控制方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015140906A1 (ja) * 2014-03-17 2015-09-24 三菱電機株式会社 数値制御装置
WO2016067392A1 (ja) * 2014-10-29 2016-05-06 株式会社牧野フライス製作所 工具経路の生成方法および工作機械
JP2017056515A (ja) * 2015-09-16 2017-03-23 ファナック株式会社 複数軸を備えた工作機械の制御装置
JP2018041275A (ja) * 2016-09-07 2018-03-15 ファナック株式会社 工作機械の制御装置、制御方法及びコンピュータプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114473628A (zh) * 2021-11-18 2022-05-13 重庆铁马工业集团有限公司 一种压筋板坯数控切割变形控制方法

Also Published As

Publication number Publication date
CN113168155A (zh) 2021-07-23
CN113168155B (zh) 2022-05-13
JP6740483B1 (ja) 2020-08-12
US20210247734A1 (en) 2021-08-12
DE112018008087T5 (de) 2021-07-08
JPWO2020110251A1 (ja) 2021-02-15
DE112018008087B4 (de) 2022-09-08
US11131979B2 (en) 2021-09-28

Similar Documents

Publication Publication Date Title
JP6740483B1 (ja) 数値制御装置および数値制御方法
JP6487397B2 (ja) 工作機械の制御装置、制御方法及びコンピュータプログラム
JP6457432B2 (ja) 揺動切削を行う工作機械のサーボ制御装置、制御方法及びコンピュータプログラム
JP6843314B1 (ja) 数値制御装置、数値制御方法および機械学習装置
JP5606658B1 (ja) 数値制御装置
JP6646027B2 (ja) ポストプロセッサ装置、加工プログラム生成方法、cnc加工システム及び加工プログラム生成用プログラム
JP6811908B1 (ja) 数値制御装置、機械学習装置および数値制御方法
JP5823082B1 (ja) 数値制御装置
US10994422B2 (en) Robot system for adjusting operation parameters
JP2018005480A (ja) スカイビング加工制御を行う数値制御装置
JP2017151633A (ja) スカイビング加工におけるテーパ加工でのテーパ角補正機能を有する数値制御装置
WO2020085437A1 (ja) 数値制御装置、機械学習装置、および数値制御方法
JP2001125613A (ja) 数値制御シミュレーション装置
WO2008053601A1 (fr) Dispositif de contrôle de travail et son programme
JP2005071016A (ja) 数値制御装置
JPH06274228A (ja) 数値制御装置
US10261500B2 (en) Numerical controller controlling machining tool based on skiving instruction
WO2022163634A1 (ja) 表示装置及びコンピュータプログラム
JP5875740B1 (ja) 数値制御装置
JP6661062B1 (ja) 数値制御装置および機械学習装置
JP2007172325A (ja) 自由曲線加工法および数値制御装置
JP2010039993A (ja) Nc旋盤の制御方法及び制御装置
JP2008158726A (ja) 加工制御装置およびそのプログラム
JP2002351516A (ja) 数値制御装置

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2019537850

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

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 18941385

Country of ref document: EP

Kind code of ref document: A1