WO2013018338A1 - 数値制御装置 - Google Patents

数値制御装置 Download PDF

Info

Publication number
WO2013018338A1
WO2013018338A1 PCT/JP2012/004799 JP2012004799W WO2013018338A1 WO 2013018338 A1 WO2013018338 A1 WO 2013018338A1 JP 2012004799 W JP2012004799 W JP 2012004799W WO 2013018338 A1 WO2013018338 A1 WO 2013018338A1
Authority
WO
WIPO (PCT)
Prior art keywords
interpolation
transfer
path
unit
time
Prior art date
Application number
PCT/JP2012/004799
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 EP12819322.4A priority Critical patent/EP2738635A4/en
Priority to US14/235,839 priority patent/US20140195037A1/en
Publication of WO2013018338A1 publication Critical patent/WO2013018338A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4093Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine
    • G05B19/40937Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by part programming, e.g. entry of geometrical information as taken from a technical drawing, combining this with machining and material information to obtain control information, named part programme, for the NC machine concerning programming of machining or material parameters, pocket machining
    • 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/41Numerical 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 interpolation, e.g. the computation of intermediate points between programmed end points to define the path to be followed and the rate of travel along that path
    • G05B19/4103Digital interpolation
    • 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/416Numerical 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 control of velocity, acceleration or deceleration
    • 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/34Director, elements to supervisory
    • G05B2219/34096Approximate, replace curve, surface with circle, linear segments, least error
    • 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/34Director, elements to supervisory
    • G05B2219/34098Slope fitting, fairing contour, curve fitting, transition
    • 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/34Director, elements to supervisory
    • G05B2219/34175Overlap, between two blocks, continuous, smooth speed change, 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/34Director, elements to supervisory
    • G05B2219/34176Block segments, find next point on next segment by cross point circle and segment
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Definitions

  • the present invention relates to a numerical control device.
  • Patent Document 1 discloses a numerical control device that performs numerical control of such a transfer device.
  • a tool path representing a change in the position coordinate of a tool in a coordinate system fixed on a workpiece as a function of a parameter is obtained from a machining program, and the transfer path of the transfer device is determined from the tool path.
  • the transfer axis path for each transfer axis is obtained, the transfer amount in each transfer axis for each reference unit time is obtained based on the obtained transfer axis path for each transfer axis, and the obtained transfer quantity data is used as a command pulse.
  • Each transfer device is controlled by outputting to the servo motor of the transfer device corresponding to each transfer shaft.
  • block smooth interpolation and corner smooth interpolation are performed on the transfer axis path, and the transfer amount in each transfer axis for each reference unit time is determined by pulse interpolation from the transfer axis path after the smooth interpolation. Seeking.
  • the block smooth interpolation interpolates a transfer axis path formed by connecting a large number of command points with straight lines into a smooth curve passing through each command point, and the corner smooth interpolation is performed before and after a predetermined command point.
  • the corner portion is interpolated so that the corner portion of the transfer axis path in which the amount of change in coordinates changes suddenly becomes a smooth corner.
  • Patent Document 2 shows a numerical control device capable of solving such a problem.
  • the numerical control device of Patent Document 2 uses post-interpolation acceleration / deceleration technology.
  • This post-interpolation acceleration / deceleration is an acceleration / deceleration process for a drive command to the servo motor for each transfer axis obtained by interpolation calculation (pulse interpolation) from each transfer axis path.
  • this post-interpolation acceleration / deceleration even if the abnormal data is included in the drive command obtained by pulse interpolation, the abnormal data can be corrected by the subsequent acceleration / deceleration processing, thereby suppressing the occurrence of mechanical shock. Is possible.
  • this post-interpolation acceleration / deceleration has the disadvantage that an error in the workpiece machining shape occurs.
  • the portion to which the acceleration / deceleration processing is applied is not limited in the transfer axis path, and therefore the acceleration / deceleration processing is applied to portions other than the abnormal data portion of the drive command. Can also be applied. For this reason, for example, when the acceleration / deceleration processing is applied to a portion of the drive command where acceleration is actually instructed in the machining program and the acceleration rate is reduced, or in the machining program When the acceleration / deceleration processing is applied to a portion where deceleration is instructed and processing for reducing the deceleration rate is performed, a shape error occurs with respect to the machining shape instructed by the machining program.
  • Patent Document 3 shows a numerical control device that performs further post-interpolation acceleration / deceleration processing.
  • This numerical control device includes a local acceleration / deceleration filter that detects an abnormal data portion remaining in a command pulse after pulse interpolation and locally accelerates / decelerates only the vicinity of the detected abnormal data portion. According to this numerical control device, a sudden change in speed caused by abnormal data is mitigated by acceleration / deceleration processing, and mechanical shock is suppressed, and since the acceleration / deceleration processing is not performed except in the vicinity of the abnormal data, the machining shape The occurrence of the error is suppressed.
  • a machine tool is generally provided with a command input device for inputting a special command for instructing acceleration / deceleration, emergency stop, or restart of an object to be transferred (workpiece and tool).
  • a special command for instructing acceleration / deceleration, emergency stop, or restart of an object to be transferred (workpiece and tool).
  • acceleration / deceleration, emergency stop, or restart of the transfer target can be performed separately from the normal transfer of the transfer target according to the machining program.
  • a special command is input to such a command device, for example, in the numerical control device of Patent Document 3 described above, the transfer axis path is changed according to the content of the special command, so that the special command is met.
  • the transfer device causes the transfer device to perform acceleration / deceleration, emergency stop, and restart of the transfer object.
  • An object of the present invention is to perform an operation with a speed change of an object to be transferred in accordance with a special command input to a special command device separately from a normal transfer of the object to be transferred at the time of machining a workpiece in a machine tool. Furthermore, it is to provide a numerical control device capable of suppressing errors in a machining shape while improving the responsiveness from the time when the special command is input until the operation corresponding to the special command is executed.
  • the inventor of the present application inputs the length of the unit time of the pulse train to the command input device for the pulse train obtained by locally accelerating / decelerating the abnormal data portion by the local acceleration / deceleration processing after pulse interpolation
  • the pulse train to be output to the servo motor for each transfer axis is derived by performing the second pulse interpolation to obtain the pulse train that represents the movement amount per unit time after the change. I came up with the technology to do.
  • the length of the unit time common to each transfer axis is changed according to the contents of the special command, and the amount of movement for each changed unit time is obtained by the second pulse interpolation.
  • an operation involving a change in the speed of the transfer object according to the contents of the special command is performed in a state where the relative positional relationship between the transfer axes is maintained. For this reason, even if the operation
  • a special command is input to execute drive control of the servo motor for each transfer axis corresponding to the special command by changing the unit time length of the pulse train after the local acceleration / deceleration processing. Accordingly, there is no need to perform complicated local acceleration / deceleration processing again. For this reason, it is possible to improve the responsiveness from the input of the special command to the actual operation corresponding to the input.
  • a numerical control device includes a plurality of transfer devices that transfer a workpiece or a tool that processes the workpiece as a transfer object to process the workpiece, and at the time of processing the workpiece.
  • a command input device for inputting a special command for instructing an operation accompanied by a speed change of the transfer object from the outside.
  • machine tools each having a support for supporting an object and a transfer part for transferring the transfer object by transferring the support in a specific transfer axis direction, and specifying each transfer part
  • a numerical control device that performs numerical control of each of the transfer devices by outputting a command pulse for each cycle, and a trajectory through which the tool passes when processing the workpiece is fixed on the workpiece.
  • a storage unit for storing a machining program including a tool path expressed as a function of a position coordinate of the tool in the measured workpiece coordinate system and a parameter that is an integrated length along the trajectory of the tool, and a storage in the storage unit
  • a tool path deriving unit for obtaining the tool path from the processed machining program, and a first derivative value of the tool path by the parameter among a plurality of command points included in the tool path obtained by the tool path deriving unit
  • the change of the second derivative value due to the parameter of the tool path is discontinuous and the change of the first derivative value due to the parameter of the tool path is discontinuous.
  • Interpolation section having a specific section width across the tool path as an interpolation target point and at least one of the command points as an interpolation target point.
  • a local filter that interpolates locally so that the change in the differential value that is discontinuous at the interpolation target point becomes a continuous change, and the local interpolation by the acceleration / deceleration condition of the transfer object and the path local filter A parameter time function deriving unit that obtains a parameter time function representing a change in the parameter with respect to the passage of a reference time based on a tool path after local interpolation that is a tool path after being performed, and based on the specific period Deriving a reference time that progresses every reference unit time, and from the parameter time function obtained by the parameter time function derivation unit, the parameter corresponding to each time point for each reference unit time of the derived reference time And obtaining the position coordinates on the tool path after the local interpolation in the work coordinate system corresponding to the parameter at each obtained time, and at each obtained time
  • the position coordinate in each transfer axis corresponding to each transfer unit is obtained from the position coordinate at the point, and the direction of each transfer axis per reference unit time of the reference time
  • the command pulse for each specific cycle is output to each transfer unit corresponding to the direction of each transfer axis, and corresponds to each transfer unit according to the transfer amount for each specific cycle indicated by the output command pulse.
  • a control unit that moves the support, and the pulse interpolation unit sets the reference unit time to the specific period until the special command is input to the command input device after the machine tool is started.
  • the reference unit time is set to the deceleration designated by the special command.
  • the special command indicates the reference unit time. Extend at a rate corresponding to the speed increase.
  • FIG. 1 is a schematic side view of a machine tool to which a numerical control device according to an embodiment of the present invention is applied. It is a functional block diagram of a numerical control device and a command input device according to an embodiment of the present invention. It is a flowchart which shows the numerical control process by the numerical control apparatus of one Embodiment of this invention. It is a flowchart which shows the detailed process of the local interpolation among the numerical control processes shown in FIG. It is a flowchart which shows the detailed process of the first half of derivation
  • This machine tool is for cutting a workpiece 100, which is a workpiece, and includes a workpiece transfer device 102, a column 104, a tool 105, a tool vertical transfer device 106, and a tool first horizontal transfer device 108.
  • the workpiece transfer device 102, the tool vertical transfer device 106, the tool first horizontal transfer device 108, and the tool second horizontal transfer device 110 are each included in the concept of the transfer device of the present invention.
  • the workpiece transfer device 102 is a device for transferring the workpiece 100 in the X-axis direction, which is a direction perpendicular to the paper surface of FIG.
  • the workpiece transfer device 102 includes a base 102a fixed on a predetermined installation location, a workpiece support 102b provided on the base 102a so as to be movable in the X-axis direction, and the workpiece support 102b in the X-axis direction. And a work support transferring part 102c (see FIG. 2).
  • the workpiece support 102 b supports the workpiece 100.
  • the workpiece 100 is installed in a state of standing vertically on the workpiece support 102b.
  • the workpiece support transfer unit 102c has a servo motor as a drive source.
  • the X-axis is included in the concept of the transfer shaft of the present invention
  • the workpiece support 102b is included in the concept of the support of the present invention
  • the workpiece support transfer unit 102c is It is included in the concept of the transfer part of the invention.
  • the column 104 is erected at an installation location that is separated from the installation location of the base 102a in the horizontal direction and in the direction perpendicular to the X axis, and extends in the vertical direction.
  • the tool vertical transfer device 106 is provided on the column 104, and is a device for transferring a tool 105 for cutting the workpiece 100 in the Y-axis direction extending in the vertical direction.
  • the tool vertical transfer device 106 includes a vertical support 106 a that is attached to the column 104 so as to be movable in the Y-axis direction, and a vertical support that is provided on the column 104 and transfers the vertical support 106 a along the column 104 in the Y-axis direction.
  • a body transfer unit 106b (see FIG. 2).
  • the vertical support 106a supports the tool first horizontal transfer device 108.
  • the tool first horizontal transfer device 108 receives the tool 105 via the tool second horizontal transfer device 110 and the spindle head 112 as will be described later.
  • the vertical support 106a supports the tool 105 indirectly.
  • the vertical support transfer unit 106b includes a servo motor as a drive source.
  • the Y-axis direction is included in the concept of the transfer shaft of the present invention
  • the vertical support 106a is included in the concept of the support of the present invention
  • the vertical support transfer unit 106b is It is contained in the concept of the transfer part of this invention.
  • the tool first horizontal transfer device 108 is provided on the vertical support 106a, and is a device for transferring the tool 105 in the W-axis direction extending perpendicularly to both the X-axis and the Y-axis.
  • the tool first horizontal transfer device 108 includes a first horizontal support 108a provided on the vertical support 106a so as to be movable in the W-axis direction, and provided on the vertical support 106a.
  • the first horizontal support 108a is moved in the W-axis direction.
  • a first horizontal support transporting part 108b (see FIG. 2) for transporting so as to move forward and backward.
  • the first horizontal support 108a supports the tool second horizontal transfer device 110, and the tool second horizontal transfer device 110 supports the tool 105 via the spindle head 112 as will be described later.
  • the horizontal support 108a indirectly supports the tool 105.
  • the 1st horizontal support body transfer part 108b has a servomotor as a drive source.
  • the W axis is included in the concept of the transfer shaft of the present invention, and the first horizontal support 108a is included in the concept of the support of the present invention.
  • Reference numeral 108b is included in the concept of the transfer unit of the present invention.
  • the tool second horizontal transfer device 110 is provided on the first horizontal support 108a, and is a device for transferring the tool 105 in the Z-axis direction parallel to the W-axis.
  • the tool second horizontal transfer device 110 includes a second horizontal support 110a provided on the first horizontal support 108a so as to be movable in the Z-axis direction, and a second horizontal support 110a provided on the first horizontal support 108a. And a second horizontal support transporting part 110b for transporting so as to advance and retreat in the Z-axis direction.
  • the second horizontal support 110 a supports the spindle head 112 and supports the tool 105 via the spindle head 112.
  • the 2nd horizontal support body transfer part 110b has a servomotor as a drive source.
  • the Z axis is included in the concept of the transfer shaft of the present invention
  • the second horizontal support 110a is included in the concept of the support of the present invention
  • the second horizontal support transfer unit. 110b is included in the concept of the transfer unit of the present invention.
  • the spindle head 112 is provided on the second horizontal support 110a so that the rotation axis thereof is parallel to the W axis and the Z axis.
  • the spindle head 112 holds the tool 105 and rotates the tool 105 about its axis.
  • the tool 105 cuts the workpiece 100 by being brought into contact with the workpiece 100 while being rotated by the spindle head 112.
  • the control panel 114 controls the operation of the transfer units 102c, 106b, 108b, 110b of the transfer devices 102, 106, 108, 110, the operation of the spindle head 112, and other parts of the machine tool. Has a function for.
  • the control panel 114 is electrically connected to the driving sources of the transfer units 102c, 106b, 108b, 110b and the spindle head 112.
  • the control panel 114 includes a command input device 122 (see FIG. 2).
  • the command input device 122 inputs a special command for instructing an operation accompanied by acceleration or deceleration of the workpiece 100 and the tool 105 from the outside, in addition to the normal transfer of the workpiece 100 and the tool 105 when the workpiece 100 is machined. It is a device for.
  • the workpiece 100 or the tool 105 that is an object to be transferred by the transfer devices 102, 106, 108, and 110 is referred to as a transfer object.
  • the command input device 122 includes a stop command input device 124, a restart command input device 126, and an override device 128.
  • the stop command input device 124 is a device for inputting an emergency stop command for urgently decelerating and stopping the movement of the object to be transferred.
  • the emergency stop command is included in the concept of the special command of the present invention.
  • the stop command input device 124 includes an emergency stop button 124a provided on the outer surface of the control panel 114, and a stop signal transmission for transmitting an emergency stop signal to the monitoring unit 10 described later in response to the pressing of the emergency stop button 124a. Part 124b. In the present embodiment, pressing the emergency stop button 124a corresponds to inputting an emergency stop command.
  • the restart command input device 126 is a device for inputting a restart command for resuming and accelerating the movement of the transfer object that has stopped moving.
  • the restart command is included in the concept of the special command of the present invention.
  • the restart command input device 126 includes a restart button 126a provided on the outer surface of the control panel 114, and a restart for transmitting a restart signal to the monitoring unit 10 described later in response to the restart button 126a being pressed. And a signal transmitter 126b.
  • pressing the restart button 126a corresponds to inputting a restart command.
  • the override device 128 includes an acceleration command including an instruction to increase the moving speed of the object to be transferred and information on an acceleration rate that is an increase rate of the moving speed, or an instruction to reduce the moving speed of the object to be transferred and a decrease in the moving speed. It is a device for inputting a deceleration command including information on a deceleration rate that is a rate.
  • the acceleration command and the deceleration command are included in the concept of the special command of the present invention.
  • the override device 128 includes an override dial 128a provided on the outer surface of the control panel 114, and a speed change signal transmitter that transmits a speed change signal according to the operation direction and the operation amount of the override dial 128a to the monitoring unit 10 described later. 128b.
  • the override dial 128a is an operation unit that is operated when an operator or the like inputs an acceleration command or a deceleration command.
  • the override dial 128a is provided on the control panel 114 so as to be rotatable about its axis. It is possible to input an acceleration command or a deceleration command to the override device 128 by rotating the override dial 128a in either direction.
  • the operation of rotating the override dial 128a to one side corresponds to the input of an acceleration command
  • the operation of rotating the override dial 128a to the other side, which is the opposite side to the one side is a deceleration command. Corresponds to input.
  • the amount of rotation of the override dial 128a toward the one side corresponds to the acceleration rate of the object to be transferred
  • the amount of rotation of the override dial 128a to the other side corresponds to the deceleration rate of the object to be transferred
  • the speed change signal transmission unit 128b includes information on an override coefficient corresponding to the amount of rotation of the override dial 128a toward one side in response to the override dial 128a being rotated toward the one side (acceleration side).
  • a change signal is transmitted to the monitoring unit 10, and in response to the override dial 128a being turned to the other side (deceleration side), information on the override coefficient corresponding to the amount of rotation of the override dial 128a toward the other side is obtained.
  • a speed change signal is transmitted to the monitoring unit 10.
  • the override coefficient increases from 1 when the override dial 128a is turned to the acceleration side with reference to 1, and decreases from 1 when the override dial 128a is turned to the deceleration side.
  • the numerical control device 2 of this embodiment is incorporated in the control panel 114, and a command pulse for each specific cycle is sent to the transfer units 102c, 106b, 108b, 110b of the transfer devices 102, 106, 108, 110.
  • the numerical control of each transfer device 102, 106, 108, 110 is performed by outputting.
  • the configuration of the numerical control device 2 of the present embodiment will be described in detail.
  • the numerical controller 2 includes a storage unit 4, a memory 5, and an arithmetic processing unit 6.
  • the storage unit 4 stores a machining program (NC program) that is a machining command for the workpiece 100.
  • This machining program includes a tool path.
  • the tool path includes a position coordinate of the tool 105 in a workpiece coordinate system in which a trajectory through which the tool 105 passes when machining the workpiece 100 is fixed on the workpiece 100, and a parameter that is an integrated length along the trajectory of the tool 105. It is expressed as a function.
  • the tool path includes a large number of command points through which the tool 105 should pass when the workpiece 100 is machined, and the tool path is formed in a shape in which adjacent command points are connected to each other.
  • the storage unit 4 stores acceleration / deceleration conditions and other set values of the object to be transferred when the workpiece 100 is processed.
  • the acceleration / deceleration conditions include, for example, each transfer shaft on which each transfer device 102, 106, 108, 110 transfers a transfer object (each support unit 102 c, 106 b, 108 b, 110 b corresponds to each support 102 b, 106 a). , 108 a, 110 a for each transfer axis), an allowable speed, an allowable acceleration, an allowable jerk, and a combined movement speed of the tool 105 with respect to the workpiece 100 are included.
  • the memory 5 stores information such as an override coefficient immediately before a special command is input to the command input device 122, an override coefficient included in the speed change signal, and the like.
  • the arithmetic processing unit 6 performs various types of arithmetic processing. As functional blocks, the monitoring unit 10, the tool path deriving unit 12, the block smooth interpolation unit 14, the path local filter 16, and the parameter variable time function deriving unit. 18, a pulse interpolation unit 22, and a control unit 24.
  • the monitoring unit 10 monitors whether or not a special command is input to the command input device 122. Specifically, the monitoring unit 10 determines whether or not an emergency stop command is input to the stop command input device 124, that is, whether or not the emergency stop button 124a of the stop command input device 124 is pressed from the stop signal transmission unit 124b. Judgment is made by monitoring whether or not an emergency stop signal is transmitted. When the emergency stop signal is transmitted from the stop signal transmission unit 124b, the monitoring unit 10 determines that the emergency stop button 124a has been pressed, and outputs a stop request to the pulse interpolation unit 22. On the other hand, when the emergency stop signal is not transmitted from the stop signal transmission unit 124b, the monitoring unit 10 determines that the emergency stop button 124a is not pressed and does not output a stop request.
  • the monitoring unit 10 determines from the restart signal transmission unit 126b whether or not a restart command has been input to the restart command input device 126, that is, whether or not the restart button 126a of the restart command input device 126 has been pressed. Judgment is made by monitoring whether or not a restart signal is transmitted. When the restart signal is transmitted from the restart signal transmitting unit 126b, the monitoring unit 10 determines that the restart button 126a is pressed, and the restart signal is not transmitted from the restart signal transmitting unit 126b. It is determined that the restart button 126a is not pressed. Then, the monitoring unit 10 outputs a restart request to the pulse interpolation unit 22 in response to the restart signal transmitted from the restart signal transmitting unit 126b after the emergency stop signal is transmitted from the stop signal transmitting unit 124b. .
  • the monitoring unit 10 determines whether or not a speed change signal is transmitted from the speed change signal transmission unit 128b, whether or not an acceleration command or a deceleration command is input to the override device 128, that is, whether or not the override dial 128a is rotated. Judging by monitoring. Specifically, when the speed change signal is transmitted from the speed change signal transmitter 128b, the monitoring unit 10 determines that the override dial 128a has been rotated, and the speed change signal is transmitted from the speed change signal transmitter 128b. If not, it is determined that the override dial 128a is not turned. And the monitoring part 10 receives the speed change signal transmitted from the speed change signal transmission part 128b, and outputs the speed change request including the information of the override coefficient contained in the speed change signal to the pulse interpolation part 22.
  • the tool path deriving unit 12 reads a machining program stored in the storage unit 4 and obtains a tool path from the read machining program.
  • the smooth interpolation unit 14 performs interpolation on a portion of the tool path obtained by the tool path deriving unit 12 that can be interpolated so as to form a smooth curve that passes through the command point within an analytically possible range.
  • the interpolation performed by the smooth interpolation unit 14 is so-called block smooth interpolation, and the command block and the command block adjacent to each other are set as command blocks at the command points at their boundaries.
  • the interpolation is performed so as to connect smoothly.
  • the smooth interpolation unit 14 changes the tool path so that adjacent command blocks continuously change the primary differential value and the secondary differential value before and after the command point of their boundary and pass through the command point. Interpolate.
  • the tool path includes a part that cannot be interpolated so that a smooth curve passing through the command point of the trajectory is obtained by such block smooth interpolation because the trajectory of the tool path changes rapidly with respect to the change of the parametric variable.
  • a part there is a portion of abnormal data that repeatedly increases and decreases in minute units, and a corner portion that is intentionally designated in a machining program.
  • the smooth interpolation unit 14 does not interpolate such a part of the tool path, leaves the original tool path as it is, passes through the command point as described above, and the first and second derivative values before and after the command point. Smooth interpolation is performed on the part that can be interpolated into a curve whose value continuously changes.
  • the path local filter 16 performs interpolation on a portion of the tool path that has not been interpolated by the smooth interpolation unit 14. Specifically, the path local filter 16 includes a command point in which the change of the primary differential value due to the parameter is continuous and the change of the secondary differential value due to the parameter is discontinuous in the tool path and the primary value based on the parameter. The command point where the change of the differential value is discontinuous is set as the interpolation target point. Then, the path local filter 16 has an interpolation interval width, which will be described later, before and after the interpolation target point in the tool path, and only the interpolation interval in which the interpolation target point is located at the center of the interpolation interval width. Local interpolation is performed so that the discontinuous change of the differential value at the interpolation target point becomes a continuous change.
  • a portion of the tool path that is locally interpolated by the path local filter 16 is, for example, a corner portion as shown in FIG. 8 or an abnormal data portion as shown in FIG.
  • the mediation is performed. Changes in the primary differential value due to variables are discontinuous, and these command points are interpolation target points.
  • the path local filter 16 overlaps when there are a plurality of interpolation target points in the tool path and the interpolation sections of adjacent interpolation target points overlap (in the case of FIG. 9).
  • Interpolation is performed locally for the tool path in the interpolation section from the interpolation section that is closest to the start point of the tool path to the end point of the interpolation section that is closest to the end point of the tool path.
  • the tool path after all the interpolation sections have been locally interpolated by the path local filter 16 is hereinafter referred to as a post-local interpolation tool path.
  • the path local filter 16 is configured so that the post-local interpolation tool path is continuously before and after the start point and before and after the end point of each interpolation section (interpolation section combining adjacent interpolation sections when they overlap).
  • the interpolation section is locally interpolated so as to be connected.
  • the path local filter 16 includes a local interpolation unit 16a and an error correction unit 16b as functional blocks.
  • the local interpolation unit 16a obtains a post-interpolation function of each interpolation block by performing interpolation processing for each of a plurality of interpolation blocks in the adjustment section obtained by expanding the interpolation section back and forth, and integrates these post-interpolation functions.
  • the change in the differential value that is discontinuous at the interpolation target point in the interpolation interval is a continuous change.
  • An interpolation path with an error interpolated so as to be obtained is obtained.
  • the error correction unit 16b has a value corresponding to the start point of the interpolation section of the interpolation path with error obtained by the local interpolation section 16a equal to the value of the start point of the interpolation section of the tool path that is not locally interpolated, and The interpolation path with error is corrected so that the value corresponding to the end point of the interpolation section of the interpolation path with error is equal to the end point value of the interpolation section of the tool path that is not locally interpolated, and the corrected interpolation path is the tool. Replace with the interpolation interval of the path.
  • a detailed process of local interpolation by the local interpolation unit 16a and the error correction unit 16b of the path local filter 16 will be described later.
  • the parametric variable time function deriving unit 18 is based on the acceleration / deceleration conditions stored in the storage unit 4 and the tool path after local interpolation. Variable velocity curve). Specifically, the parameter time function deriving unit 18 sets the parameter time indicating the maximum acceleration that can move the object to be transferred according to the tool path after local interpolation within the allowable acceleration range included in the acceleration / deceleration conditions. Derive a function.
  • the pulse interpolation unit 22 obtains a command pulse for each specific period by performing pulse interpolation on the post-local interpolation tool path.
  • the pulse interpolation unit 22 derives a reference time according to the input status of the special command to the command input device 122, derives a parameter corresponding to the derived reference time, and performs a local interpolation according to the derived parameter. Derivation of position coordinates on the tool path and derivation of command pulses indicating the amount of change in position coordinates of each transfer axis per unit time of actual time are performed.
  • real time is the time which progresses for every unit time equal to the said specific period.
  • the pulse interpolation unit 22 proceeds every reference unit time equal to the unit time of the real time (the specific period) when a special command is not input to the command input device 122 after the machine tool is started. A reference time is derived. Further, when an emergency stop command is input to the stop command input device 124, the pulse interpolation unit 22 derives a reference time adjusted so that the reference unit time becomes shorter and finally becomes zero. In addition, when the restart command is input to the restart command input device 126 after the emergency stop command is input to the stop command input device 124, the pulse interpolation unit 22 increases the reference unit time from 0 to the last. Thus, a reference time adjusted to be equal to the reference unit time before the emergency stop is derived.
  • the pulse interpolation unit 22 determines the acceleration rate (override coefficient) included in the acceleration command from the length immediately before the input of the acceleration command to the override device 128. ) To derive a reference time adjusted so as to increase to a length corresponding to.
  • the pulse interpolation unit 22 determines the deceleration rate included in the deceleration command from the length of the reference unit time immediately before the input of the deceleration command to the override device 128 ( A reference time adjusted to decrease to a length corresponding to the override coefficient) is derived.
  • the pulse interpolation unit 22 obtains a parameter corresponding to each time point for each reference unit time of the reference time derived as described above from the parameter time function derived by the parameter time function deriving unit 18. Further, the pulse interpolation unit 22 obtains the position coordinates on the tool path after the local interpolation in the work coordinate system corresponding to the parameter at each obtained time point, and calculates the position coordinates from the obtained position coordinates at each time point. The movement amount of the tool 105 in the workpiece coordinate system for each reference unit time of the reference time derived as described above is obtained.
  • the pulse interpolation unit 22 calculates the transfer amount for each reference unit time of the supports 102b, 106a, 108a, 110a with respect to the transfer shafts of the transfer units 102c, 106b, 108b, 110b from the calculated movement amount of the tool 105.
  • the transfer amount for each reference unit time is obtained as a command pulse for each unit time of the real time (for each specific period). In this way, the pulse interpolation unit 22 performs pulse interpolation on the post-local interpolation tool path.
  • the control unit 24 controls the operation of each of the transfer units 102c, 106b, 108b, and 110b, and each of the transfer units 102c, 106b, 108b, and the like according to the command pulse for each specific period obtained by the pulse interpolation unit 22.
  • the supports 102b, 106a, 108a, 110a corresponding to 110b are transferred.
  • the control unit 24 outputs the command pulse for each specific cycle for each transfer axis obtained by the pulse interpolation unit 22 to the corresponding servo motor among the transfer units 102c, 106b, 108b, and 110b. To do.
  • each transfer part 102c, 106b, 108b, 110b is a specific period for every transfer amount which the command pulse sent from the control part 24 sends the corresponding support body 102b, 106a, 108a, 110a to the corresponding transfer axis direction. It is transferred every time (every unit time of real time). As a result, the object to be transferred is transferred, and the tool 105 is transferred along the tool path after local interpolation in the workpiece coordinate system.
  • the tool path deriving unit 12 reads a machining program (NC program) stored in the storage unit 4 (step S1 in FIG. 3), and derives a tool path from the read machining program (step S3).
  • NC program machining program
  • the smooth interpolation unit 14 performs block smooth interpolation on the tool path obtained by the tool path deriving unit 12 (step S3). Specifically, the smooth interpolation unit 14 continuously changes the primary differential value and the secondary differential value before and after the command point at the boundary between adjacent command blocks in the tool path, and determines the command point. Interpolate the toolpath so that the toolpath passes. At this time, the smooth interpolation unit 14 performs block smooth interpolation only on a portion of the tool path in which such interpolation is analytically possible, and does not perform interpolation on a portion in which such interpolation is analytically impossible. Leave the original tool path.
  • the smooth interpolation unit 14 performs the block smooth interpolation on the part where the bending angle of the tool path at the command point is larger than a predetermined angle and the tool path before the interpolation. A portion where the tool path error is larger than a preset allowable error is left as it is without being interpolated.
  • the path local filter 16 performs local interpolation on the tool path after the block smooth interpolation (step S4).
  • the path local filter 16 includes a command point and a parameter that have a continuous change in the primary differential value due to the parameter s and a discontinuous change in the secondary differential value due to the parameter s in the tool path.
  • a command point at which the change in the primary differential value due to s is discontinuous is set as an interpolation target point, and only an interpolation section having a specific section width is locally interpolated before and after the interpolation target point in the tool path.
  • the local interpolation unit 16a of the path local filter 16 determines whether there is an interpolation target point in the tool path for which the interpolation section width, which is the section width of the interpolation section, has not yet been calculated (Ste S12). When determining that such an interpolation target point exists, the local interpolation unit 16a calculates a distribution interval width and an interpolation interval width for an interpolation target point whose interpolation interval width has not yet been calculated (step S14). .
  • the distribution interval width is an interval width for distributing a first-order differential value based on a tool path parameter, which will be described later, based on a distribution function.
  • the local interpolation unit 16a first calculates a distribution section width, and obtains the interpolation section width as a section width equal to or greater than the calculated distribution section width.
  • the interpolation section width is set to a section width equal to the distribution section width.
  • the local interpolation unit 16a performs the pre-local interpolation on the coordinate axes of the work coordinate system where the difference between the primary differential values before and after the point is the maximum.
  • the distribution interval width is determined so as to satisfy the condition that the position error at the interpolation target point between the tool path and the tool path after local interpolation is equal to the allowable error on the coordinate axes. More specifically, for example, the distribution interval width A is calculated as follows.
  • the formula for calculating the distribution interval width varies depending on the distribution function used for distributing the first-order differential value of the tool path, which will be described later.
  • a linear distribution function is used for distributing the first-order differential value of the tool path, which will be described later.
  • the distribution section width is calculated.
  • the primary differential function x ′ (s) based on the parameter s of the tool path position coordinate x on the x-axis can be expressed by the following equation (1).
  • This primary differential function x ′ (s) is indicated by a thick line in FIG.
  • the value of the upper limit parameter is set as the distribution section width A.
  • a section width equal to the distribution section width A calculated as described above is set as the interpolation section width.
  • the local interpolation unit 16a determines whether or not the interpolation interval for the current interpolation target point overlaps the interpolation interval of another interpolation target point (step S16). If the local interpolation unit 16a determines that the interpolation sections do not overlap, the local interpolation unit 16a returns to step S12 and repeats the subsequent processes. On the other hand, when determining that the interpolation sections overlap, the local interpolation unit 16a combines the overlapped interpolation sections to form one interpolation section (step S18).
  • the local interpolating unit 16a determines a section from the start point of the interpolation section that is closest to the start point of the tool path to the end point of the interpolation section that is closest to the end point of the tool path among the overlapped interpolation sections.
  • One interpolation interval is assumed.
  • the smallest distribution interval width among the distribution interval widths corresponding to each interpolation interval is adopted as the distribution interval width used in the later-described distribution for one combined interpolation interval. Thereafter, the process returns to step S12, and the subsequent processes are repeated.
  • step S12 if the local interpolation unit 16a determines that there are no more interpolation target points for which the interpolation interval width has not been calculated in the tool path, the local interpolation unit 16a next performs the following local interpolation processing.
  • One interpolation section for performing is extracted (step S20).
  • the local interpolation section 16a extracts an interpolation section that is located closest to the starting point of the tool path among these interpolation sections. . Note that the interpolation sections combined in step S18 are handled as one interpolation section.
  • the local interpolation unit 16a obtains an adjustment interval for the extracted interpolation interval (step S22).
  • This adjustment section (see FIGS. 8 and 9) is a section obtained by adding a section width a that is half of the distribution section width A before and after the interpolation section, and determines an interpolation block that is a calculation target of the post-interpolation function described later. It becomes the standard to do.
  • the local interpolation unit 16a initially sets the post-interpolation integration function stored in the memory 5 to 0 (step S24).
  • the local interpolation unit 16a extracts an interpolation block which is a command block for performing an interpolation process for obtaining a post-interpolation function which will be described later (step S26).
  • the local interpolation unit 16a includes a plurality of command blocks (command blocks p0 (s) to p5 (s) in FIG. 8) including at least a part of the adjustment interval obtained in step S22. 9 selects p0 (s) to p7 (s)), and among those command blocks, blocks that have not been interpolated to obtain a post-interpolation function to be described later and are located closest to the starting point of the tool path. Extract as an interpolation block.
  • the local interpolation unit 16a obtains a post-interpolation function of the extracted interpolation block (step S28).
  • the local interpolation unit 16a obtains a post-interpolation function using a linear distribution function f (s).
  • the linear partition function f (s) is expressed by the following equation (4).
  • f (s) 0 outside the distribution interval ⁇ A / 2 ⁇ s ⁇ A / 2.
  • the local interpolating unit 16a In calculating the post-interpolation function, the local interpolating unit 16a firstly integrates the interval [s ⁇ with the section width equal to the distribution section width A centered at each first position s having a different parameter in the extracted interpolation block. A / 2, s + A / 2] are set. Then, the local interpolation unit 16a performs first-order differentiation pi ′ (S) based on the tool path parameter at each second position S in which the parameter in the set integration interval [s ⁇ A / 2, s + A / 2] is different. And the first derivative pi ′ (S) at each second position S is distributed based on the distribution function f (s) in the distribution section having the corresponding second position S as the center and having the distribution section width A.
  • the post-distribution differential function pi ′ (S) ⁇ f (s ⁇ S) obtained in this case is integrated over the integration interval [s ⁇ A / 2, s + A / 2], whereby the post-interpolation function qi ′ (s) is Ask.
  • the local interpolation unit 16a obtains the post-interpolation function qi ′ (s) of the interpolation block pi (s) by the following equation (5).
  • the post-interpolation function qi '(s) obtained in this way is expressed in different forms depending on whether the section width of the interpolation block pi (s) is larger or smaller than the interpolation section width A.
  • the post-interpolation function qi ′ (s) in each case is as follows.
  • the interval to be expressed is represented by t [i] ⁇ s ⁇ t [i + 1], and the relationship of t [i] ⁇ a ⁇ t [i] + a ⁇ t [i + 1] ⁇ a ⁇ t [i + 1] + a is established.
  • the primary differential pi '(s) by the parameter s of the interpolation block pi (s) is represented by a thick line in FIG.
  • the post-interpolation function qi ′ (s) obtained by the above interpolation processing is expressed as t [i] ⁇ a ⁇ s ⁇ t [i] + a below function qi11 ′ (s) and t [i ] Function qi12 ′ (s) in the interval of + a ⁇ s ⁇ t [i + 1] ⁇ a and function qi13 ′ (s) in the interval of t [i + 1] ⁇ a ⁇ s ⁇ t [i + 1] + a.
  • the post-interpolation function qi ′ (s) obtained by the interpolation process is expressed by the following function qi21 ′ (s) in the interval t [i] ⁇ a ⁇ s ⁇ t [i + 1] ⁇ a and t [ i + 1] ⁇ a ⁇ s ⁇ t [i] + a interval function qi22 ′ (s) and t [i] + a ⁇ s ⁇ t [i + 1] + a interval function qi23 ′ (s).
  • the local interpolation unit 16a adds the obtained post-interpolation function to the post-interpolation integration function stored in the memory 5 (step S30).
  • the post-interpolation function is added to the post-interpolation integration function reset to 0 in step S42, the post-interpolation integration function after the addition becomes equal to the post-interpolation function obtained in step S28.
  • step S32 whether or not the local interpolation unit 16a has performed an interpolation process for obtaining post-interpolation functions for all interpolation blocks whose adjustment sections include at least a part of the sections and adding the post-interpolation functions to the post-interpolation integration function. Is determined (step S32). If the local interpolation unit 16a determines that the interpolation processing for all the interpolation blocks has not been completed yet, the local interpolation unit 16a returns to step S26 and extracts an interpolation block to be subjected to interpolation processing next.
  • the interpolation block extracted at this time is a command block adjacent to the end point side of the tool path with respect to the interpolation block previously subjected to the interpolation processing among the command blocks in which at least a part of the adjustment section is included.
  • the local interpolation unit 16a calculates the post-interpolation function in step S28 for the extracted interpolation block, and adds the post-interpolation function obtained thereby to the post-interpolation integration function.
  • the local interpolation unit 16a determines that the process of steps S26 to S30 has been completed in step S32 by completing the interpolation processing (distribution, integration, addition) of all the interpolation blocks that include at least part of the adjustment interval in step S32. Repeat.
  • the local interpolation unit 16a determines in step S32 that the interpolation processing has been completed for all the interpolation blocks that include at least part of the adjustment section, then the local interpolation unit 16a obtains an interpolation path with an error (step S34). Specifically, the local interpolation unit 16a obtains an interpolation path with an error by extracting a section corresponding to the interpolation section extracted in step S20 from the post-interpolation integration function obtained by adding the post-interpolation functions.
  • the error correction unit 16b of the path local filter 16 selects an error correction path for correcting an error between the tool path at the point corresponding to the start point and the end point of the interpolation section in the interpolation path with error. Obtained (step S36). Specifically, the error correction unit 16b has an error correction path value at the start point of the interpolation section equal to a value obtained by subtracting the tool path value at the start point from the value of the interpolation path with error at the start point, and An error correction path that satisfies the condition that the value of the error correction path at the end point of the interpolation section is equal to the value obtained by subtracting the value of the tool path at the end point from the value of the interpolation path with error at the end point is obtained.
  • the error correction unit 16b sets E (s) as the error correction path, r (s) as the interpolation path with error, p (s) as the tool path, and Ss as the starting point of the interpolation section. If the end point of the interpolation section is Se, an error correction path E (s) that satisfies the following equations (12) and (13) is obtained. In the present embodiment, the error correction unit 16b obtains an error correction path in which E (Ss) and E (Se) are connected by a straight line as an example of the error correction path E (s) that satisfies this condition.
  • the error correction unit 16b corrects the interpolation path with error by the error correction path obtained in step S36, and replaces the corrected interpolation path with the interpolation section of the tool path, thereby interpolating the tool of the interpolation section after the local interpolation.
  • a pass is set (step S38). Specifically, the error correction unit 16b corrects the interpolation path with error by subtracting the error correction path from the interpolation path with error, and the error of the interpolation path with error with respect to the tool path at the start point of the interpolation section by the correction. And the error of the interpolation path with error with respect to the tool path at the end point of the interpolation section.
  • the corrected interpolation path is continuously connected to the tool path at the start point of the interpolation section, and is continuously connected to the tool path at the end point of the interpolation section.
  • the local interpolation unit 16a determines whether or not the local interpolation of all the interpolation sections of the tool path has been completed (step S40). Here, if the local interpolation unit 16a determines that there is an interpolation section for which local interpolation has not been completed yet, the processes after step S20 are repeated. Specifically, the local interpolation unit 16a extracts an interpolation section located closest to the starting point of the tool path from among the interpolation sections for which local interpolation has not ended, and calculates and interpolates a post-interpolation function for the extracted interpolation section. Addition to the post-integration function, derivation of the interpolation path with error, derivation of the error correction path, correction of the interpolation path with error, and the like are performed.
  • the local interpolation unit 16a determines that the local interpolation of all the interpolation sections of the tool path has been completed, the local interpolation process by the path local filter 16 is completed, and then the parameter time function derivation unit The parameter time function representing the change of the parameter with respect to the passage of the reference time T is obtained by 18 (step S5 in FIG. 3).
  • the parametric variable time function deriving unit 18 is based on the acceleration / deceleration conditions stored in the storage unit 4 and the post-local interpolation tool path that is a tool path after all the interpolation sections are locally interpolated. Determine the parametric time function (the parametric velocity curve). More specifically, the parametric variable time function deriving unit 18 can move the position of the tool 105 in the workpiece coordinate system according to the post-local interpolation tool path, and can add acceleration for each transfer axis of the transfer object. A parameter time function that satisfies the condition that the allowable acceleration for the transfer axis included in the deceleration condition is not exceeded is obtained. Specifically, the parameter time function deriving unit 18 obtains the parameter time function as follows.
  • the parametric variable time function deriving unit 18 first obtains a parametric variable speed upper limit function represented by the stepped velocity curve in FIG.
  • the parametric variable speed upper limit function is a function that represents the upper limit value of the speed ds / dT of the parametric variable s for each block between the command points of each transfer axis path.
  • Each horizontal part of the stepwise speed curve in FIG. 13 represents a block, and the speed ds / dT of the part corresponds to the upper limit value of the speed ds / dT of the parameter s of the block.
  • Each block is originally set so that the increment of the parameter s for each block is equal, but the time required to travel a distance corresponding to the increment of the parameter s of each block varies. In FIG.
  • the increase of the parameter s is converted to the progress of time t and is represented on the horizontal axis.
  • the parametric variable time function deriving unit 18 obtains the parametric variable upper limit function by obtaining the upper limit value of the speed ds / dT of the parametric variable s of each block as follows.
  • e is a parameter indicating a minute distance in the parameter.
  • the parameter time function deriving unit 18 obtains an approximate value ds1 [ax] of the primary differential value by the parameter of the transfer axis path at the point (s a -e) by the following formula (14), and the following formula (15)
  • To obtain an approximate value ds2 [ax] of the primary differential value by the parameter of the transfer axis path at the point (s a + e), and the obtained approximate values ds1 [ax] and ds2 [ax] and the following equation (16) Is used to find the approximate value ddss [ax] of the secondary differential value by the transfer axis path parameter at the point corresponding to the parameter s a .
  • ax is an index representing each transfer axis.
  • the acceleration a [] for each transfer axis can be approximated by v 2 ⁇ ddss [] and is stored in the storage unit 4.
  • the allowable acceleration for each transfer axis in the acceleration / deceleration condition is A []
  • the parameter time function deriving unit 18 obtains the speed upper limit value vm of the target block by the following equation (17).
  • the parameter time function deriving unit 18 determines the speed upper limit value vm of the corresponding block for each transfer axis and the speed corresponding to the block among the speed commands included in the machining program. The lowest value is the upper limit value of the speed ds / dT of the parameter s of the block.
  • the parametric variable time function deriving unit 18 obtains the upper limit value of the speed ds / dT of the parametric variable s of all the blocks by the method as described above, and connects the obtained upper limit values of the blocks to the parametric variable speed upper limit function. Ask for.
  • the parametric variable time function deriving unit 18 has a stepped shape represented by the parametric variable upper limit function based on the allowable speed, allowable acceleration, and allowable jerk of the variable s included in the acceleration / deceleration conditions stored in the storage unit 4.
  • An acceleration / deceleration curve ds (T) / dT that continuously changes so as not to exceed the velocity curve is obtained, and the obtained acceleration / deceleration curve ds (T) / dT is integrated at the reference time T to obtain a parameter time function s (T ) Is calculated.
  • the parameter time function deriving unit 18 first sets a predetermined time interval from the start point side to the end point side of the acceleration region speed curve (speed function) of the acceleration / deceleration curve ds (T) / dT. Every time it is obtained sequentially along with the time interval width ts of the time interval and registered in the memory 5. At this time, the parameter time function deriving unit 18 reaches the end point of the block set as the target point (s2, f2) from the final point (s1, f1, t1) of the velocity curve registered in the memory 5 so far.
  • a speed curve is calculated for each time interval together with the time interval width ts so that the speed f1 at the final point can rise to the upper limit value (speed upper limit value f2) of the speed ds / dT of the block.
  • the form of the speed curve obtained at this time is the difference (s2 ⁇ s1) in the parameter between the final point and the target point, the speed f1 at the final point, the speed upper limit f2, the acceleration a1 at the final point, the allowable value It depends on conditions such as acceleration and allowable jerk.
  • FIGS. 14 to 20 show how to obtain a speed curve corresponding to each condition.
  • FIG. 14 and 15 show a case where the speed reaches the speed upper limit value f2 before reaching the target point (s2, f2) from the final point (s1, f1, t1).
  • t2 is the time when s2 is reached.
  • FIG. 14 shows that the speed is increased from f1 so that the acceleration increases from a1 to the allowable acceleration according to the allowable jerk from the final point (s1, f1, t1) (time interval ts1), and then the allowable acceleration is reached.
  • the speed increases at the same acceleration (time interval ts2), and then the acceleration is reduced according to the allowable jerk so that the speed does not exceed the speed upper limit value f2, and the speed reaches the speed upper limit value f2 (time interval ts3).
  • a speed curve in the form of reaching the target point (s2, f2) at a speed equal to the speed upper limit value f2 (time interval ts4) is shown, and the parametric variable time function deriving unit 18 follows each condition according to such a condition.
  • Each speed curve (speed function) is calculated together with the time interval widths ts1 to ts4 of each interval, and the calculated speed curve is stored in the memory 5 together with the corresponding time interval.
  • FIG. 15 shows that the speed is increased from f1 (time interval ts5) so that the acceleration increases from a1 according to the allowable jerk from the final point (s1, f1, t1), but the speed is high because the speed upper limit value f2 is close.
  • the acceleration is reduced according to the allowable jerk to reach the speed upper limit value f2 (time interval ts6), and then the target point (s2, f2) is reached at a speed equal to the speed upper limit value f2 (time interval ts7).
  • the parameter time function deriving unit 18 calculates a speed curve (speed function) for each time interval together with the time interval widths ts5 to ts7 of each interval in accordance with such conditions. The calculated speed curve is registered in the memory 5 together with the corresponding time interval.
  • FIG. 16 to 18 show a case where the target point (s2, f2) is reached while the acceleration is decreasing according to the allowable jerk.
  • FIG. 16 shows that the speed is increased from f1 so that the acceleration increases from a1 according to the allowable jerk from the final point (s1, f1, t1) (time interval ts8), but from the final point to the target point (s2 , F2) is small (s2-s1), so before the speed reaches the allowable acceleration, the acceleration is reduced according to the allowable jerk to reach the speed upper limit value f2 and reach the target point (s2, f2).
  • the parameter time function derivation unit 18 converts the speed curve (speed function) for each time interval according to such a condition to the time interval width ts8 of each interval. , Ts9, and the calculated velocity curve is registered in the memory 5 together with the corresponding time interval. Further, FIG. 17 shows that the speed is increased from f1 so that the acceleration increases from a1 to the allowable acceleration according to the allowable jerk from the final point (s1, f1, t1) (time interval ts10), and thereafter at an acceleration equal to the allowable acceleration.
  • the speed increases (time interval ts11), and then reaches the target point (s2, f2) (time interval ts12) while the acceleration is decreased according to the allowable jerk so that the speed does not exceed the upper speed limit f2.
  • the parameter time function deriving unit 18 calculates a speed curve (speed function) for each time interval together with the time interval widths ts10 to ts12 of each interval according to such a condition, The calculated speed curve is registered in the memory 5 together with the corresponding time interval.
  • the parameter time function deriving unit 18 calculates the speed curve (speed function) of the section together with the time section width ts13 in accordance with such a condition, and the calculated speed curve is used as the time section. It is registered in the memory 5 together with ts13.
  • FIG. 19 shows a case where the speed cannot be increased to the speed upper limit value f2 even if the parameter s reaches the value s2 corresponding to the target point.
  • the parameter time function deriving unit 18 calculates a speed curve and does not register the calculated speed curve in the memory 5 when this is the case.
  • T1 shows a case where the speed exceeds the speed upper limit f2 even if the acceleration is decreased according to the allowable jerk.
  • the parametric time function deriving unit 18 cancels the data of the speed curve registered in the memory 5 immediately before when calculating the speed curve, and further stores the memory in the previous one. Recalculation is performed to obtain a speed curve that reaches the current target point from the final point of the speed curve registered in 5 and can reach the speed upper limit value corresponding to the current target point.
  • the recalculation method in this case is the same as in the above cases.
  • the parameter time function deriving unit 18 sequentially calculates and registers the speed curve as described above.
  • the parameter time function deriving unit 18 registers the obtained velocity curve in the memory 5
  • the time t2 and the acceleration a2 when reaching the target point are registered in the memory 5 and the next target point is set.
  • the registered time t2 is used as the time t1 at the final point
  • the registered acceleration a2 is used as the acceleration a1 at the final point to calculate the next speed curve.
  • the speed curve in the acceleration region of the acceleration / deceleration curve is obtained by the speed curve obtained until the speed upper limit value corresponding to the next target point becomes smaller than the speed at the final point.
  • the parameter time function deriving unit 18 sequentially calculates and registers the speed curve similar to the above from the end point side to the start point side of the path in the acceleration / deceleration curve. Obtain the velocity curve. Then, the parametric variable time function deriving unit 18 obtains the acceleration / deceleration curve ds (T) / dT by connecting the end point of the obtained acceleration curve and the start point of the deceleration curve. Then, the parameter time function deriving unit 18 calculates the parameter time function s (T) by integrating the obtained acceleration / deceleration curve ds (T) / dT at the reference time T.
  • step S6 derivation of the reference time T and pulse interpolation by the pulse interpolation unit 22 and pulse output to each transfer unit 102c, 106b, 108b, 110b by the control unit 24 are performed (step S6).
  • step S6 The detailed process of step S6 is shown in the flowcharts of FIGS.
  • the pulse interpolation unit 22 initially sets the reference time T so that the reference time T matches the time that is the starting point of the parametric variable time function obtained in step S5, and the unit of the actual time.
  • the acceleration / deceleration function g (t) indicating a change in the ratio of the unit time (reference unit time) of the reference time to the time is set to 1.0 (constant), and at the same time, the required time time described later is set to ⁇ 1 ( Step S52 in FIG.
  • the pulse interpolation unit 22 obtains a position in the work coordinate system on the post-local interpolation tool path corresponding to the initially set reference time T (step S54). Specifically, the pulse interpolation unit 22 calculates a parameter s corresponding to the initially set reference time T from the parameter variable time function s (T), and calculates the parameter from the calculated parameter s and the tool path after local interpolation. The position in the work coordinate system on the post-local interpolation tool path corresponding to the parameter s is obtained.
  • the pulse interpolation unit 22 obtains position coordinates newp [] for each transfer axis corresponding to the position in the workpiece coordinate system on the obtained post-local interpolation tool path (step S56).
  • the pulse interpolation unit 22 initially sets a count number t of a counter (hereinafter referred to as a real time counter) that counts the elapsed number of unit times of real time to 0 (step S58), and obtained in step S56.
  • the position coordinate newp [] for each transfer axis is set as the old coordinate oldp [] (step S60).
  • the pulse interpolation unit 22 derives the value of the acceleration / deceleration function g (t) corresponding to the count t of the actual time counter at this time as the reference unit time dT, and the acceleration / deceleration function g (t) at this time ) Is derived as the rate of change dG of the reference unit time dT (step S62).
  • the pulse interpolation unit 22 obtains a new reference time T by adding the reference unit time dT obtained in step S62 to the reference time T initially set in step S52 (step S64).
  • the pulse interpolation unit 22 obtains the position on the post-local interpolation tool path corresponding to the new reference time T in the same manner as in step S54 (step S66).
  • the pulse interpolation unit 22 obtains position coordinates newp [] for each transfer axis corresponding to the obtained position on the post-local interpolation tool path (step S68).
  • the pulse interpolation unit 22 calculates a command pulse (step S70). Specifically, the pulse interpolation unit 22 subtracts the corresponding one of the old coordinates oldp [] for each transfer axis set in step S60 from the position coordinates newp [] for each transfer axis obtained in step S68. Thus, the change amount of the position coordinate on each transfer axis per reference unit time dT, that is, the transfer amount per reference unit time dT of the supports 102b, 106a, 108a, 110a corresponding to each transfer axis, was obtained. The transfer amount is set as a command pulse every unit time of real time (every specific cycle).
  • each transfer part 102c, 106b, 108b, 110b is a specific period only by the transfer amount which the command pulse sent from the control part 24 sends the corresponding support body 102b, 106a, 108a, 110a to the corresponding transfer axis direction. Transfer to the hit.
  • the pulse interpolation unit 22 determines whether there is a stop request (step S74 in FIG. 6). Specifically, the monitoring unit 10 monitors whether or not an emergency stop signal is transmitted from the stop signal transmission unit 124b, and if an emergency stop signal is transmitted from the stop signal transmission unit 124b, a stop request is issued. When the emergency stop signal is not transmitted from the stop signal transmission unit 124b, the stop request is not output. The pulse interpolation unit 22 determines whether or not there is a stop request from the monitoring unit 10.
  • the pulse interpolation unit 22 determines whether there is a speed change request (step S76). Specifically, the monitoring unit 10 monitors whether or not the speed change signal is transmitted from the speed change signal transmission unit 128b, and when the speed change signal is transmitted from the speed change signal transmission unit 128b, the speed change signal is transmitted. When a change request is output and a speed change signal is not transmitted from the speed change signal transmitter 128b, a speed change request is not output. The pulse interpolation unit 22 determines whether or not there is a speed change request from the monitoring unit 10.
  • the pulse interpolation unit 22 next determines whether or not the count number t of the current real time counter is equal to or less than the required time time (step S78). . If the pulse interpolation unit 22 determines that the current count value t of the real time counter is equal to or less than the required time time, then the pulse interpolation unit 22 determines whether the current count value t of the real time counter is equal to the required time time. Is determined (step S80). Here, when the pulse interpolation unit 22 determines that the count number t of the current actual time counter is equal to the required time time time, the current override coefficient, that is, the reference unit time dT has reached the target override coefficient ka.
  • step S82 it is determined whether or not the reached target override coefficient ka is larger than 0 (step S82).
  • the pulse interpolation unit 22 determines that the reached target override coefficient ka is larger than 0, the pulse interpolation unit 22 sets the acceleration / deceleration function g (t) to a value (constant value) equal to the reached target override coefficient ka.
  • the required time time is set to ⁇ 1 (step S84), and then the count number t of the real time counter is incremented by +1 (step S86).
  • the pulse interpolation unit 22 determines whether or not to perform a shutdown process (step S88).
  • the shutdown process is executed and the numerical control process of the present embodiment is completed, and it is determined that the pulse interpolation unit 22 does not perform the shutdown. In this case, the processes after step S60 are repeated.
  • step S78 if the pulse interpolation unit 22 determines that the count t of the real time counter is greater than the required time time, the pulse interpolation unit 22 then determines shutdown in step S88.
  • the pulse interpolation unit 22 determines that the count number t of the current real time counter is greater than the required time time. Therefore, in this case, the pulse interpolation unit 22 determines whether or not to shut down in step S88 after step S78.
  • step S80 If the pulse interpolation unit 22 determines in step S80 that the count number t of the real time counter is not equal to the required time time, then the pulse count unit 22 counts up the count number t of the real time counter in step S86. After that, the shutdown determination in step S88 is performed.
  • step S60 which is performed again after step S88, the pulse interpolation unit 22 sets the position coordinate newp [] for each transfer axis obtained in step S68 to the old coordinate oldp [], and in step S62 thereafter.
  • the value of the acceleration / deceleration function g (t) corresponding to the count t of the actual time counter at that time is derived as the reference unit time dT, and the first derivative of the acceleration / deceleration function g (t) at that time with respect to t The value is derived as the change rate dG of the reference unit time dT.
  • step S74 if it is determined in step S74 that the pulse interpolation unit 22 determines that there is a stop request, the reference unit time dT at that time is stored in the memory 5 as the restart override coefficient k ⁇ , and the target override coefficient ka is set to 0 (step S90). Thereafter, the pulse interpolation unit 22 changes the current reference unit time dT to a unit time equal to the target override coefficient ka, and accordingly, the acceleration / deceleration function until the change rate dG of the current reference unit time dT changes to zero. g (t) and the time required for the change of dT and dG are calculated (step S92).
  • the pulse interpolation unit 22 sets the acceleration / deceleration function g (t) until the current reference unit time dT is reduced to 0 and the reference unit time dT to 0. The time required for reducing the time to the time is obtained. Thereafter, the pulse interpolation unit 22 resets the count t of the real time counter to 0 (step S58), and then the processes of steps S60 to S88 are repeated. In step S62 at this time, the pulse interpolation unit 22 obtains the reference unit time dT from the acceleration / deceleration function g (t) obtained in step S92.
  • the reference unit time dT changes to 0 according to the acceleration / deceleration function g (t) and the required time time obtained in step S92, and accordingly the transfer for each transfer axis indicated by the command pulse.
  • the amount changes to zero.
  • an emergency stop of the transfer of the supports 102b, 106a, 108a, 110a by the transfer parts 102c, 106b, 108b, 110b is executed.
  • the pulse interpolation unit 22 determines in step S76 that there is a speed change request from the monitoring unit 10, the target override coefficient ka is equal to the request override coefficient kr included in the speed change request. (Step S94). Thereafter, the pulse interpolation unit 22 changes the current reference unit time dT to a unit time equal to the target override coefficient ka (required override coefficient kr), and the change rate dG of the current reference unit time dT changes to 0 accordingly.
  • the acceleration / deceleration function g (t) until the time and the time required for the change of dT and dG are obtained (step S92).
  • the pulse interpolation unit 22 resets the count t of the real time counter to 0 (step S58), and then the processes of steps S60 to S88 are repeated.
  • step S62 at this time, the pulse interpolation unit 22 obtains the reference unit time dT from the acceleration / deceleration function g (t) obtained by changing the reference unit time dT to the unit time equal to the requested override coefficient kr, obtained in step S92. .
  • the reference unit time dT changes to a unit time equal to the required override coefficient kr according to the acceleration / deceleration function g (t) and the required time time, and accordingly, for each transfer axis indicated by the command pulse.
  • the transfer amount changes.
  • the change of the transfer speed of the supports 102b, 106a, 108a, 110a by the transfer parts 102c, 106b, 108b, 110b (change of the moving speed of the transfer object) is executed.
  • Step S82 if the pulse interpolation unit 22 determines that the reached target override coefficient ka is not greater than 0, that is, the reached target override coefficient ka is 0, the shutdown process is performed next. It is determined whether or not to perform (step S96). Note that the reached target override coefficient ka is 0 when the reference unit time dT is 0, the servo motors of the transfer units 102c, 106b, 108b, and 110b are stopped and the transfer object stops moving. It is in a state. If the pulse interpolation unit 22 determines that the shutdown process is to be performed, the shutdown process is executed and the numerical control process according to the present embodiment ends.
  • the pulse interpolation unit 22 determines whether there is a restart request (step S98). Specifically, the monitoring unit 10 monitors whether or not a restart signal is transmitted from the restart signal transmitting unit 126b. When the restart signal is transmitted from the restart signal transmitting unit 126b, the monitoring unit 10 restarts. When the start request is output and the restart signal is not transmitted from the restart signal transmitting unit 126b, the restart request is not output. The pulse interpolation unit 22 determines whether or not there is a restart request from the monitoring unit 10.
  • the pulse interpolation unit 22 determines that there is no restart request, the pulse interpolation unit 22 then performs a shutdown determination in step S96, and if it determines that there is a restart request, the target override coefficient ka. Is set to a value equal to the restart override coefficient k ⁇ stored in the memory 5 (step S100). Thereafter, the pulse interpolation unit 22 changes the current reference unit time dT to a unit time equal to the target override coefficient ka (restart override coefficient k ⁇ ), and accordingly, the change rate dG of the current reference unit time dT becomes 0.
  • step S92 The acceleration / deceleration function g (t) until the change and the required time time required for the change of dT and dG are obtained (step S92). Thereafter, the pulse interpolation unit 22 resets the count t of the real time counter to 0 (step S58), and then the processes of steps S60 to S88 are repeated. In step S62 at this time, the pulse interpolation unit 22 calculates the reference unit time dT from the acceleration / deceleration function g (t) obtained by changing the reference unit time dT to the unit time equal to the restart override coefficient k ⁇ obtained in step S92. Ask.
  • the reference unit time dT changes from 0 to a unit time equal to the restart override coefficient k ⁇ according to the acceleration / deceleration function g (t) and the required time time, and each transfer indicated by the command pulse accordingly.
  • the transfer amount for each axis changes.
  • the transfer of the supports 102b, 106a, 108a, 110a by the transfer units 102c, 106b, 108b, 110b is restarted, and the transfer object is restarted.
  • control process by the numerical controller 2 of the present embodiment is performed.
  • the process of locally interpolating the interpolation section of the tool path so that the change in the differential value that is discontinuous at the interpolation target point becomes a continuous change, and the acceleration of the transfer object Or, when there is an input of a special command for instructing an operation accompanied by deceleration, a new unit in which the length of the reference unit time dT is adjusted to a length corresponding to the speed change of the object to be transferred instructed by the special command.
  • the command pulse can be obtained by one pulse interpolation.
  • the arithmetic processing can be simplified.
  • the path local filter 16 allows the primary differential value to be a continuous change when the change of the primary differential value before and after the interpolation target point is discontinuous. If the change of the primary differential value is continuous and the change of the secondary differential value is discontinuous before and after the toolpath, the interpolation section of the tool path is locally interpolated so that the change of the secondary differential value becomes a continuous change. .
  • the change of the first derivative value is discontinuous before and after the interpolation target point
  • the speed change of the transfer object is discontinuous before and after the interpolation target point.
  • the discontinuous speed change of the transfer object before and after the interpolation target point can be changed to a continuous speed change.
  • the acceleration change of the transfer object is discontinuous before and after the interpolation target point
  • the discontinuous acceleration change of the transfer object before and after such an interpolation target point can be changed to a continuous acceleration change. Therefore, in this embodiment, the abnormal data as the interpolation target point included in the tool path is interpolated, and the rapid speed change and the rapid acceleration change of the transfer object caused by the abnormal data can be moderated. As a result, the occurrence of mechanical shock due to abnormal data in the tool path can be suppressed.
  • a new reference time T is obtained by adjusting the length of the reference unit time dT common to each transfer axis in accordance with the special command, and each transfer axis is determined based on the new reference time T.
  • a command pulse indicating a transfer amount per specific cycle is obtained, and the supports 102b, 106a, 108a, 110a are transferred to the transfer units 102c, 106b, 108b, 110b according to the command pulse. For this reason, in the movement of the transfer object carried out by the transfer, the relative positional relationship between the coordinate axes of the workpiece coordinate system in the original tool path is maintained.
  • the interpolation section of the tool path is locally interpolated by the path local filter 16 so that the post-local interpolation tool path is continuously connected before and after the start point of the interpolation section and before and after the end point of the interpolation section. Therefore, in the subsequent control of the operation of each transfer unit 102c, 106b, 108b, 110b based on the post-local interpolation tool path, each transfer unit 102c, 106b that moves the transfer object rapidly at the start point and end point of the interpolation section. , 108b, 110b can be prevented from suddenly changing.
  • the path local filter 16 is located closest to the starting point of the tool path among the overlapping interpolation sections when the interpolation sections of adjacent interpolation target points in the tool path overlap.
  • the interpolation from the start point of the interpolation section to the end point of the interpolation section located closest to the end point of the tool path is set as one interpolation section, and the tool path in the interpolation section is locally interpolated. For this reason, even when abnormal data such as vibration where multiple interpolation target points are close to each other are included in the tool path, the tool path near the multiple interpolation target points is interpolated at a time and smoothed. It can be interpolated to show a curve.
  • the numerical control device according to the present invention can be applied to other types of machine tools than those shown in the above embodiment.
  • the numerical control device according to the present invention can be applied to a 5-axis machine tool, a machine tool having a parallel mechanism, a lathe, and other various machine tools.
  • the path local filter 16 has a command point where the change of the primary differential value due to the parameter is continuous and the change of the secondary differential value due to the parameter is discontinuous, and the change of the primary differential value due to the parameter is discontinuous. Only one of the command points may be set as interpolation target points.
  • the method of deriving the distribution interval width and the interpolation interval width by the path local filter 16 is not limited to the above-described method, and the distribution interval width and the interpolation interval width may be obtained by various derivation methods other than the above method. Good.
  • the interpolation section width is the same as the distribution section width, but the interpolation section width is not limited to such a section width. That is, the interpolation section width may be a section width larger than the distribution section width.
  • the path local filter 16 is configured such that the post-local interpolation tool path is continuously connected before and after the start point of the interpolation section and before and after the end point of the interpolation section.
  • the interpolation section of the tool path may be locally interpolated so that the first-order differential value due to the parametric variable changes continuously before and after the start point of the interpolation section and before and after the end point of the interpolation section.
  • the error correction unit 16b of the path local filter 16 obtains the error correction path, the value of the error correction path at the start point of the interpolation section is changed from the value of the interpolation path with error at the start point to the tool path at the start point.
  • the value is equal to the value obtained by subtracting the value
  • the value of the error correction path at the end point of the interpolation section is equal to the value obtained by subtracting the tool path value at the end point from the value of the interpolation path with error at the end point.
  • the primary differential value of the error correction path at the start point is equal to the value obtained by subtracting the primary differential value of the tool path at the start point from the primary differential value of the interpolation path with error at the start point of the interpolation section
  • An error at the end point is obtained by subtracting the first derivative value of the tool path at the end point from the first derivative value of the interpolation path with error at the end point of the interpolation section. Request satisfying error correction path of the primary differential value of the correction path are equal.
  • the path is such that the primary differential value continuously changes before and after the end point.
  • the transfer object is detected at each time point before and after the start point and before and after the end point of the interpolation section.
  • the transfer of the supports 102b, 106a, 108a, 110a by the transfer units 102c, 106b, 108b, 110b can be controlled so that the moving speed changes continuously.
  • the path local filter 16 is such that the post-local interpolation tool path is continuously connected before and after the start point and the end point of the interpolation section, and the primary differential value by the parameter of the local interpolation tool path is the start point and end point of the interpolation section.
  • the post-local interpolation toolpath is further differentiated by the second-order differential values of the post-local interpolation toolpath before and after the start point and the end point of the interpolation section.
  • the interpolation section of the tool path may be locally interpolated so that the path changes continuously.
  • the error correction unit 16b of the path local filter 16 calculates the secondary differential value of the tool path at the start point from the secondary differential value of the interpolation path with error at the start point of the interpolation section.
  • the second derivative value of the error correction path at the start point is equal to the value obtained by subtraction, and the second derivative value of the tool path at the end point is subtracted from the second derivative value of the interpolation path with error at the end point of the interpolation section.
  • the path is such that the primary differential value and the secondary differential value by the parametric variable continuously change before and after the end point.
  • the transfer object is detected at each time point before and after the start point and before and after the end point of the interpolation section.
  • the transfer of the corresponding supports 102b, 106a, 108a, 110a by the transfer units 102c, 106b, 108b, 110b can be controlled so that both the moving speed and the acceleration change continuously.
  • the first-order differential value of the tool path is distributed to the distribution section using a linear distribution function, but the distribution method is not limited thereto. That is, as the distribution function used for distributing the first-order differential value of the tool path, various distribution functions other than the distribution function described above may be used.
  • the distribution function used for this distribution is preferably a function having an integral of 1 in the section [ ⁇ A / 2, A / 2] and a symmetrical shape with respect to the center of the section.
  • a bell-shaped distribution function f (s) represented by the following equation is given.
  • f (s) 0 outside the distribution interval ⁇ A / 2 ⁇ s ⁇ A / 2.
  • the interpolation section can be interpolated so as to be a smoother curve than when the above-mentioned linear distribution function is used.
  • the numerical control device includes a plurality of transfer devices for transferring a workpiece or a tool for processing the workpiece as a transfer object to process the workpiece, and processing the workpiece.
  • a command input device for inputting from the outside a special command for instructing an operation accompanied by a speed change of the transfer object, each transfer device,
  • Each of the transfer units is provided in a machine tool having a support for supporting the transfer object and a transfer unit for transferring the transfer object by transferring the support in a specific transfer axis direction.
  • a numerical control device that performs numerical control of each of the transfer devices by outputting a command pulse for each specific period to a path that the tool should pass when machining the workpiece.
  • At least one of the command points is an interpolation target point
  • the tool path has a specific section width before and after the interpolation target point.
  • a path local filter that locally interpolates only the inter-interval so that the change in the differential value that is discontinuous at the interpolation target point becomes a continuous change, the acceleration / deceleration condition of the transfer object, and the path local filter
  • a parametric variable time function deriving unit that obtains a parametric variable time function that represents a change in the parametric variable with respect to the elapse of a reference time
  • a reference time that progresses every reference unit time based on the parameter time function is derived, and the intermediate time corresponding to each time point for each reference unit time of the derived reference time is determined from the parameter time function obtained by the parameter time function deriving unit.
  • the position coordinate on the post-local interpolation tool path in the work coordinate system corresponding to the parameter at each obtained time point is obtained, and the obtained value is obtained.
  • the position coordinates in each of the transfer axes corresponding to each of the transfer units is determined from the position coordinates at each time point, and each of the reference time units of the reference time derived from the position coordinates in the determined transfer axes is determined.
  • a pulse interpolation unit that determines the transfer amount of the support in the transfer axis direction and sets the transfer amount per reference unit time as the command pulse for each specific period, and each transfer axis determined by the pulse interpolation unit
  • the command pulse for each specific cycle in the direction is output to each transfer unit corresponding to the direction of each transfer axis, and each transfer unit according to the transfer amount for each specific cycle indicated by the output command pulse
  • a control unit that moves the support corresponding to the reference unit time until the special command is input to the command input device after the machine tool is started.
  • the special command indicates the reference unit time.
  • the reference unit time is set as the special command. Extend at a rate according to the speed increase indicated by.
  • this numerical control device it is possible to obtain a command pulse for each specific period for controlling the transfer of the support by each transfer unit by one pulse interpolation, and to simplify the arithmetic processing. Specifically, in this numerical control device, a process for locally interpolating the interpolation section of the tool path so that the change in the differential value that is discontinuous at the interpolation target point becomes a continuous change, and the input of a special command In the case where there is, the process of deriving the reference time in which the length of the reference unit time is adjusted to the length corresponding to the speed change of the transfer object indicated by the special command, the transfer of the support by each transfer unit is performed.
  • the interpolation target point When the change in the primary differential value is discontinuous before and after the interpolation, the primary differential value is interpolated so that the change is continuous. If it is continuous, it is interpolated so that the change of the second derivative becomes a continuous change.
  • the speed change of the transfer object is discontinuous before and after the interpolation target point, so in the numerical control device of the present invention, the discontinuous speed change of the transfer object before and after such an interpolation target point can be changed to a continuous speed change.
  • the acceleration change of the transfer object is discontinuous before and after the interpolation target point.
  • the discontinuous acceleration change of the transfer object before and after such an interpolation target point can be changed to a continuous acceleration change.
  • the abnormal data portion that causes a sudden speed change or acceleration change of the transfer object included in the tool path is interpolated, and the transfer object at the time corresponding to the interpolation target point is interpolated.
  • the speed change and the acceleration change can be moderated, and as a result, the occurrence of mechanical shock caused by abnormal data in the tool path can be suppressed.
  • a reference time obtained by adjusting the length of the reference unit time in accordance with the special command is derived, and the transfer of the support for each of the transfer shafts for each reference unit time of the derived reference time.
  • the workpiece coordinates in the original tool path are used in the movement of the transfer object performed by each transfer unit transferring the support according to the command pulse.
  • the relative positional relationship between the coordinate axes of the system is maintained. For this reason, generation
  • the path local filter is configured to change the interpolation section of the tool path so that the post-local interpolation tool path is continuously connected before and after the start point of the interpolation section and before and after the end point of the interpolation section. Local interpolation is preferred.
  • the path local filter is such that the post-local interpolation tool path has continuous first-order differential values of the post-local interpolation tool path before and after the start point of the interpolation section and before and after the end point of the interpolation section. It is preferable that the interpolation section of the tool path is locally interpolated so as to change the path.
  • the path local filter has a second-order differential value based on the parameter of the post-local interpolation tool path before and after the start point of the interpolation section and before and after the end point of the interpolation section.
  • the interpolation section of the tool path may be locally interpolated so that the paths change continuously.
  • the path local filter locally interpolates the interpolation section of the tool path so that the post-local interpolation tool path is continuously connected before and after the start point of the interpolation section and before and after the end point of the interpolation section
  • the path local filter A section obtained by expanding the interpolation section by a specific section width before and after is set as an adjustment section, and a part between the command points adjacent to each other in the tool path is set as an interpolation block, and at least a part of the adjustment section from the tool path is included in the adjustment section.
  • a post-interpolation function indicating each interpolation block after the interpolation processing is obtained, and interpolation of each obtained interpolation block is performed.
  • the post-interpolation integration function is obtained by integrating the post-function, and the interpolation interval of the obtained post-interpolation integration function is calculated.
  • the value corresponding to the start point of the interpolation section of the interpolation path with error obtained by the local interpolation section is equal to the value of the start point of the interpolation section of the tool path that is not locally interpolated, and interpolation with the error
  • the interpolation path with error is corrected so that the value corresponding to the end point of the interpolation section of the path is equal to the end point value of the interpolation section of the tool path that is not locally interpolated, and the corrected interpolation path is An error correction unit that replaces the interpolation section of the tool path, wherein the local interpolation unit has a plurality of first positions with different parametric variables in the interpolation block as a center, respectively.
  • a plurality of integration intervals each having a specific interval width are set, and first derivative values of the tool path at the plurality of second positions having different parameters in the set integration intervals are respectively determined by the parameter.
  • first-order differential values obtained at the respective second positions are distributed on the basis of a specific distribution function in each distribution section having the respective second positions as the center and having a section width equal to the integration section. It is preferable to integrate the post-distribution differential function obtained in (1) over the integration interval and obtain the post-interpolation function by the integration.
  • the change in the differential value that is discontinuous at the interpolation target point in the interpolation section of the tool path becomes a continuous change
  • the post-local interpolation tool path is before and after the start point of the interpolation section
  • a path local filter that locally interpolates the interpolation section of the tool path can be specifically configured so as to be continuously connected before and after the end point of the interpolation section.
  • the path local filter includes a plurality of interpolation target points in the tool path and the interpolation sections of adjacent interpolation target points overlap with each other, the overlapping interpolation sections
  • the interpolation path from the start point of the interpolation section located closest to the start point of the tool path to the end point of the interpolation section located closest to the end point of the tool path is defined as one interpolation section, and the tool path in the interpolation section is locally interpolated. It is preferable to do.
  • the tool paths near the plurality of interpolation target points are interpolated at a time. Can be interpolated to show a smooth curve.
  • the speed change of the transfer object is performed according to the special command input to the special command device separately from the normal transfer of the transfer object at the time of machining the workpiece in the machine tool.
  • the processing shape error is suppressed, and calculation processing for tool path interpolation is performed. Can be simplified.

Abstract

 数値制御装置は、ツールパスのうち補間対象点の前後に亘り、特定の区間幅を有する補間区間を当該補間対象点における微分値の変化が連続的な変化となるように局部補間するパス局部フィルタと、指令入力装置に移送対象物の減速又は増速を指示する特別指令が入力された場合にはその特別指令による減速指示又は増速指示に応じた度合いで短縮又は延長した基準単位時間毎に進行する基準時刻を導出し、媒介変数時間関数からこの導出した基準時刻の基準単位時間毎の各時点での媒介変数を求め、その求めた各時点での媒介変数に対応するワーク座標系での局部補間後ツールパス上の位置座標を求め、その求めた各時点での位置座標から各移送軸における位置座標を求め、その求めた各移送軸における位置座標から前記導出した基準時刻の基準単位時間毎の各移送軸方向への支持体の移送量を求めてその基準単位時間毎の移送量を特定周期毎の指令パルスとするパルス補間部を備える。

Description

数値制御装置
 本発明は、数値制御装置に関するものである。
 従来、各種工作機械では、ワークやそのワークを加工するための工具を移送する移送装置を加工プログラム(NCプログラム)に従って数値制御することによりワークの加工が行われている。下記特許文献1には、そのような移送装置の数値制御を行う数値制御装置が開示されている。
 特許文献1に示された数値制御装置では、加工プログラムからワーク上に固定された座標系における工具の位置座標の変化を媒介変数の関数として表すツールパスを求めるとともに、そのツールパスから移送装置の各移送軸毎の移送軸パスを求め、その求めた各移送軸毎の移送軸パスに基づいて基準単位時間毎の各移送軸における移送量を求め、その求めた移送量のデータを指令パルスとして各移送軸に対応する移送装置のサーボモータへ出力することにより各移送装置の制御を行っている。そして、この数値制御装置では、移送軸パスに対してブロック滑らか補間とコーナー滑らか補間とを行い、それらの滑らか補間後の移送軸パスからパルス補間により基準単位時間毎の各移送軸における移送量を求めている。なお、前記ブロック滑らか補間は、多数の指令点を直線で結んだ形状の移送軸パスを各指令点を通る滑らかな曲線に補間し、前記コーナー滑らか補間は、所定の指令点においてその前後で位置座標の変化量が急変しているような移送軸パスのコーナー部が滑らかなコーナーとなるようにそのコーナー部を補間するものである。
 しかし、この特許文献1に記載の技術では、位置座標の変化量が短い間隔で繰り返し急変しているような思わぬ異常データ(ノイズ等)が移送軸パスに含まれている場合には、その異常データの部分を滑らかに補間することは困難である。そして、移送軸パスにそのような異常データが含まれており、その移送軸パスに従って移送装置が制御された場合には、移送装置の動作が当該異常データに対応する部分で急変し、加工機械に機械ショックが発生する。このため、この機械ショックの要因となる移送軸パス中の異常データを補正することが重要な課題となる。
 そこで、下記特許文献2には、このような課題を解決することが可能な数値制御装置が示されている。
 この特許文献2の数値制御装置では、補間後加減速技術を用いている。この補間後加減速は、各移送軸パスから補間演算(パルス補間)によって得られた、各移送軸用のサーボモータへの駆動指令に対して加減速処理を行うものである。この補間後加減速によれば、パルス補間によって得られた駆動指令に前記異常データが含まれていても、その後の加減速処理によってその異常データを補正することができ、機械ショックの発生を抑制することが可能である。しかし、その反面、この補間後加減速では、ワークの加工形状の誤差が発生するという欠点がある。具体的には、この特許文献2における補間後加減速では、移送軸パスのうち加減速処理を適用する部分を限定していないため、当該加減速処理が駆動指令の異常データ部分以外の部分にも適用され得る。このため、例えば駆動指令のうち加工プログラムにおいて実際に加速が指示されている部分に当該加減速処理が適用されてその加速率を緩和するような処理が行われた場合や、加工プログラムにおいて実際に減速が指示されている部分に当該加減速処理が適用されて減速率を緩和するような処理が行われた場合には、加工プログラムが指示する加工形状に対して形状誤差が発生する。
 そこで、下記特許文献3には、さらに進化した補間後加減速処理を行う数値制御装置が示されている。この数値制御装置は、パルス補間後の指令パルスに残っている異常データ部分を検出して、その検出した異常データ部分の近傍のみを局部的に加減速処理する局部加減速フィルタを備えている。この数値制御装置によれば、異常データに起因する速度の急変は加減速処理により緩和されて機械ショックが抑制されるとともに、その異常データの近傍以外には加減速処理が行われないため加工形状の誤差の発生は抑制される。
 ところで、工作機械では、一般的に、移送対象物(ワーク及び工具)の加減速や緊急停止、再始動を指示する特別指令を入力するための指令入力装置が設けられている。オペレータ等がこの指令入力装置により特別指令を入力することで加工プログラムに従った移送対象物の通常の移送とは別にその移送対象物の加減速や緊急停止、再始動が実施可能となっている。このような指令装置に特別指令が入力された場合には、例えば、上記特許文献3の数値制御装置において、移送軸パスを特別指令の内容に応じて変更することで、その特別指令に応じた移送対象物の加減速や緊急停止、再始動を移送装置に実施させる。
 しかし、この場合には、指令入力装置に特別指令が入力されてから実際にその特別指令に対応する移送対象物の加減速、緊急停止又は再始動が行われるまでの応答性が悪化する虞がある。具体的には、指令入力装置に特別指令が入力されて移送軸パスが変更されると、前記パルス補間の処理と、そのパルス補間後の局部加減速処理とをやり直すことになるため、それらの処理のための再演算に時間が掛かり、その結果、特別指令が入力されてから実際にその特別指令に対応した加減速、緊急停止又は再始動が行われるまでの応答性が悪化する。
特開2008-225825号公報 特開2010-140312号公報 特開2010-182157号公報
 本発明の目的は、工作機械において、ワークの加工時の移送対象物の通常の移送とは別に特別指令装置に入力された特別指令に応じて移送対象物の速度変化を伴う動作を実施する場合に、その特別指令の入力時点からそれに応じた動作が実行されるまでの応答性を向上しつつ、加工形状の誤差を抑制することが可能な数値制御装置を提供することである。
 上記目的を達成するために、本願発明者は、パルス補間後の局部加減速処理により異常データ部分を局部的に加減速処理したパルス列について、そのパルス列の単位時間の長さを指令入力装置に入力された特別指令の内容に応じて変更し、その後、変更後の単位時間毎の移動量を表すパルス列を求める2回目のパルス補間を行うことによって各移送軸用のサーボモータへ出力するパルス列を導出する技術を思いついた。
 この技術では、特別指令の内容に応じて各移送軸に共通の単位時間の長さを変更し、その変更した単位時間毎の移動量を2回目のパルス補間で求めることによって各移送軸用のサーボモータを駆動制御するためのパルス列を求めるため、各移送軸間の相対的な位置関係が維持された状態で特別指令の内容に応じた移送対象物の速度変化を伴う動作が実施される。このため、特別指令に応じた移送対象物の速度変化を伴う動作が実施されても、加工形状の誤差が発生するのを抑制することができる。さらに、この技術では、局部加減速処理後のパルス列の単位時間の長さを変更することで特別指令に対応する各移送軸用のサーボモータの駆動制御を実行するため、特別指令が入力されたことに応じて煩雑な局部加減速処理をやり直す必要がない。このため、特別指令の入力からそれに応じた動作が実際に実施されるまでの応答性を改善することができる。
 しかしながら、この技術では、局部加減速処理前の1回目のパルス補間に加えて、特別指令に応じた単位時間の変更処理後に2回目のパルス補間を行う必要がある。このため、演算処理の簡略化という点において課題が残る。そこで、本願発明者は、このような課題を解決するために以下の数値制御装置を発明した。
 本発明の一局面に従う数値制御装置は、ワーク又はそのワークを加工する工具を移送対象物としてその移送対象物を前記ワークを加工するために移送する複数の移送装置と、前記ワークの加工時における前記移送対象物の通常の移送とは別に当該移送対象物の速度変化を伴う動作を指示するための特別指令を外部から入力するための指令入力装置とを備え、前記各移送装置は、前記移送対象物を支持するための支持体と、その支持体を特定の移送軸方向に移送することにより前記移送対象物を移送する移送部とをそれぞれ有する工作機械に設けられ、前記各移送部へ特定周期毎の指令パルスを出力することにより前記各移送装置の数値制御を行う数値制御装置であって、前記工具が前記ワークの加工時に通るべき軌跡が前記ワーク上に固定されたワーク座標系における前記工具の位置座標とその工具の軌跡に沿った積算長である媒介変数との関数として表されたツールパスを含む加工プログラムを記憶する記憶部と、前記記憶部に記憶された前記加工プログラムから前記ツールパスを求めるツールパス導出部と、前記ツールパス導出部によって求められた前記ツールパスに含まれる複数の指令点の中で前記ツールパスの前記媒介変数による一次微分値の変化が連続でかつ前記ツールパスの前記媒介変数による二次微分値の変化が不連続になっている指令点と前記ツールパスの前記媒介変数による一次微分値の変化が不連続になっている指令点とのうち少なくとも一方の指令点を補間対象点とし、前記ツールパスのうち前記補間対象点の前後に亘り、特定の区間幅を有する補間区間のみを当該補間対象点において不連続となっている微分値の変化が連続的な変化となるように局部補間するパス局部フィルタと、前記移送対象物の加減速条件と前記パス局部フィルタによって局部補間された後のツールパスである局部補間後ツールパスとに基づいて、基準時刻の経過に対する前記媒介変数の変化を表す媒介変数時間関数を求める媒介変数時間関数導出部と、前記特定周期に基づいた基準単位時間毎に進行する基準時刻を導出し、前記媒介変数時間関数導出部によって求められた前記媒介変数時間関数からこの導出した基準時刻の基準単位時間毎の各時点に対応する前記媒介変数を求めるとともに、その求めた各時点での媒介変数に対応する前記ワーク座標系での前記局部補間後ツールパス上の位置座標を求め、その求めた各時点での位置座標から前記各移送部に対応する前記各移送軸における位置座標を求め、その求めた前記各移送軸における位置座標から前記導出した基準時刻の基準単位時間毎の前記各移送軸方向への前記支持体の移送量を求めてその基準単位時間毎の移送量を前記特定周期毎の前記指令パルスとするパルス補間部と、前記パルス補間部によって求められた前記各移送軸方向についての前記特定周期毎の前記指令パルスをその各移送軸方向に対応する前記各移送部へ出力し、その出力した前記指令パルスが示す前記特定周期毎の移送量に応じて前記各移送部に対応する前記支持体を移送させる制御部とを備え、前記パルス補間部は、前記工作機械の起動後に前記指令入力装置に前記特別指令が入力されるまでは、前記基準単位時間を前記特定周期と等しい時間に設定し、前記工作機械の起動後に前記指令入力装置に前記移送対象物の減速を指示する前記特別指令が入力された場合には、前記基準単位時間をその特別指令が指示する減速に応じた割合で短縮し、前記工作機械の起動後に前記指令入力装置に前記移送対象物の増速を指示する前記特別指令が入力された場合には、前記基準単位時間をその特別指令が指示する増速に応じた割合で延長する。
本発明の一実施形態による数値制御装置が適用される工作機械の概略的な側面図である。 本発明の一実施形態による数値制御装置及び指令入力装置の機能ブロック図である。 本発明の一実施形態の数値制御装置による数値制御プロセスを示すフローチャートである。 図3に示した数値制御プロセスのうちの局部補間の詳細なプロセスを示すフローチャートである。 図3に示した数値制御プロセスのうちの基準時刻の導出、パルス補間及び移送部へのパルス出力の前半の詳細なプロセスを示すフローチャートである。 図5に示したプロセスに繋がる基準時刻の導出、パルス補間及び移送部へのパルス出力の後半の詳細なプロセスを示すフローチャートである。 分配区間幅の算出方法の一例を説明するための図である。 ツールパスのうち局部補間の対象となるコーナー部を示す模式図である。 ツールパスのうち局部補間の対象となる異常データ部を示す模式図である。 補間ブロックの区間幅が補間区間幅よりも大きい場合を示す図である。 補間ブロックの区間幅が補間区間幅よりも小さい場合を示す図である。 補間ブロックの区間幅が補間区間幅よりも小さい場合を示す図である。 媒介変数時間関数を導出するための階段状速度曲線と加減速曲線を示す図である。 目標点に達する前に速度が速度上限値に達する場合の速度曲線の一例を示す図である。 目標点に達する前に速度が速度上限値に達する場合の速度曲線の別の例を示す図である。 許容ジャークに従って加速度を低下させている途中で目標点に達するとともに速度が速度上限値に達する場合の速度曲線の一例を示す図である。 許容ジャークに従って加速度を低下させている途中で目標点に達するとともに速度が速度上限値に達する場合の速度曲線の別の例を示す図である。 許容ジャークに従って加速度を低下させている途中で目標点に達するとともに速度が速度上限値に達する場合の速度曲線のさらに別の例を示す図である。 目標点に対応する媒介変数に達しても速度が速度上限値まで上昇しない場合の速度曲線の一例を示す図である。 目標点に達するまでに速度が速度上限値を超えてしまう場合の速度曲線の一例を示す図である。
 以下、本発明の実施形態を図面を参照して説明する。
 まず、図1及び図2を参照して、本発明の一実施形態による数値制御装置2が適用される工作機械の構成について説明する。
 この工作機械は、被加工物であるワーク100を切削加工するためのものであり、ワーク移送装置102と、コラム104と、工具105と、工具鉛直移送装置106と、工具第1水平移送装置108と、工具第2水平移送装置110と、主軸ヘッド112と、制御盤114とを備えている。なお、ワーク移送装置102、工具鉛直移送装置106、工具第1水平移送装置108及び工具第2水平移送装置110は、それぞれ本発明の移送装置の概念に含まれるものである。
 ワーク移送装置102は、ワーク100を図1の紙面に垂直な方向であるX軸方向に移送するための装置である。このワーク移送装置102は、所定の設置場所上に固設されるベース102aと、そのベース102a上にX軸方向に移動可能に設けられるワーク支持体102bと、そのワーク支持体102bをX軸方向に移送するワーク支持体移送部102c(図2参照)とを有する。ワーク支持体102bは、ワーク100を支持するものである。ワーク100は、このワーク支持体102b上に垂直に立った状態で設置される。ワーク支持体移送部102cは、駆動源としてのサーボモータを有する。なお、前記X軸は、本発明の移送軸の概念に含まれるものであり、ワーク支持体102bは、本発明の支持体の概念に含まれるものであり、ワーク支持体移送部102cは、本発明の移送部の概念に含まれるものである。
 コラム104は、前記ベース102aの設置場所から水平方向でかつ前記X軸と直交する方向に離間した設置場所に立設されており、鉛直方向に延びている。
 工具鉛直移送装置106は、コラム104に設けられており、ワーク100を切削加工するための工具105を鉛直方向に延びるY軸方向に移送するための装置である。この工具鉛直移送装置106は、Y軸方向に移動可能にコラム104に取り付けられる鉛直支持体106aと、コラム104に設けられ、鉛直支持体106aをコラム104に沿ってY軸方向に移送する鉛直支持体移送部106b(図2参照)とを有する。鉛直支持体106aは、工具第1水平移送装置108を支持しており、この工具第1水平移送装置108は、後述するように工具第2水平移送装置110及び主軸ヘッド112を介して工具105を支持するため、鉛直支持体106aは間接的に工具105を支持する。鉛直支持体移送部106bは、駆動源としてのサーボモータを有する。なお、前記Y軸方向は、本発明の移送軸の概念に含まれるものであり、鉛直支持体106aは、本発明の支持体の概念に含まれるものであり、鉛直支持体移送部106bは、本発明の移送部の概念に含まれるものである。
 工具第1水平移送装置108は、鉛直支持体106aに設けられており、工具105を前記X軸と前記Y軸の両方に対して垂直に延びるW軸方向に移送するための装置である。この工具第1水平移送装置108は、W軸方向に移動可能に鉛直支持体106aに設けられる第1水平支持体108aと、鉛直支持体106aに設けられ、第1水平支持体108aをW軸方向に進退するように移送する第1水平支持体移送部108b(図2参照)とを有する。第1水平支持体108aは、工具第2水平移送装置110を支持しており、この工具第2水平移送装置110は、後述するように主軸ヘッド112を介して工具105を支持するため、第1水平支持体108a間接的に工具105を支持する。第1水平支持体移送部108bは、駆動源としてのサーボモータを有する。なお、前記W軸は、本発明の移送軸の概念に含まれるものであり、第1水平支持体108aは、本発明の支持体の概念に含まれるものであり、第1水平支持体移送部108bは、本発明の移送部の概念に含まれるものである。
 工具第2水平移送装置110は、第1水平支持体108aに設けられており、工具105を前記W軸と平行なZ軸方向に移送するための装置である。この工具第2水平移送装置110は、Z軸方向に移動可能に第1水平支持体108aに設けられる第2水平支持体110aと、第1水平支持体108aに設けられ、第2水平支持体110aをZ軸方向に進退するように移送する第2水平支持体移送部110bとを有する。第2水平支持体110aは、主軸ヘッド112を支持しており、その主軸ヘッド112を介して工具105を支持する。第2水平支持体移送部110bは、駆動源としてのサーボモータを有する。なお、前記Z軸は、本発明の移送軸の概念に含まれるものであり、第2水平支持体110aは、本発明の支持体の概念に含まれるものであり、第2水平支持体移送部110bは、本発明の移送部の概念に含まれるものである。
 主軸ヘッド112は、その回転軸が前記W軸及び前記Z軸と平行となるように第2水平支持体110aに設けられている。この主軸ヘッド112は、工具105を保持してその軸回りに工具105を回転させる。工具105は、主軸ヘッド112によって回転させられた状態でワーク100に接触させられることによりワーク100を切削加工する。
 制御盤114は、前記各移送装置102,106,108,110の移送部102c,106b,108b、110bの動作の制御や、主軸ヘッド112の動作の制御、その他、工作機械の各部の制御を行うための機能を有する。この制御盤114は、前記各移送部102c,106b,108b,110b及び主軸ヘッド112の駆動源と電気的に接続されている。
 また、制御盤114は、指令入力装置122(図2参照)を備えている。この指令入力装置122は、ワーク100の加工時のワーク100及び工具105の通常の移送とは別に、ワーク100及び工具105の加速又は減速を伴う動作を指示するための特別指令を外部から入力するための装置である。以下、移送装置102,106,108,110が移送する対象物であるワーク100又は工具105を移送対象物という。
 指令入力装置122は、停止指令入力装置124と、再始動指令入力装置126と、オーバーライド装置128とを含む。
 停止指令入力装置124は、移送対象物の移動を緊急に減速させて停止させるための緊急停止指令を入力するための装置である。前記緊急停止指令は、本発明の特別指令の概念に含まれる。この停止指令入力装置124は、制御盤114の外面に設けられた緊急停止ボタン124aと、その緊急停止ボタン124aが押されることに応じて緊急停止信号を後述の監視部10へ発信する停止信号発信部124bとを有する。なお、本実施形態では、緊急停止ボタン124aを押すことが緊急停止指令の入力に相当する。
 再始動指令入力装置126は、移動停止した移送対象物の移動を再開させて加速させるための再始動指令を入力するための装置である。前記再始動指令は、本発明の特別指令の概念に含まれる。この再始動指令入力装置126は、制御盤114の外面に設けられた再始動ボタン126aと、その再始動ボタン126aが押されることに応じて再始動信号を後述の監視部10へ発信する再始動信号発信部126bとを有する。なお、本実施形態では、再始動ボタン126aを押すことが再始動指令の入力に相当する。
 オーバーライド装置128は、移送対象物の移動速度を上昇させる指示とその移動速度の上昇率である加速率の情報とを含む加速指令又は移送対象物の移動速度を低下させる指示とその移動速度の低下率である減速率の情報とを含む減速指令を入力するための装置である。前記加速指令及び前記減速指令は、本発明の特別指令の概念に含まれる。
 このオーバーライド装置128は、制御盤114の外面に設けられたオーバーライドダイヤル128aと、そのオーバーライドダイヤル128aの操作方向及び操作量に応じた速度変更信号を後述の監視部10へ発信する速度変更信号発信部128bとを有する。
 オーバーライドダイヤル128aは、オペレータ等が加速指令又は減速指令を入力するときに操作する操作部である。このオーバーライドダイヤル128aは、その軸回りに回動可能に制御盤114に設けられている。このオーバーライドダイヤル128aをいずれかの方向に回動させることによって、オーバーライド装置128に加速指令又は減速指令を入力することが可能である。本実施形態では、オーバーライドダイヤル128aを一方側へ回動させる操作が加速指令の入力に相当し、オーバーライドダイヤル128aを前記一方側に対して反対側である他方側へ回動させる操作が減速指令の入力に相当する。また、オーバーライドダイヤル128aの前記一方側への回動量が移送対象物の加速率と対応しており、オーバーライドダイヤル128aの前記他方側への回動量が移送対象物の減速率に対応している。
 速度変更信号発信部128bは、オーバーライドダイヤル128aが前記一方側(加速側)へ回動されたことに応じて、その一方側へのオーバーライドダイヤル128aの回動量に対応するオーバーライド係数の情報を含む速度変更信号を監視部10へ発信し、オーバーライドダイヤル128aが前記他方側(減速側)へ回動されたことに応じて、その他方側へのオーバーライドダイヤル128aの回動量に対応するオーバーライド係数の情報を含む速度変更信号を監視部10へ発信する。オーバーライド係数は、1を基準としてオーバーライドダイヤル128aが加速側へ回動されることに応じて1から増加し、オーバーライドダイヤル128aが減速側へ回動されることに応じて1から減少する。
 本実施形態の数値制御装置2は、制御盤114の中に組み込まれており、前記各移送装置102,106,108,110の移送部102c,106b,108b,110bに特定周期毎の指令パルスを出力することにより各移送装置102,106,108,110の数値制御を行う。次に、本実施形態の数値制御装置2の構成について詳細に説明する。
 数値制御装置2は、図2に示すように、記憶部4と、メモリ5と、演算処理部6とを有する。
 記憶部4は、ワーク100の加工指令である加工プログラム(NCプログラム)を記憶している。この加工プログラムには、ツールパスが含まれる。このツールパスは、工具105がワーク100の加工時に通るべき軌跡がワーク100上に固定されたワーク座標系における工具105の位置座標とその工具105の軌跡に沿った積算長である媒介変数との関数として表されたものである。このツールパスには、ワーク100の加工時に工具105が通るべき多数の指令点が含まれており、当該ツールパスは、それらの指令点の隣り合うもの同士を繋いだ形状に構成されている。また、記憶部4は、ワーク100の加工時の移送対象物の加減速条件やその他の設定値を記憶している。なお、加減速条件には、例えば、各移送装置102,106,108,110が移送対象物を移送する各移送軸毎(各移送部102c,106b,108b,110bが対応する支持体102b,106a,108a,110aを移送する各移送軸毎)に設定される許容速度、許容加速度、許容ジャークや、ワーク100に対する工具105の合成移動速度が含まれる。
 メモリ5は、指令入力装置122に特別指令が入力される直前の時点でのオーバーライド係数や、前記速度変更信号に含まれるオーバーライド係数等の情報を記憶する。
 演算処理部6は、各種演算処理を行うものであり、機能ブロックとして、監視部10と、ツールパス導出部12と、ブロック滑らか補間部14と、パス局部フィルタ16と、媒介変数時間関数導出部18と、パルス補間部22と、制御部24とを有する。
 監視部10は、指令入力装置122に特別指令が入力されたか否かを監視している。具体的には、監視部10は、停止指令入力装置124に緊急停止指令が入力されたか否か、すなわち停止指令入力装置124の緊急停止ボタン124aが押されたか否かを停止信号発信部124bからの緊急停止信号の発信の有無を監視することによって判断している。監視部10は、停止信号発信部124bから緊急停止信号が発信された場合には、緊急停止ボタン124aが押されたと判断し、停止要求をパルス補間部22へ出力する。一方、監視部10は、停止信号発信部124bから緊急停止信号が発信されていない場合には、緊急停止ボタン124aが押されていないと判断し、停止要求を出力しない。
 また、監視部10は、再始動指令入力装置126に再始動指令が入力されたか否か、すなわち再始動指令入力装置126の再始動ボタン126aが押されたか否かを再始動信号発信部126bからの再始動信号の発信の有無を監視することによって判断している。監視部10は、再始動信号発信部126bから再始動信号が発信された場合には、再始動ボタン126aが押されたと判断し、再始動信号発信部126bから再始動信号が発信されていない場合には、再始動ボタン126aが押されていないと判断する。そして、監視部10は、停止信号発信部124bから緊急停止信号が発信された後に再始動信号発信部126bから再始動信号が発信されたことに応じて再始動要求をパルス補間部22へ出力する。
 また、監視部10は、オーバーライド装置128に加速指令又は減速指令が入力されたか否か、すなわちオーバーライドダイヤル128aが回動されたか否かを速度変更信号発信部128bからの速度変更信号の発信の有無を監視することによって判断している。詳しくは、監視部10は、速度変更信号発信部128bから速度変更信号が発信された場合には、オーバーライドダイヤル128aが回動されたと判断し、速度変更信号発信部128bから速度変更信号が発信されていない場合には、オーバーライドダイヤル128aが回動されていないと判断する。そして、監視部10は、速度変更信号発信部128bから発信される速度変更信号を受けてその速度変更信号に含まれるオーバーライド係数の情報を含む速度変更要求をパルス補間部22へ出力する。
 ツールパス導出部12は、記憶部4に記憶されている加工プログラムを読み取り、その読み取った加工プログラムからツールパスを求める。
 滑らか補間部14は、ツールパス導出部12によって求められたツールパスのうち解析的に可能な範囲で指令点を通る滑らかな曲線となるように補間できる部分について、その補間を行う。この滑らか補間部14が行う補間は、いわゆるブロック滑らか補間であり、ツールパスのうちの隣り合う指令点間の区間を指令ブロックとしてその指令ブロックと隣接する指令ブロックとがそれらの境界の指令点において滑らかに繋がるように補間するものである。具体的には、滑らか補間部14は、隣接する指令ブロックがそれらの境界の指令点の前後において一次微分値と二次微分値が連続変化し、かつ、その指令点を通るようにツールパスを補間する。ただし、ツールパスには、媒介変数の変化に対するツールパスの軌跡の変化が急激で、このようなブロック滑らか補間によってはその軌跡の指令点を通る滑らかな曲線となるように補間できない部位が含まれる場合がある。このような部位としては、微小単位で増減を繰り返す異常データの部分や、加工プログラムにおいて意図して指示されるコーナー部がある。滑らか補間部14は、ツールパスのうちこのような部位については補間せずに元のツールパスのまま残し、上記のように指令点を通り、その指令点の前後で一次微分値と二次微分値とが連続変化するような曲線に補間できる部分を滑らか補間する。
 パス局部フィルタ16は、ツールパスのうち滑らか補間部14によって補間されなかった部位を対象として補間を行う。具体的には、パス局部フィルタ16は、ツールパスのうち媒介変数による一次微分値の変化が連続でかつ媒介変数による二次微分値の変化が不連続になっている指令点と媒介変数による一次微分値の変化が不連続になっている指令点とを補間対象点とする。そして、パス局部フィルタ16は、ツールパスのうち補間対象点の前後に亘り、後述する補間区間幅を有し、かつ、その補間区間幅の中央に当該補間対象点が位置する補間区間のみを当該補間対象点において不連続となっている微分値の変化が連続的な変化となるように局部補間する。
 パス局部フィルタ16は、ツールパスのうちこのパス局部フィルタ16によって局部補間される部分は、例えば、図8に示すようなコーナー部や図9に示すような異常データ部である。これらのコーナー部の頂点に位置する指令点(図8のt[3])や異常データ部の各頂点に位置する各指令点(図9のt[2]~t[6])では、媒介変数による一次微分値の変化が不連続になっており、これらの指令点は補間対象点となる。また、パス局部フィルタ16は、ツールパスに補間対象点が複数存在し、隣り合う補間対象点の補間区間同士が重複している場合(図9のような場合)には、それら重複している補間区間のうち最もツールパスの始点寄りに位置する補間区間の始点から最もツールパスの終点寄りに位置する補間区間の終点までを1つの補間区間として、その補間区間内のツールパスを局部補間する。なお、このパス局部フィルタ16によって全ての補間区間が局部補間された後のツールパスを、以下、局部補間後ツールパスという。また、パス局部フィルタ16は、局部補間後ツールパスが各補間区間(隣り合う補間区間同士が重複している場合はそれらを結合した補間区間)の始点の前後及び終点の前後でそれぞれ連続して繋がるようにその補間区間を局部補間する。
 パス局部フィルタ16の具体的な構成として、当該パス局部フィルタ16は、局部補間部16a及び誤差補正部16bを機能ブロックとして有している。
 局部補間部16aは、補間区間を前後に拡大した調整区間にかかる複数の補間ブロックのそれぞれについて補間処理を行うことによって各補間ブロックの補間後関数を求めるとともに、それらの補間後関数を積算して補間後積算関数を求め、その求めた補間後積算関数から補間区間に相当する区間を抜き出すことによって、補間区間内の補間対象点において不連続となっている微分値の変化が連続的な変化となるように補間した誤差付き補間パスを求める。また、誤差補正部16bは、局部補間部16aによって求められた誤差付き補間パスの補間区間の始点に対応する値が局部補間していないツールパスの補間区間の始点の値に等しくなり、かつ、その誤差付き補間パスの補間区間の終点に対応する値が局部補間していないツールパスの補間区間の終点の値に等しくなるように誤差付き補間パスを補正し、その補正後の補間パスをツールパスの補間区間と置換する。このパス局部フィルタ16の局部補間部16aと誤差補正部16bとによる局部補間の詳細なプロセスについては、後述する。
 媒介変数時間関数導出部18は、記憶部4に記憶された加減速条件と、局部補間後ツールパスとに基づいて、特定の基準時刻の経過に対する媒介変数の変化を表す媒介変数時間関数(媒介変数の速度曲線)を求める。具体的には、媒介変数時間関数導出部18は、前記加減速条件に含まれる許容加速度の範囲内で局部補間後ツールパスに従って移送対象物を移動させ得る最大の加速度を示すような媒介変数時間関数を導出する。
 パルス補間部22は、局部補間後ツールパスをパルス補間して前記特定周期毎の指令パルスを求めるものである。このパルス補間部22は、指令入力装置122への特別指令の入力状況に応じた基準時刻の導出、その導出した基準時刻に対応する媒介変数の導出、その導出した媒介変数に応じた局部補間後ツールパス上の位置座標の導出、及び、実時刻の単位時間当たりの各移送軸の位置座標の変化量を示す指令パルスの導出を行う。なお、実時刻とは、前記特定周期に等しい単位時間毎に進行する時刻のことである。
 具体的には、パルス補間部22は、工作機械の起動後、指令入力装置122に特別指令が入力されない場合には、前記実時刻の単位時間(前記特定周期)と等しい基準単位時間毎に進行する基準時刻を導出する。また、パルス補間部22は、停止指令入力装置124に緊急停止指令が入力された場合には、基準単位時間が短くなっていき最終的に0になるように調整した基準時刻を導出する。また、パルス補間部22は、停止指令入力装置124に緊急停止指令が入力された後に再始動指令入力装置126に再始動指令が入力された場合には、基準単位時間が0から長くなって最終的に緊急停止前の基準単位時間に等しくなるように調整した基準時刻を導出する。また、パルス補間部22は、オーバーライド装置128に加速指令が入力された場合には、基準単位時間がオーバーライド装置128への加速指令の入力直前における長さから加速指令に含まれる加速率(オーバーライド係数)に応じた長さまで増加するように調整した基準時刻を導出する。また、パルス補間部22は、オーバーライド装置128に減速指令が入力された場合には、基準単位時間がオーバーライド装置128への減速指令の入力直前の状態における長さから減速指令に含まれる減速率(オーバーライド係数)に応じた長さまで減少するように調整した基準時刻を導出する。
 また、パルス補間部22は、上記のように導出した基準時刻の基準単位時間毎の各時点に対応する媒介変数を前記媒介変数時間関数導出部18によって導出された媒介変数時間関数から求める。また、パルス補間部22は、その求めた各時点での媒介変数に対応するワーク座標系での局部補間後ツールパス上の位置座標を求めるとともに、その求めた各時点での位置座標から上記のように導出した基準時刻の基準単位時間毎のワーク座標系における工具105の移動量を求める。そして、パルス補間部22は、その求めた工具105の移動量から各移送部102c,106b,108b,110bの各移送軸について支持体102b,106a,108a,110aの基準単位時間毎の移送量を求めてその基準単位時間毎の移送量を実時刻の単位時間毎(前記特定周期毎)の指令パルスとする。このようにして、パルス補間部22は、局部補間後ツールパスをパルス補間する。
 制御部24は、各移送部102c,106b,108b,110bの動作を制御するものであり、パルス補間部22によって求められた特定周期毎の指令パルスに応じて各移送部102c,106b,108b,110bに対応する支持体102b,106a,108a,110aを移送させる。具体的には、制御部24は、パルス補間部22によって求められた各移送軸についての前記特定周期毎の指令パルスを移送部102c,106b,108b,110bのうち対応するもののサーボモータへそれぞれ出力する。これにより、各移送部102c,106b,108b,110bは、対応する支持体102b,106a,108a,110aを対応する移送軸方向へ制御部24から送られてくる指令パルスが示す移送量ずつ特定周期毎(実時刻の単位時間毎)に移送する。その結果、移送対象物が移送され、工具105は、ワーク座標系における局部補間後ツールパスに沿って移送される。
 次に、図3~図5のフローチャートを参照して、本実施形態の数値制御装置2による数値制御プロセスについて説明する。
 まず、ツールパス導出部12が記憶部4に記憶された加工プログラム(NCプログラム)を読み取り(図3のステップS1)、その読み取った加工プログラムからツールパスを導出する(ステップS3)。
 次に、滑らか補間部14が、ツールパス導出部12によって求められたツールパスについてブロック滑らか補間を行う(ステップS3)。具体的には、滑らか補間部14は、ツールパスのうちの隣接する指令ブロック同士がそれらの境界の指令点の前後において一次微分値と二次微分値が連続変化し、かつ、その指令点をツールパスが通るようにツールパスを補間する。この際、滑らか補間部14は、ツールパスのうちこのような補間が解析的に可能な部分についてのみブロック滑らか補間を行い、このような補間が解析的に不可能な部分については補間せずに元のツールパスのまま残す。具体的には、滑らか補間部14は、指令点におけるツールパスの折れ曲がりの角度が予め設定された一定角度よりも大きい部分、及び、補間前のツールパスに対してブロック滑らか補間を行った後のツールパスの誤差が予め設定された許容誤差よりも大きくなる部分については、補間せずに元のツールパスのまま残す。
 次に、パス局部フィルタ16が、ブロック滑らか補間後のツールパスについて局部補間を行う(ステップS4)。具体的には、パス局部フィルタ16は、ツールパスのうち媒介変数sによる一次微分値の変化が連続でかつ媒介変数sによる二次微分値の変化が不連続となっている指令点と媒介変数sによる一次微分値の変化が不連続になっている指令点とを補間対象点とし、ツールパスのうちその補間対象点の前後に亘り、特定の区間幅を有する補間区間のみを局部補間する。これにより、ツールパスのうち前記ブロック滑らか補間が行われなかった指令点付近が局部補間され、その指令点において不連続であった微分値の変化が連続的な変化となるように補間される。このパス局部フィルタ16によって行われる局部補間の詳細なプロセスが図4に示されている。
 この局部補間では、まず、パス局部フィルタ16の局部補間部16aが、補間区間の区間幅である補間区間幅をまだ算出していない補間対象点がツールパスに存在するか否かを判断する(ステップS12)。局部補間部16aは、そのような補間対象点が存在すると判断した場合には、その補間区間幅をまだ算出していない補間対象点について分配区間幅及び補間区間幅の算出を行う(ステップS14)。なお、分配区間幅は、後述するツールパスの媒介変数による一次微分値を分配関数に基づいて分配する区間幅のことである。
 具体的には、局部補間部16aは、まず、分配区間幅を算出し、補間区間幅をその算出した分配区間幅以上の区間幅として求める。なお、本実施形態では、補間区間幅を分配区間幅と等しい大きさの区間幅とする。局部補間部16aは、補間対象点の前後でツールパスの媒介変数sによる一次微分値が異なる場合には、その前後の一次微分値の差が最大となるワーク座標系の座標軸について、局部補間前のツールパスと局部補間後のツールパスとの補間対象点における位置誤差がその座標軸における許容誤差に等しくなるという条件を満たすように分配区間幅が求められる。より詳しくは、例えば、次のようにして分配区間幅Aが算出される。
 分配区間幅の算出式は、後述のツールパスの一次微分値の分配を行うために用いる分配関数によって異なるが、ここでは、後述のツールパスの一次微分値の分配に直線型の分配関数を用いるものとして、分配区間幅を算出する。
 ワーク座標系の各座標軸のうちx軸において、ツールパスの媒介変数sによる一次微分値の補間対象点直前の値b1と補間対象点直後の値b2との差が最大となるとする。ここで、このx軸におけるツールパスの位置座標xの媒介変数sによる一次微分関数x’(s)は、次式(1)で表せる。なお、この一次微分関数x’(s)は、図7に太線で示されている。
 x’(s)=dx/ds=αs+b1・・・(1)
 局部補間前のツールパスに対する局部補間後のツールパスの補間対象点での位置誤差は、図7中のハッチングを付した領域の面積に相当する。従って、この位置誤差をeとすると、当該位置誤差eは、次式(2)で求められる。
 e=A×(b2-b1)/8・・・(2)
 ここで、x軸における許容誤差をτとすると、前記誤差eが許容誤差τに等しいという条件を満たす分配区間幅Aは、上記式(2)から次式(3)のように求められる。
 A=8τ/(b2-b1)・・・(3)
 なお、上記式(3)で求められる分配区間幅の値が予め設定された上限パラメータを超える場合には、その上限パラメータの値を分配区間幅Aとする。そして、本実施形態では、以上のようにして算出された分配区間幅Aに等しい区間幅を補間区間幅とする。
 次に、局部補間部16aは、現在対象としている補間対象点についての補間区間が他の補間対象点の補間区間と重なるか否かを判断する(ステップS16)。ここで、局部補間部16aは、補間区間が重ならないと判断した場合には、上記ステップS12に戻り、以降のプロセスを繰り返し行う。一方、局部補間部16aは、補間区間が重なると判断した場合には、重なった補間区間同士を結合して1つの補間区間とする(ステップS18)。具体的には、局部補間部16aは、重なった各補間区間のうち最もツールパスの始点寄りに位置する補間区間の始点から最もツールパスの終点寄りに位置する補間区間の終点までの区間を1つの補間区間とする。なお、この場合、結合した1つの補間区間について後述の分配の際に用いる分配区間幅としては、各補間区間に対応する分配区間幅のうち最も小さい分配区間幅が採用される。この後、上記ステップS12に戻り、以降のプロセスが繰り返し行われる。
 そして、ステップS12において、局部補間部16aがツールパスに補間区間幅を算出していない補間対象点がもう存在しないと判断した場合には、局部補間部16aは、次に、以降の局部補間処理を行う1つの補間区間を抽出する(ステップS20)。ここで、ツールパスに局部補間処理を行っていない複数の補間区間が存在する場合には、局部補間部16aは、それらの補間区間のうち最もツールパスの始点寄りに位置する補間区間を抽出する。なお、上記ステップS18で結合された補間区間は、1つの補間区間として扱われる。
 その後、局部補間部16aは、抽出した補間区間について調整区間を求める(ステップS22)。この調整区間(図8及び図9参照)は、補間区間の前後に分配区間幅Aの半分の区間幅aをそれぞれ加えた区間であり、後述する補間後関数の算出対象となる補間ブロックを判断する基準となる。その後、局部補間部16aは、メモリ5に記憶されている補間後積算関数を0に初期セットする(ステップS24)。
 次に、局部補間部16aは、後述の補間後関数を求める補間処理を実施するための指令ブロックである補間ブロックを抽出する(ステップS26)。具体的には、局部補間部16aは、上記ステップS22で求めた調整区間内に少なくとも区間の一部が含まれる複数の指令ブロック(図8では指令ブロックp0(s)~p5(s)、図9ではp0(s)~p7(s))を選択するとともに、それらの指令ブロックのうち後述の補間後関数を求める補間処理が終わっていないブロックでかつ最もツールパスの始点寄りに位置するブロックを補間ブロックとして抽出する。
 次に、局部補間部16aは、抽出した補間ブロックの補間後関数を求める(ステップS28)。本実施形態では、局部補間部16aは、直線型の分配関数f(s)を用いて補間後関数を求める。直線型の分配関数f(s)は、次式(4)で表される。
 f(s)=1/A (-A/2≦s≦A/2)・・・(4)
 なお、分配区間-A/2≦s≦A/2の外側では、f(s)=0である。
 局部補間部16aは、補間後関数の算出に当たって、まず、上記抽出した補間ブロック内の媒介変数が異なる各第1位置sを中央とし且つ分配区間幅Aと等しい区間幅を有する積分区間[s-A/2,s+A/2]を設定する。そして、局部補間部16aは、その設定した積分区間[s-A/2,s+A/2]内の媒介変数が異なる各第2位置Sでのツールパスの媒介変数による一次微分pi’(S)を求め、その各第2位置Sでの一次微分pi’(S)を対応する第2位置Sを中央とし且つ前記分配区間幅Aを有する分配区間内に分配関数f(s)に基づいて分配した場合に得られる分配後微分関数pi’(S)・f(s-S)を積分区間[s-A/2,s+A/2]にわたって積分し、それによって補間後関数qi’(s)を求める。換言すれば、局部補間部16aは、次式(5)によって当該補間ブロックpi(s)の補間後関数qi’(s)を求める。
Figure JPOXMLDOC01-appb-I000001
 このようにして得られた補間後関数qi’(s)は、補間ブロックpi(s)の区間幅が補間区間幅Aよりも大きい場合と小さい場合とで異なった形で表される。その各場合における補間後関数qi’(s)は、以下の通りである。
 補間ブロックpi(s)の区間幅が補間区間幅A(=2a)よりも大きい場合(図10参照)には、その補間ブロックpi(s)の両端を規定する2つの指令点のうちツールパスの始点寄りの指令点をt[i]、ツールパスの終点寄りの指令点をt[i+1]とし、補間区間幅Aの半分の区間幅をaとすると、当該補間ブロックpi(s)に対応する区間はt[i]<s<t[i+1]で表され、t[i]-a<t[i]+a<t[i+1]-a<t[i+1]+aの関係が成り立つ。そして、補間ブロックpi(s)の媒介変数sによる一次微分pi’(s)は、図10中の太線で表される。
 この場合において、上記補間処理によって得られる補間後関数qi’(s)は、下記のt[i]-a<s<t[i]+aの区間の関数qi11’(s)と、t[i]+a<s<t[i+1]-aの区間の関数qi12’(s)と、t[i+1]-a<s<t[i+1]+aの区間の関数qi13’(s)とに細分化される。
 t[i]-a<s<t[i]+aの区間の関数qi11’(s)は、次式(6)で表される。
Figure JPOXMLDOC01-appb-I000002
 t[i]+a<s<t[i+1]-aの区間の関数qi12’(s)は、次式(7)で表される。
Figure JPOXMLDOC01-appb-I000003
 t[i+1]-a<s<t[i+1]+aの区間の関数qi13’(s)は、次式(8)で表される。
Figure JPOXMLDOC01-appb-I000004
 次に、補間ブロックpi(s)の区間幅が補間区間幅A=2aよりも小さい場合(図11及び図12参照)には、その補間ブロックpi(s)の両端を規定する2つの指令点のうちツールパスの始点寄りの指令点をt[i]、ツールパスの終点寄りの指令点をt[i+1]とし、補間区間幅Aの半分の区間幅をaとすると、当該補間ブロックpi(s)に対応する区間はt[i]<s<t[i+1]で表され、t[i]-a<t[i+1]-a<t[i]+a<t[i+1]+aの関係が成り立つ。この補間ブロックpi(s)の媒介変数sによる一次微分関数pi’(s)は、図11及び図12中の太線で表される。
 この場合において、上記補間処理によって得られる補間後関数qi’(s)は、下記のt[i]-a<s<t[i+1]-aの区間の関数qi21’(s)と、t[i+1]-a<s<t[i]+aの区間の関数qi22’(s)と、t[i]+a<s<t[i+1]+aの区間の関数qi23’(s)とに細分化される。
 t[i]-a<s<t[i+1]-aの区間の関数qi21’(s)は、次式(9)で表される。
Figure JPOXMLDOC01-appb-I000005
 t[i+1]-a<s<t[i]+aの区間の関数qi22’(s)は、次式(10)で表される。
Figure JPOXMLDOC01-appb-I000006
 t[i]+a<s<t[i+1]+aの区間の関数qi23’(s)は、次式(11)で表される。
Figure JPOXMLDOC01-appb-I000007
 次に、局部補間部16aは、求めた補間後関数をメモリ5に記憶されている補間後積算関数に加算する(ステップS30)。ここでは、ステップS42で0にリセットされた補間後積算関数に補間後関数が加算されるので、加算後の補間後積算関数は、上記ステップS28で求められた補間後関数に等しくなる。
 次に、局部補間部16aは、調整区間に少なくとも区間の一部が含まれる全ての補間ブロックについて補間後関数を求めてその補間後関数を補間後積算関数に加算する補間処理を行ったか否かを判断する(ステップS32)。ここで、局部補間部16aは、まだ全ての補間ブロックの補間処理を終了していないと判断した場合には、上記ステップS26に戻り、次に補間処理を行う補間ブロックを抽出する。この際に抽出される補間ブロックは、調整区間に少なくとも区間の一部が含まれる指令ブロックのうち先に補間処理された補間ブロックに対してツールパスの終点側に隣り合う指令ブロックとなる。その後、局部補間部16aは、その抽出した補間ブロックについてステップS28の補間後関数の算出を行い、それによって得られた補間後関数を補間後積算関数に加算する。局部補間部16aは、このようなステップS26~S30のプロセスを、ステップS32において調整区間に少なくとも一部が含まれる全ての補間ブロックの補間処理(分配、積分、加算)を終了したと判断するまで繰り返し行う。
 そして、局部補間部16aは、ステップS32において調整区間に少なくとも一部が含まれる全ての補間ブロックの補間処理を終了したと判断した場合には、次に、誤差付き補間パスを求める(ステップS34)。具体的には、局部補間部16aは、上記補間後関数の加算によって得られた補間後積算関数から上記ステップS20で抽出した補間区間に相当する区間を抜き出すことによって誤差付き補間パスを求める。
 次に、パス局部フィルタ16の誤差補正部16bが、誤差付き補間パスのうち補間区間の始点に対応する点と終点に対応する点とにおけるツールパスとの誤差を補正するための誤差補正パスを求める(ステップS36)。具体的には、誤差補正部16bは、補間区間の始点における誤差補正パスの値が当該始点における誤差付き補間パスの値から当該始点におけるツールパスの値を減じて得た値に等しく、かつ、補間区間の終点における誤差補正パスの値が当該終点における誤差付き補間パスの値から当該終点におけるツールパスの値を減じて得た値に等しいという条件を満たす誤差補正パスを求める。より具体的には、誤差補正部16bは、誤差補正パスをE(s)とし、誤差付き補間パスをr(s)とし、ツールパスをp(s)とし、補間区間の始点をSsとし、補間区間の終点をSeとすると、以下の式(12),(13)を満たす誤差補正パスE(s)を求める。本実施形態では、誤差補正部16bは、この条件を満たす誤差補正パスE(s)の一例として、E(Ss)とE(Se)を直線で繋いだ誤差補正パスを求める。
 E(Ss)=r(Ss)-p(Ss)・・・(12)
 E(Se)=r(Se)-p(Se)・・・(13)
 次に、誤差補正部16bは、誤差付き補間パスをステップS36で求めた誤差補正パスによって補正し、その補正後の補間パスをツールパスの補間区間と置換して局部補間後の補間区間のツールパスとする(ステップS38)。具体的には、誤差補正部16bは、誤差付き補間パスから誤差補正パスを差し引くことによって誤差付き補間パスを補正し、当該補正により、補間区間の始点でのツールパスに対する誤差付き補間パスの誤差と、補間区間の終点でのツールパスに対する誤差付き補間パスの誤差とを除去する。このため、補正後の補間パスは、補間区間の始点においてツールパスと連続して繋がり、補間区間の終点においてツールパスと連続して繋がるパスとなる。以上のプロセスにより、ツールパスのうちの1つの補間区間が、当該補間区間内の補間対象点において不連続となっている微分値の変化が連続的な変化となるように局部補間される。
 この後、局部補間部16aは、ツールパスの全ての補間区間の局部補間が終了したか否かを判断する(ステップS40)。ここで、局部補間部16aは、まだ局部補間が終了していない補間区間が存在すると判断した場合には、上記ステップS20以降のプロセスが繰り返し行われる。具体的には、局部補間部16aは、局部補間が終了していない補間区間のうち最もツールパスの始点寄りに位置する補間区間を抽出し、その抽出した補間区間について補間後関数の算出、補間後積算関数への加算、誤差付き補間パスの導出、誤差補正パスの導出及び誤差付き補間パスの補正等が行われる。
 一方、局部補間部16aがツールパスの全ての補間区間の局部補間が終了したと判断した場合には、パス局部フィルタ16による局部補間処理のプロセスが終了し、次に、媒介変数時間関数導出部18により基準時刻Tの経過に対する媒介変数の変化を表す媒介変数時間関数が求められる(図3のステップS5)。
 具体的には、媒介変数時間関数導出部18は、記憶部4に記憶されている加減速条件と全ての補間区間が局部補間された後のツールパスである局部補間後ツールパスとに基づいて、媒介変数時間関数(媒介変数の速度曲線)を求める。より具体的には、媒介変数時間関数導出部18は、ワーク座標系における工具105の位置を局部補間後ツールパスに従って移動させることができ、かつ、移送対象物の各移送軸毎の加速度が加減速条件に含まれたその移送軸についての許容加速度を超えないという条件を満たすような媒介変数時間関数を求める。詳しくは、媒介変数時間関数導出部18は、以下のようにして媒介変数時間関数を求める。
 媒介変数時間関数導出部18は、まず、図13中の階段状速度曲線で表される媒介変数速度上限関数を求める。媒介変数速度上限関数は、各移送軸パスの各指令点間のブロック毎の媒介変数sの速度ds/dTの上限値を表す関数である。図13中の階段状速度曲線のうち水平になっている各部分がブロックを表し、当該部分の速度ds/dTがそのブロックの媒介変数sの速度ds/dTの上限値に相当する。なお、各ブロックは、それぞれについての媒介変数sの増分が等しくなるように元々設定されているが、その各ブロックの媒介変数sの増分に相当する距離を進むのに要する時間は様々であり、図13では、媒介変数sの増加を時間tの進行に換算して横軸に表している。そして、媒介変数時間関数導出部18は、以下のようにして各ブロックの媒介変数sの速度ds/dTの上限値を求めることによって媒介変数速度上限関数を求める。
 媒介変数時間関数導出部18は、局部補間後ツールパスに基づいて、対象とするブロック内の所定の媒介変数sの点とその点の近傍の前後2点ずつの合計5点(s-2e,s-e,s,s+e,s+2e)における各移送軸の移送軸座標kp[i][](i=0,1,2,3,4)を求める。なお、前記eは、媒介変数における微小距離を示すパラメータである。また、i=0は点(s-2e)に、i=1は点(s-e)に、i=2は点sに、i=3は点(s+e)に、i=4は点(s+2e)にそれぞれ対応している。また、[]は、各移送軸それぞれについての値であることを意味する。そして、媒介変数時間関数導出部18は、下記式(14)によって点(s-e)における移送軸パスの媒介変数による一次微分値の近似値ds1[ax]を求め、下記式(15)によって点(s+e)における移送軸パスの媒介変数による一次微分値の近似値ds2[ax]を求め、この求めた2つの近似値ds1[ax],ds2[ax]と下記式(16)を用いて前記媒介変数sに対応する点における移送軸パスの媒介変数による二次微分値の近似値ddss[ax]を求める。なお、axは、各移送軸を表すインデックスである。
 ds1[ax]=(kp[2][ax]-kp[0][ax])/2e・・・(14)
 ds2[ax]=(kp[4][ax]-kp[2][ax])2e・・・(15)
 ddss[ax]=(ds2[ax]-ds1[ax])/2e・・・(16)
 仮に、媒介変数sの点を等速度vで通過するとした場合には、各移送軸毎の加速度a[]は、v×ddss[]で近似できることから、記憶部4に記憶されている加減速条件中の各移送軸毎の許容加速度をA[]とすると、媒介変数時間関数導出部18は、対象とするブロックの速度上限値vmを次式(17)によって求める。
 vm=(A[ax]/ddss[ax])1/2・・・(17)
 そして、媒介変数時間関数導出部18は、このようにして求めた各移送軸毎の対応するブロックの速度上限値vmと加工プログラムに含まれる速度指令のうちそのブロックに対応する速度との中で最も低い値をそのブロックの媒介変数sの速度ds/dTの上限値とする。媒介変数時間関数導出部18は、全てのブロックの媒介変数sの速度ds/dTの上限値を以上のような方法でそれぞれ求め、その求めた各ブロックの上限値を繋いで媒介変数速度上限関数を求める。
 次に、媒介変数時間関数導出部18は、記憶部4に記憶された加減速条件に含まれる媒介変数sの許容速度、許容加速度及び許容ジャークに基づいて、媒介変数速度上限関数が表す階段状速度曲線を超えないように連続変化する加減速曲線ds(T)/dTを求め、その求めた加減速曲線ds(T)/dTを基準時刻Tで積分することにより媒介変数時間関数s(T)を算出する。
 具体的には、媒介変数時間関数導出部18は、まず、加減速曲線ds(T)/dTのうちの加速領域の速度曲線(速度関数)を始点側から終点側へ向かって所定の時刻区間毎にその時刻区間の時刻区間幅tsとともに順次求めてメモリ5に登録していく。この時、媒介変数時間関数導出部18は、それまでにメモリ5に登録した速度曲線の最終点(s1,f1,t1)から目標点(s2,f2)として設定したブロックの終点へ到達する過程でその最終点における速度f1がそのブロックの速度ds/dTの上限値(速度上限値f2)まで上昇し得るような速度曲線を各時刻区間毎にその区間の時刻区間幅tsとともに求める。なお、このとき求められる速度曲線の形態は、前記最終点と目標点との媒介変数の差(s2-s1)、前記最終点における速度f1、速度上限値f2、前記最終点における加速度a1、許容加速度及び許容ジャーク等の条件によって異なる。その各条件に応じた速度曲線の求め方が図14~図20に示されている。
 図14及び図15には、最終点(s1,f1,t1)から目標点(s2,f2)に達する前に速度が速度上限値f2に達する場合が示されている。なお、t2は、s2に到達したときの時刻である。具体的には、図14は、最終点(s1,f1,t1)から許容ジャークに従って加速度がa1から許容加速度まで増加するように速度をf1から上昇させ(時刻区間ts1)、その後、許容加速度に等しい加速度で速度が上昇し(時刻区間ts2)、その後、速度が速度上限値f2を超えないように許容ジャークに従って加速度を低下させて速度が速度上限値f2に達し(時刻区間ts3)、その後、速度上限値f2に等しい速度で目標点(s2,f2)に到達する(時刻区間ts4)という形態の速度曲線を示しており、媒介変数時間関数導出部18は、このような条件に従って各時刻区間毎の速度曲線(速度関数)をその各区間の時刻区間幅ts1~ts4とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ5に登録する。また、図15は、最終点(s1,f1,t1)から許容ジャークに従って加速度がa1から増加するように速度をf1から上昇させる(時刻区間ts5)が、速度上限値f2が近いため、速度が許容加速度に達する前に許容ジャークに従って加速度を低下させて速度上限値f2に達し(時刻区間ts6)、その後、速度上限値f2に等しい速度で目標点(s2,f2)に到達する(時刻区間ts7)という形態の速度曲線を示しており、媒介変数時間関数導出部18は、このような条件に従って各時刻区間毎の速度曲線(速度関数)をその各区間の時刻区間幅ts5~ts7とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ5に登録する。
 また、図16~図18には、許容ジャークに従って加速度が低下している途中に目標点(s2,f2)に達する場合が示されている。具体的には、図16は、最終点(s1,f1,t1)から許容ジャークに従って加速度がa1から増加するように速度をf1から上昇させる(時刻区間ts8)が、最終点から目標点(s2,f2)までの距離(s2-s1)が小さいため、速度が許容加速度に達する前に、許容ジャークに従って加速度を低下させて速度が速度上限値f2に達するとともに目標点(s2,f2)に到達する(時刻区間ts9)という形態の速度曲線を示しており、媒介変数時間関数導出部18は、このような条件に従って各時刻区間毎の速度曲線(速度関数)をその各区間の時刻区間幅ts8,ts9とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ5に登録する。また、図17は、最終点(s1,f1,t1)から許容ジャークに従って加速度がa1から許容加速度まで増加するように速度をf1から上昇させ(時刻区間ts10)、その後、許容加速度に等しい加速度で速度が上昇し(時刻区間ts11)、その後、速度が速度上限値f2を超えないように許容ジャークに従って加速度を低下させている途中で目標点(s2,f2)に到達する(時刻区間ts12)という形態の速度曲線を示しており、媒介変数時間関数導出部18は、このような条件に従って各時刻区間毎の速度曲線(速度関数)をその各区間の時刻区間幅ts10~ts12とともに算出し、その算出した速度曲線を対応する時刻区間とともにメモリ5に登録する。また、図18は、最終点(s1,f1,t1)から目標点(s2,f2)までが非常に近いとともにその最終点における速度f1と速度上限値f2とが非常に近く、且つ、最終点における加速度a1が大きいため、その最終点から許容ジャークに従って加速度をa1から低下させながら速度がf1から上昇して速度上限値f2に達するとともに目標点(s2,f2)に到達する(時刻区間ts13)という形態の速度曲線を示しており、媒介変数時間関数導出部18は、このような条件に従って時刻区間幅ts13とともにその区間の速度曲線(速度関数)を算出し、その算出した速度曲線を時刻区間ts13とともにメモリ5に登録する。
 また、図19には、媒介変数sが目標点に対応する値s2に達しても速度上限値f2まで速度を上げることができない場合が示されている。媒介変数時間関数導出部18は、速度曲線を算出していてこのような場合に該当する場合には、その算出した速度曲線をメモリ5に登録しない。
 また、図20には、最終点(s1,f1,t1)における速度f1と速度上限値f2が非常に接近しているとともにその最終点における加速度a1が比較的大きいため、最終点(s1,f1,t1)から許容ジャークに従って加速度を低下させても速度が速度上限値f2を超えてしまう場合が示されている。媒介変数時間関数導出部18は、速度曲線の算出に際してこのような場合に該当する場合には、1つ前にメモリ5に登録された速度曲線のデータを取り消すとともに、さらにその1つ前にメモリ5に登録された速度曲線の最終点から今回の目標点に至り、且つ、速度が今回の目標点に対応する速度上限値に達し得るような速度曲線を求めるための再計算を行う。この場合の再計算の方法は、上記各場合と同様である。
 そして、媒介変数時間関数導出部18は、上記のような速度曲線の算出と登録を順次行う。媒介変数時間関数導出部18は、求めた速度曲線をメモリ5に登録する際、併せて、目標点に到達時の時刻t2及び加速度a2をメモリ5に登録しておき、次の目標点を設定して速度曲線を算出するときには、その登録した時刻t2を最終点における時刻t1として用いるとともにその登録した加速度a2を最終点における加速度a1として用いて次の速度曲線を算出する。このように最終点における速度に対して次の目標点に対応する速度上限値が小さくなるまで求めた速度曲線によって、加減速曲線のうち加速領域の速度曲線が得られる。
 次に、媒介変数時間関数導出部18は、加減速曲線のうちの減速領域についてパスの終点側から始点側へ向かって上記と同様の速度曲線の算出と登録を順次行い、それによってその減速領域の速度曲線を求める。そして、媒介変数時間関数導出部18は、求めた加速領域の速度曲線の終点と減速領域の速度曲線の始点を繋ぎ合わせることによって加減速曲線ds(T)/dTを求める。そして、媒介変数時間関数導出部18は、その求めた加減速曲線ds(T)/dTを基準時刻Tで積分することにより媒介変数時間関数s(T)を算出する。
 次に、パルス補間部22による基準時刻Tの導出及びパルス補間と、制御部24による各移送部102c,106b,108b,110bへのパルス出力が行われる(ステップS6)。
 このステップS6の詳細なプロセスは、図5及び図6のフローチャートに示されている。このプロセスでは、まず、パルス補間部22は、基準時刻Tが上記ステップS5で求められた媒介変数時間関数の始点となる時刻に合うように当該基準時刻Tを初期セットするとともに、実時刻の単位時間に対する基準時刻の単位時間(基準単位時間)の割合の変化を示す加減速関数g(t)を1.0(定数)に設定し、同時に、後述する所要時間timeを-1にセットする(図5のステップS52)。
 次に、パルス補間部22は、初期セットした基準時刻Tに対応する局部補間後ツールパス上のワーク座標系における位置を求める(ステップS54)。具体的には、パルス補間部22は、初期セットした基準時刻Tに対応する媒介変数sを上記媒介変数時間関数s(T)から求め、その求めた媒介変数sと局部補間後ツールパスからその媒介変数sに対応する局部補間後ツールパス上のワーク座標系における位置を求める。
 次に、パルス補間部22は、求めた局部補間後ツールパス上のワーク座標系における位置に対応する各移送軸毎の位置座標newp[]を求める(ステップS56)。
 次に、パルス補間部22は、実時刻の単位時間の経過数をカウントするカウンタ(以後、実時刻カウンタという)のカウント数tを0に初期セットし(ステップS58)、前記ステップS56で求めた各移送軸毎の位置座標newp[]を旧座標oldp[]とする(ステップS60)。
 次に、パルス補間部22は、このときの実時刻カウンタのカウント数tに対応する加減速関数g(t)の値を基準単位時間dTとして導出するとともに、このときの加減速関数g(t)のtによる一次微分値を基準単位時間dTの変化率dGとして導出する(ステップS62)。
 次に、パルス補間部22は、上記ステップS52で初期セットした基準時刻TにステップS62で得た基準単位時間dTを加算して新たな基準時刻Tを求める(ステップS64)。
 次に、パルス補間部22は、新たな基準時刻Tに対応する局部補間後ツールパス上の位置を上記ステップS54と同様にして求める(ステップS66)。
 次に、パルス補間部22は、求めた局部補間後ツールパス上の位置に対応する各移送軸毎の位置座標newp[]を求める(ステップS68)。
 その後、パルス補間部22は、指令パルスを算出する(ステップS70)。具体的には、パルス補間部22は、ステップS68で求めた各移送軸毎の位置座標newp[]から上記ステップS60で設定された各移送軸毎の旧座標oldp[]の対応するものを差し引くことによって、基準単位時間dT当たりの各移送軸における位置座標の変化量、すなわち各移送軸に対応する支持体102b,106a,108a,110aの基準単位時間dT当たりの移送量を求め、その求めた移送量を実時刻の単位時間毎(前記特定周期毎)の指令パルスとする。
 その後、制御部24が、パルス補間部22によって求められた前記特定周期当たりの指令パルスを各移送部102c,106b,108b,110bのサーボモータへ出力する(ステップS72)。これにより、各移送部102c,106b,108b,110bは、対応する支持体102b,106a,108a,110aを対応する移送軸方向へ制御部24から送られてくる指令パルスが示す移送量だけ特定周期当たりに移送する。
 次に、パルス補間部22は、停止要求があるか判断する(図6のステップS74)。具体的には、監視部10は、停止信号発信部124bからの緊急停止信号の発信の有無を監視しており、停止信号発信部124bから緊急停止信号が発信された場合には、停止要求を出力し、停止信号発信部124bから緊急停止信号が発信されていない場合には、停止要求を出力しない。パルス補間部22は、この監視部10からの停止要求があるかないかを判断する。
 ここで、パルス補間部22は、停止要求がないと判断した場合には、次に、速度変更要求があるか判断する(ステップS76)。具体的には、監視部10は、速度変更信号発信部128bからの速度変更信号の発信の有無を監視しており、速度変更信号発信部128bから速度変更信号が発信された場合には、速度変更要求を出力し、速度変更信号発信部128bから速度変更信号が発信されていない場合には、速度変更要求を出力しない。パルス補間部22は、この監視部10からの速度変更要求があるかないかを判断する。
 ここで、パルス補間部22は、速度変更要求がないと判断した場合には、次に、現在の実時刻カウンタのカウント数tが所要時間time以下であるか否かを判断する(ステップS78)。パルス補間部22は、現在の実時刻カウンタのカウント数tが所要時間time以下であると判断した場合には、次に、現在の実時刻カウンタのカウント数tが所要時間timeに等しいか否かを判断する(ステップS80)。ここで、パルス補間部22は、現在の実時刻カウンタのカウント数tが所要時間timeに等しいと判断した場合には、現在のオーバーライド係数、すなわち基準単位時間dTが目標のオーバーライド係数kaに到達したものとし、次に、その到達した目標オーバーライド係数kaが0よりも大きいか否かを判断する(ステップS82)。パルス補間部22は、到達した目標オーバーライド係数kaが0よりも大きいと判断した場合には、加減速関数g(t)をその到達した目標オーバーライド係数kaに等しい値(一定値)に設定するとともに、所要時間timeを-1にセットし(ステップS84)、その後、実時刻カウンタのカウント数tを+1だけカウントアップする(ステップS86)。
 次に、パルス補間部22は、シャットダウンの処理を行うか否かを判断する(ステップS88)。ここで、パルス補間部22がシャットダウンの処理を行うと判断した場合には、シャットダウンの処理が実行されて本実施形態の数値制御プロセスは終了し、パルス補間部22がシャットダウンを行わないと判断した場合には、上記ステップS60以降の処理が繰り返し行われる。
 なお、上記ステップS78において、パルス補間部22は、実時刻カウンタのカウント数tが所要時間timeよりも大きいと判断した場合には、次に、ステップS88のシャットダウンの判断を行う。工作機械の起動後、指令入力装置122に特別指令が入力されていない場合には、上記ステップS52でセットされた所要時間time=-1が維持されているため、上記ステップS78の判断では、パルス補間部22は、現在の実時刻カウンタのカウント数tが所要時間timeよりも大きいと判断する。従って、この場合、パルス補間部22は、ステップS78の次に、上記ステップS88のシャットダウンの判断を行う。また、上記ステップS80において、パルス補間部22は、実時刻カウンタのカウント数tが所要時間timeに等しくないと判断した場合には、次に、ステップS86の実時刻カウンタのカウント数tのカウントアップを行い、その後、ステップS88のシャットダウンの判断を行う。
 上記ステップS88の後、再度行われるステップS60では、パルス補間部22は、上記ステップS68で求めた各移送軸毎の位置座標newp[]を旧座標oldp[]に設定し、その後のステップS62では、その時点での実時刻カウンタのカウント数tに対応する加減速関数g(t)の値を基準単位時間dTとして導出するとともに、その時点での加減速関数g(t)のtによる一次微分値を基準単位時間dTの変化率dGとして導出する。
 一方、上記ステップS74の判断において、パルス補間部22は、停止要求があると判断した場合には、その時点における基準単位時間dTを再始動オーバーライド係数kφとしてメモリ5に記憶させるとともに、目標オーバーライド係数kaを0にセットする(ステップS90)。その後、パルス補間部22は、現在の基準単位時間dTを目標オーバーライド係数kaに等しい単位時間に変化させるとともにそれに伴って現在の基準単位時間dTの変化率dGが0に変化するまでの加減速関数g(t)と、そのdT及びdGの変化に要する所要時間timeとを算出する(ステップS92)。ここでは、目標オーバーライド係数kaが0にセットされているので、パルス補間部22は、現在の基準単位時間dTを0に低下させるまでの加減速関数g(t)とその基準単位時間dTを0に低下させるまでに要する所要時間timeとを求める。その後、パルス補間部22は、実時刻カウンタのカウント数tを0にリセットし(ステップS58)、続いて、ステップS60~S88の処理が繰り返し行われる。このときのステップS62では、パルス補間部22は、基準単位時間dTをステップS92で求めた加減速関数g(t)から求める。このようにして、基準単位時間dTがステップS92で求められた加減速関数g(t)及び所要時間timeに応じて0まで変化し、それに伴って、指令パルスが指示する各移送軸毎の移送量が0まで変化する。その結果、各移送部102c,106b,108b,110bによる支持体102b,106a,108a,110aの移送の緊急停止(移送対象物の緊急停止)が実行される。
 また、上記ステップS76の判断において、パルス補間部22は、監視部10からの速度変更要求があると判断した場合には、目標オーバーライド係数kaを速度変更要求に含まれる要求オーバーライド係数krと等しい値にセットする(ステップS94)。その後、パルス補間部22は、現在の基準単位時間dTを目標オーバーライド係数ka(要求オーバーライド係数kr)に等しい単位時間に変化させるとともにそれに伴って現在の基準単位時間dTの変化率dGが0に変化するまでの加減速関数g(t)と、そのdT及びdGの変化に要する所要時間timeとを求める(ステップS92)。その後、パルス補間部22は、実時刻カウンタのカウント数tを0にリセットし(ステップS58)、続いて、ステップS60~S88の処理が繰り返し行われる。このときのステップS62では、パルス補間部22は、基準単位時間dTを、ステップS92で求めた、基準単位時間dTを要求オーバーライド係数krに等しい単位時間に変化させる加減速関数g(t)から求める。このようにして、基準単位時間dTが加減速関数g(t)及び所要時間timeに応じて要求オーバーライド係数krに等しい単位時間まで変化し、それに応じて、指令パルスが指示する各移送軸毎の移送量が変化する。その結果、各移送部102c,106b,108b,110bによる支持体102b,106a,108a,110aの移送速度の変更(移送対象物の移動速度の変更)が実行される。
 また、上記ステップS82において、パルス補間部22は、到達した目標オーバーライド係数kaが0よりも大きくない、すなわち到達した目標オーバーライド係数kaが0であると判断した場合には、次に、シャットダウンの処理を行うか否かを判断する(ステップS96)。なお、到達した目標オーバーライド係数kaが0である状態とは、基準単位時間dTが0となり、各移送部102c,106b,108b,110bのサーボモータが駆動停止して移送対象物が移動停止している状態である。ここで、パルス補間部22がシャットダウンの処理を行うと判断した場合には、シャットダウンの処理が実行されて本実施形態の数値制御プロセスは終了する。一方、パルス補間部22がシャットダウン処理は行わないと判断した場合には、次に、パルス補間部22は、再始動要求があるか判断する(ステップS98)。具体的には、監視部10は、再始動信号発信部126bからの再始動信号の発信の有無を監視しており、再始動信号発信部126bから再始動信号が発信された場合には、再始動要求を出力し、再始動信号発信部126bから再始動信号が発信されていない場合には、再始動要求を出力しない。パルス補間部22は、この監視部10からの再始動要求があるかないかを判断する。
 ここで、パルス補間部22は、再始動要求がないと判断した場合には、次に、上記ステップS96のシャットダウンの判断を行い、再始動要求があると判断した場合には、目標オーバーライド係数kaをメモリ5に記憶されている再始動オーバーライド係数kφと等しい値にセットする(ステップS100)。その後、パルス補間部22は、現在の基準単位時間dTを目標オーバーライド係数ka(再始動オーバーライド係数kφ)に等しい単位時間に変化させるとともにそれに伴って現在の基準単位時間dTの変化率dGが0に変化するまでの加減速関数g(t)と、そのdT及びdGの変化に要する所要時間timeとを求める(ステップS92)。その後、パルス補間部22は、実時刻カウンタのカウント数tを0にリセットし(ステップS58)、続いて、ステップS60~S88の処理が繰り返し行われる。このときのステップS62では、パルス補間部22は、基準単位時間dTを、ステップS92で求めた、基準単位時間dTを再始動オーバーライド係数kφに等しい単位時間に変化させる加減速関数g(t)から求める。このようにして、基準単位時間dTが加減速関数g(t)及び所要時間timeに応じて0から再始動オーバーライド係数kφに等しい単位時間まで変化し、それに応じて、指令パルスが指示する各移送軸毎の移送量が変化する。その結果、各移送部102c,106b,108b,110bによる支持体102b,106a,108a,110aの移送が再開され、移送対象物が再始動する。
 以上のようにして、本実施形態の数値制御装置2による制御プロセスが行われる。
 以上説明したように、本実施形態では、1回のパルス補間で各移送部102c,106b,108b,110bの動作を制御するための特定周期毎の指令パルスを求めることができ、演算処理を簡略化することができる。
 具体的には、本実施形態では、補間対象点において不連続となっている微分値の変化が連続的な変化となるようにツールパスの補間区間を局部補間する処理と、移送対象物の加速又は減速を伴う動作を指示するための特別指令の入力があった場合に基準単位時間dTの長さをその特別指令によって指示される移送対象物の速度変化に応じた長さに調整した新たな基準時刻Tを求める処理を、移送部102c,106b,108b,110bによる支持体102b,106a,108a,110aの移送を制御するための指令パルスを求めるパルス補間処理の前に行うため、ツールパスの局部補間処理及び新たな基準時刻Tの導出処理の後、1回のパルス補間で前記指令パルスを求めることができる。その結果、本実施形態では、演算処理を簡略化することができる。
 また、本実施形態では、パス局部フィルタ16により、補間対象点の前後において一次微分値の変化が不連続である場合には一次微分値が連続的な変化となるように、また、補間対象点の前後において一次微分値の変化が連続で二次微分値の変化が不連続である場合には二次微分値の変化が連続的な変化となるようにツールパスの補間区間が局部補間される。補間対象点の前後において一次微分値の変化が不連続になっている場合には、その補間対象点の前後において移送対象物の速度変化が不連続になるが、本実施形態では、そのような補間対象点の前後における移送対象物の不連続な速度変化を連続的な速度変化に変えることができる。また、補間対象点の前後において二次微分値の変化が不連続になっている場合には、その補間対象点の前後において移送対象物の加速度変化が不連続になるが、本実施形態では、そのような補間対象点の前後における移送対象物の不連続な加速度変化を連続的な加速度変化に変えることができる。従って、本実施形態では、ツールパスに含まれていた補間対象点としての異常データを補間してその異常データに起因する移送対象物の急激な速度変化及び急激な加速度変化を緩やかにすることができ、その結果、ツールパス中の異常データに起因する機械ショックの発生を抑制することができる。
 また、本実施形態では、前記特別指令に応じて各移送軸に共通の基準単位時間dTの長さを調整して新たな基準時刻Tを求め、その新たな基準時刻Tに基づいて各移送軸毎の特定周期当たりの移送量を示す指令パルスを求め、その指令パルスに従って移送部102c,106b,108b,110bに支持体102b,106a,108a,110aを移送させる。このため、その移送によって実施される移送対象物の移動では、元々のツールパスにおけるワーク座標系の各座標軸間の相対的な位置関係が維持される。このため、前記特別指令の入力に伴う加工形状の誤差の発生を抑制することができる。また、本実施形態では、パス局部フィルタ16によりツールパスの補間区間のみが局部補間されるため、ツールパス全体について補間処理を行う場合と異なり、補間区間以外の区間において補間処理に起因する加工形状の誤差が生じるのを防ぐことができる。
 また、本実施形態では、パス局部フィルタ16により、局部補間後ツールパスが補間区間の始点の前後及び補間区間の終点の前後でそれぞれ連続して繋がるようにツールパスの補間区間が局部補間されるため、局部補間後ツールパスに基づいたその後の各移送部102c,106b,108b,110bの動作の制御では、補間区間の始点及び終点において移送対象物を急激に動かすような各移送部102c,106b,108b,110bの動作の急変が生じるのを防ぐことができる。
 また、本実施形態では、パス局部フィルタ16が、ツールパスにおいて隣り合う補間対象点の補間区間同士が重複している場合には、それら重複する補間区間のうち最もツールパスの始点寄りに位置する補間区間の始点から最も前記ツールパスの終点寄りに位置する補間区間の終点までを1つの補間区間として、その補間区間内のツールパスを局部補間する。このため、複数の補間対象点が近接している振動のような異常データがツールパスに含まれている場合でも、それらの複数の補間対象点付近のツールパスを一度に局部補間して滑らかな曲線を示すように補間することができる。
 なお、今回開示された実施形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施形態の説明ではなく特許請求の範囲によって示され、さらに特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれる。
 例えば、本発明による数値制御装置は、上記実施形態で示したような工作機械以外の種類の工作機械にも適用することが可能である。例えば、5軸工作機械や、パラレルメカニズムを有する工作機械や、旋盤、その他の各種工作機械に本発明による数値制御装置を適用することができる。
 また、パス局部フィルタ16は、媒介変数による一次微分値の変化が連続でかつ媒介変数による二次微分値の変化が不連続になっている指令点と媒介変数による一次微分値の変化が不連続になっている指令点とのうちいずれか一方のみを補間対象点としてもよい。
 また、パス局部フィルタ16による分配区間幅及び補間区間幅の導出方法は、上記した方法に限定されるものではなく、上記方法以外の種々の導出方法により分配区間幅及び補間区間幅を求めてもよい。また、上記実施形態では、補間区間幅を分配区間幅に等しい大きさの区間幅としたが、補間区間幅はこのような区間幅に限定されない。すなわち、補間区間幅は、分配区間幅よりも大きい区間幅であってもよい。
 また、パス局部フィルタ16は、局部補間後ツールパスが補間区間の始点の前後及び補間区間の終点の前後でそれぞれ連続して繋がることに加えて、局部補間後ツールパスが当該局部補間後ツールパスの媒介変数による一次微分値が補間区間の始点の前後及び補間区間の終点の前後でそれぞれ連続して変化するようなパスとなるようにツールパスの補間区間を局部補間してもよい。この場合には、パス局部フィルタ16の誤差補正部16bは、誤差補正パスを求める際、補間区間の始点における誤差補正パスの値が当該始点における誤差付き補間パスの値から当該始点におけるツールパスの値を減じて得た値に等しく、かつ、補間区間の終点における誤差補正パスの値が当該終点における誤差付き補間パスの値から当該終点におけるツールパスの値を減じて得た値に等しいという条件に加えて、その補間区間の始点における誤差付き補間パスの一次微分値から当該始点におけるツールパスの一次微分値を減じて得た値に当該始点における誤差補正パスの一次微分値が等しく、かつ、補間区間の終点における誤差付き補間パスの一次微分値から当該終点におけるツールパスの一次微分値を減じて得た値に当該終点における誤差補正パスの一次微分値が等しいという条件を満たす誤差補正パスを求める。
 そして、誤差補正部16bがこのような誤差補正パスを誤差付き補間パスから差し引くことによって求めたパスをツールパスの補間区間に置換して得た局部補間後ツールパスでは、補間区間の始点の前後及び終点の前後で一次微分値が連続して変化するようなパスとなる。その結果、その局部補間後ツールパスに基づいたその後の各移送部102c,106b,108b,110bの動作の制御では、補間区間の始点の前後及び終点の前後に対応する各時点において移送対象物の移動速度が連続して変化するように各移送部102c,106b,108b,110bによる支持体102b,106a,108a,110aの移送を制御することができる。
 また、パス局部フィルタ16は、局部補間後ツールパスが補間区間の始点及び終点それぞれの前後で連続して繋がるとともに、その局部補間後ツールパスの媒介変数による一次微分値が補間区間の始点及び終点のそれぞれの前後で連続して変化することに加えて、さらに、局部補間後ツールパスが当該局部補間後ツールパスの媒介変数による二次微分値が補間区間の始点の前後及び終点の前後でそれぞれ連続して変化するパスとなるようにツールパスの補間区間を局部補間してもよい。この場合には、パス局部フィルタ16の誤差補正部16bは、上記2つの条件に加えて、補間区間の始点における誤差付き補間パスの二次微分値から当該始点におけるツールパスの二次微分値を減じて得た値に当該始点における誤差補正パスの二次微分値が等しく、かつ、補間区間の終点における誤差付き補間パスの二次微分値から当該終点におけるツールパスの二次微分値を減じて得た値に当該終点における誤差補正パスの二次微分値が等しいという条件を満たす誤差補正パスを求める。
 そして、誤差補正部16bがこのような誤差補正パスを誤差付き補間パスから差し引くことによって求めたパスをツールパスの補間区間に置換して得た局部補間後ツールパスでは、補間区間の始点の前後及び終点の前後で媒介変数による一次微分値と二次微分値がそれぞれ連続して変化するようなパスとなる。その結果、その局部補間後ツールパスに基づいたその後の各移送部102c,106b,108b,110bの動作の制御では、補間区間の始点の前後及び終点の前後に対応する各時点において移送対象物の移動速度と加速度が共に連続して変化するように各移送部102c,106b,108b,110bによる対応する支持体102b,106a,108a,110aの移送を制御することができる。
 また、上記実施形態では、直線型の分配関数を用いてツールパスの一次微分値を分配区間へ分配したが、その分配方式に限定されるものではない。すなわち、ツールパスの一次微分値の分配に用いる分配関数は、上記した分配関数以外の種々の分配関数を用いてもよい。
 なお、この分配に用いる分配関数は、区間[-A/2,A/2]における積分が1となり、かつ、その区間の中央に対して左右対称の形状を示す関数が望ましい。このような分配関数の一例として、次式で表されるベル型の分配関数f(s)が挙げられる。
Figure JPOXMLDOC01-appb-I000008
 なお、分配区間-A/2≦s≦A/2の外側では、f(s)=0である。
 このベル型の分配関数を用いた場合には、上記直線型の分配関数を用いた場合よりも補間区間をより滑らかな曲線となるように補間することができる。
[実施の形態の概要]
 前記実施形態及び変形例をまとめると、以下の通りである。
 前記実施形態及び変形例に係る数値制御装置は、ワーク又はそのワークを加工する工具を移送対象物としてその移送対象物を前記ワークを加工するために移送する複数の移送装置と、前記ワークの加工時における前記移送対象物の通常の移送とは別に当該移送対象物の速度変化を伴う動作を指示するための特別指令を外部から入力するための指令入力装置とを備え、前記各移送装置は、前記移送対象物を支持するための支持体と、その支持体を特定の移送軸方向に移送することにより前記移送対象物を移送する移送部とをそれぞれ有する工作機械に設けられ、前記各移送部へ特定周期毎の指令パルスを出力することにより前記各移送装置の数値制御を行う数値制御装置であって、前記工具が前記ワークの加工時に通るべき軌跡が前記ワーク上に固定されたワーク座標系における前記工具の位置座標とその工具の軌跡に沿った積算長である媒介変数との関数として表されたツールパスを含む加工プログラムを記憶する記憶部と、前記記憶部に記憶された前記加工プログラムから前記ツールパスを求めるツールパス導出部と、前記ツールパス導出部によって求められた前記ツールパスに含まれる複数の指令点の中で前記ツールパスの前記媒介変数による一次微分値の変化が連続でかつ前記ツールパスの前記媒介変数による二次微分値の変化が不連続になっている指令点と前記ツールパスの前記媒介変数による一次微分値の変化が不連続になっている指令点とのうち少なくとも一方の指令点を補間対象点とし、前記ツールパスのうち前記補間対象点の前後に亘り、特定の区間幅を有する補間区間のみを当該補間対象点において不連続となっている微分値の変化が連続的な変化となるように局部補間するパス局部フィルタと、前記移送対象物の加減速条件と前記パス局部フィルタによって局部補間された後のツールパスである局部補間後ツールパスとに基づいて、基準時刻の経過に対する前記媒介変数の変化を表す媒介変数時間関数を求める媒介変数時間関数導出部と、前記特定周期に基づいた基準単位時間毎に進行する基準時刻を導出し、前記媒介変数時間関数導出部によって求められた前記媒介変数時間関数からこの導出した基準時刻の基準単位時間毎の各時点に対応する前記媒介変数を求めるとともに、その求めた各時点での媒介変数に対応する前記ワーク座標系での前記局部補間後ツールパス上の位置座標を求め、その求めた各時点での位置座標から前記各移送部に対応する前記各移送軸における位置座標を求め、その求めた前記各移送軸における位置座標から前記導出した基準時刻の基準単位時間毎の前記各移送軸方向への前記支持体の移送量を求めてその基準単位時間毎の移送量を前記特定周期毎の前記指令パルスとするパルス補間部と、前記パルス補間部によって求められた前記各移送軸方向についての前記特定周期毎の前記指令パルスをその各移送軸方向に対応する前記各移送部へ出力し、その出力した前記指令パルスが示す前記特定周期毎の移送量に応じて前記各移送部に対応する前記支持体を移送させる制御部とを備え、前記パルス補間部は、前記工作機械の起動後に前記指令入力装置に前記特別指令が入力されるまでは、前記基準単位時間を前記特定周期と等しい時間に設定し、前記工作機械の起動後に前記指令入力装置に前記移送対象物の減速を指示する前記特別指令が入力された場合には、前記基準単位時間をその特別指令が指示する減速に応じた割合で短縮し、前記工作機械の起動後に前記指令入力装置に前記移送対象物の増速を指示する前記特別指令が入力された場合には、前記基準単位時間をその特別指令が指示する増速に応じた割合で延長する。
 この数値制御装置では、1回のパルス補間で各移送部による支持体の移送を制御するための特定周期毎の指令パルスを求めることができ、演算処理を簡略化することができる。具体的には、この数値制御装置では、補間対象点において不連続となっている微分値の変化が連続的な変化となるようにツールパスの補間区間を局部補間する処理と、特別指令の入力があった場合に基準単位時間の長さをその特別指令によって指示される移送対象物の速度変化に応じた長さに調整した基準時刻を導出する処理を、各移送部による支持体の移送を制御するための指令パルスを求めるパルス補間処理の前に行うため、ツールパスの局部補間処理及び基準時刻の導出処理の後、1回のパルス補間で各移送部による支持体の移送を制御するための指令パルスを求めることができる。その結果、この数値制御装置では、演算処理を簡略化することができる。
 また、この数値制御装置では、パス局部フィルタにより補間対象点において不連続となっている微分値の変化が連続的な変化となるようにツールパスの補間区間が局部補間されるため、補間対象点の前後において一次微分値の変化が不連続となっている場合にはその一次微分値の変化が連続的な変化となるように補間され、補間対象点の前後において二次微分値の変化が不連続となっている場合にはその二次微分値の変化が連続的な変化となるように補間される。補間対象点の前後において一次微分値の変化が不連続になっている場合には、その補間対象点の前後において移送対象物の速度変化が不連続になるため、本発明の数値制御装置では、そのような補間対象点の前後における移送対象物の不連続な速度変化を連続的な速度変化に変えることができる。また、補間対象点の前後において二次微分値の変化が不連続になっている場合には、その補間対象点の前後において移送対象物の加速度変化が不連続になるため、この数値制御装置では、そのような補間対象点の前後における移送対象物の不連続な加速度変化を連続的な加速度変化に変えることができる。従って、本発明の数値制御装置では、ツールパスに含まれていた移送対象物の急激な速度変化や加速度変化を引き起こす異常データ部分を補間してその補間対象点に対応する時点における移送対象物の速度変化及び加速度変化を緩やかにすることができ、その結果、ツールパス中の異常データに起因する機械ショックの発生を抑制することができる。
 なお、この数値制御装置では、特別指令に応じて基準単位時間の長さを調整した基準時刻を導出し、その導出した基準時刻の基準単位時間毎の前記支持体の前記各移送軸についての移送量を求めてその移送量を特定周期毎の指令パルスとするため、その指令パルスに従って各移送部が支持体を移送することにより実施される移送対象物の移動では、元々のツールパスにおけるワーク座標系の各座標軸間の相対的な位置関係が維持される。このため、特別指令に伴う加工形状の誤差の発生を抑制することができる。また、この数値制御装置では、パス局部フィルタによりツールパスの補間区間のみが局部補間されるため、ツールパス全体について補間処理を行う場合と異なり、補間区間以外の区間において加工形状の誤差が生じるのを抑制することができる。
 上記数値制御装置において、前記パス局部フィルタは、前記局部補間後ツールパスが前記補間区間の始点の前後及び前記補間区間の終点の前後でそれぞれ連続して繋がるように前記ツールパスの前記補間区間を局部補間することが好ましい。
 この構成によれば、補間区間の始点の前後及び終点の前後がそれぞれ連続して繋がっている局部補間後ツールパスを得ることができる。このため、その局部補間後ツールパスに基づいたその後の各移送部の制御では、補間区間の始点及び終点において移送対象物を急激に動かすような各移送部の動作の急変が生じるのを防ぐことができる。
 この場合において、前記パス局部フィルタは、前記局部補間後ツールパスが前記補間区間の始点の前後及び前記補間区間の終点の前後で当該局部補間後ツールパスの前記媒介変数による一次微分値がそれぞれ連続して変化するようなパスとなるように前記ツールパスの前記補間区間を局部補間することが好ましい。
 この構成によれば、補間区間の始点の前後及び終点の前後で一次微分値が連続して変化する局部補間後ツールパスを得ることができる。このため、その局部補間後ツールパスに基づいたその後の各移送部の制御では、補間区間の始点の前後及び終点の前後に対応する各時点において移送対象物の移動速度が連続して変化するように各移送部による対応する支持体の移送を制御することができる。
 さらにこの場合において、前記パス局部フィルタは、前記局部補間後ツールパスが前記補間区間の始点の前後及び前記補間区間の終点の前後で当該局部補間後ツールパスの前記媒介変数による二次微分値がそれぞれ連続して変化するようなパスとなるように前記ツールパスの前記補間区間を局部補間してもよい。
 この構成によれば、補間区間の始点の前後及び終点の前後でそれぞれ二次微分値が連続して変化する局部補間後ツールパスを得ることができる。このため、その局部補間後ツールパスに基づいたその後の各移送部の制御では、補間区間の始点の前後及び終点の前後に対応する各時点において移送対象物の加速度が連続して変化するように各移送部による対応する支持体の移送を制御することができる。
 上記パス局部フィルタが局部補間後ツールパスが補間区間の始点の前後及び補間区間の終点の前後でそれぞれ連続して繋がるようにツールパスの補間区間を局部補間する構成において、前記パス局部フィルタは、前記補間区間を前後に特定の区間幅ずつ拡大した区間を調整区間として設定し、前記ツールパスのうち隣り合う前記指令点間の部位を補間ブロックとしてそのツールパスから前記調整区間に少なくとも一部が含まれる複数の補間ブロックを選択し、その選択した複数の補間ブロックのそれぞれについて補間処理を行うことによってその補間処理後の各補間ブロックを示す補間後関数を求め、その求めた各補間ブロックの補間後関数を積算することによって補間後積算関数を求め、その求めた補間後積算関数のうち前記補間区間に相当する区間を抜き出すことによって、前記補間区間内の前記補間対象点において不連続となっている微分値の変化が連続的な変化となるように補間した誤差付き補間パスを求める局部補間部と、その局部補間部によって求められた前記誤差付き補間パスの前記補間区間の始点に対応する値が局部補間していない前記ツールパスの前記補間区間の始点の値に等しくなり、かつ、その誤差付き補間パスの前記補間区間の終点に対応する値が局部補間していない前記ツールパスの前記補間区間の終点の値に等しくなるように当該誤差付き補間パスを補正し、その補正後の補間パスを前記ツールパスの前記補間区間と置換する誤差補正部とを含み、前記局部補間部は、前記補間ブロック内の前記媒介変数が異なる複数の第1位置をそれぞれ中央とし且つ特定の区間幅をそれぞれ有する複数の積分区間を設定し、その設定した各積分区間内の前記媒介変数が異なる複数の第2位置での前記ツールパスの前記媒介変数による一次微分値をそれぞれ求め、その求めた各第2位置での一次微分値を、その各第2位置をそれぞれ中央とし且つ前記積分区間と等しい区間幅をそれぞれ有する各分配区間内に特定の分配関数に基づいて分配した場合に得られる分配後微分関数を前記積分区間にわたって積分し、その積分によって前記補間後関数を求めることが好ましい。
 この構成では、ツールパスの補間区間内の補間対象点において不連続となっている微分値の変化が連続的な変化となるように、かつ、局部補間後ツールパスが補間区間の始点の前後及び補間区間の終点の前後でそれぞれ連続して繋がるようにツールパスの補間区間を局部補間するパス局部フィルタを具体的に構成することができる。
 上記数値制御装置において、前記パス局部フィルタは、前記ツールパスに前記補間対象点が複数存在し、隣り合う前記補間対象点の前記補間区間同士が重複している場合には、それら重複する補間区間のうち最も前記ツールパスの始点寄りに位置する補間区間の始点から最も前記ツールパスの終点寄りに位置する補間区間の終点までを1つの補間区間として、その補間区間内の前記ツールパスを局部補間することが好ましい。
 この構成によれば、複数の補間対象点が近接している振動のような異常データがツールパスに含まれている場合でも、それらの複数の補間対象点付近のツールパスを一度に局部補間して滑らかな曲線を示すように補間することができる。
 以上説明したように、前記実施形態によれば、工作機械においてワークの加工時の移送対象物の通常の移送とは別に特別指令装置に入力された特別指令に応じて移送対象物の速度変化を伴う動作を実施する場合に、その特別指令の入力時点からそれに応じた動作が実行されるまでの応答性を向上しつつ、加工形状の誤差を抑制し、さらにツールパスの補間のための演算処理を簡略化することができる。

Claims (6)

  1.  ワーク又はそのワークを加工する工具を移送対象物としてその移送対象物を前記ワークを加工するために移送する複数の移送装置と、前記ワークの加工時における前記移送対象物の通常の移送とは別に当該移送対象物の速度変化を伴う動作を指示するための特別指令を外部から入力するための指令入力装置とを備え、前記各移送装置は、前記移送対象物を支持するための支持体と、その支持体を特定の移送軸方向に移送することにより前記移送対象物を移送する移送部とをそれぞれ有する工作機械に設けられ、前記各移送部へ特定周期毎の指令パルスを出力することにより前記各移送装置の数値制御を行う数値制御装置であって、
     前記工具が前記ワークの加工時に通るべき軌跡が前記ワーク上に固定されたワーク座標系における前記工具の位置座標とその工具の軌跡に沿った積算長である媒介変数との関数として表されたツールパスを含む加工プログラムを記憶する記憶部と、
     前記記憶部に記憶された前記加工プログラムから前記ツールパスを求めるツールパス導出部と、
     前記ツールパス導出部によって求められた前記ツールパスに含まれる複数の指令点の中で前記ツールパスの前記媒介変数による一次微分値の変化が連続でかつ前記ツールパスの前記媒介変数による二次微分値の変化が不連続になっている指令点と前記ツールパスの前記媒介変数による一次微分値の変化が不連続になっている指令点とのうち少なくとも一方の指令点を補間対象点とし、前記ツールパスのうち前記補間対象点の前後に亘り、特定の区間幅を有する補間区間のみを当該補間対象点において不連続となっている微分値の変化が連続的な変化となるように局部補間するパス局部フィルタと、
     前記移送対象物の加減速条件と前記パス局部フィルタによって局部補間された後のツールパスである局部補間後ツールパスとに基づいて、基準時刻の経過に対する前記媒介変数の変化を表す媒介変数時間関数を求める媒介変数時間関数導出部と、
     前記特定周期に基づいた基準単位時間毎に進行する基準時刻を導出し、前記媒介変数時間関数導出部によって求められた前記媒介変数時間関数からこの導出した基準時刻の基準単位時間毎の各時点に対応する前記媒介変数を求めるとともに、その求めた各時点での媒介変数に対応する前記ワーク座標系での前記局部補間後ツールパス上の位置座標を求め、その求めた各時点での位置座標から前記各移送部に対応する前記各移送軸における位置座標を求め、その求めた前記各移送軸における位置座標から前記導出した基準時刻の基準単位時間毎の前記各移送軸方向への前記支持体の移送量を求めてその基準単位時間毎の移送量を前記特定周期毎の前記指令パルスとするパルス補間部と、
     前記パルス補間部によって求められた前記各移送軸方向についての前記特定周期毎の前記指令パルスをその各移送軸方向に対応する前記各移送部へ出力し、その出力した前記指令パルスが示す前記特定周期毎の移送量に応じて前記各移送部に対応する前記支持体を移送させる制御部とを備え、
     前記パルス補間部は、前記工作機械の起動後に前記指令入力装置に前記特別指令が入力されるまでは、前記基準単位時間を前記特定周期と等しい時間に設定し、前記工作機械の起動後に前記指令入力装置に前記移送対象物の減速を指示する前記特別指令が入力された場合には、前記基準単位時間をその特別指令が指示する減速に応じた割合で短縮し、前記工作機械の起動後に前記指令入力装置に前記移送対象物の増速を指示する前記特別指令が入力された場合には、前記基準単位時間をその特別指令が指示する増速に応じた割合で延長する、数値制御装置。
  2.  請求項1に記載の数値制御装置において、
     前記パス局部フィルタは、前記局部補間後ツールパスが前記補間区間の始点の前後及び前記補間区間の終点の前後でそれぞれ連続して繋がるように前記ツールパスの前記補間区間を局部補間する、数値制御装置。
  3.  請求項2に記載の数値制御装置において、
     前記パス局部フィルタは、前記局部補間後ツールパスが前記補間区間の始点の前後及び前記補間区間の終点の前後で当該局部補間後ツールパスの前記媒介変数による一次微分値がそれぞれ連続して変化するようなパスとなるように前記ツールパスの前記補間区間を局部補間する、数値制御装置。
  4.  請求項3に記載の数値制御装置において、
     前記パス局部フィルタは、前記局部補間後ツールパスが前記補間区間の始点の前後及び前記補間区間の終点の前後で当該局部補間後ツールパスの前記媒介変数による二次微分値がそれぞれ連続して変化するようなパスとなるように前記ツールパスの前記補間区間を局部補間する、数値制御装置。
  5.  請求項2~4のいずれか1項に記載の数値制御装置において、
     前記パス局部フィルタは、前記補間区間を前後に特定の区間幅ずつ拡大した区間を調整区間として設定し、前記ツールパスのうち隣り合う前記指令点間の部位を補間ブロックとしてそのツールパスから前記調整区間に少なくとも一部が含まれる複数の補間ブロックを選択し、その選択した複数の補間ブロックのそれぞれについて補間処理を行うことによってその補間処理後の各補間ブロックを示す補間後関数を求め、その求めた各補間ブロックの補間後関数を積算することによって補間後積算関数を求め、その求めた補間後積算関数のうち前記補間区間に相当する区間を抜き出すことによって、前記補間区間内の前記補間対象点において不連続となっている微分値の変化が連続的な変化となるように補間した誤差付き補間パスを求める局部補間部と、その局部補間部によって求められた前記誤差付き補間パスの前記補間区間の始点に対応する値が局部補間していない前記ツールパスの前記補間区間の始点の値に等しくなり、かつ、その誤差付き補間パスの前記補間区間の終点に対応する値が局部補間していない前記ツールパスの前記補間区間の終点の値に等しくなるように当該誤差付き補間パスを補正し、その補正後の補間パスを前記ツールパスの前記補間区間と置換する誤差補正部とを含み、
     前記局部補間部は、前記補間ブロック内の前記媒介変数が異なる複数の第1位置をそれぞれ中央とし且つ特定の区間幅をそれぞれ有する複数の積分区間を設定し、その設定した各積分区間内の前記媒介変数が異なる複数の第2位置での前記ツールパスの前記媒介変数による一次微分値をそれぞれ求め、その求めた各第2位置での一次微分値を、その各第2位置をそれぞれ中央とし且つ前記積分区間と等しい区間幅をそれぞれ有する各分配区間内に特定の分配関数に基づいて分配した場合に得られる分配後微分関数を前記積分区間にわたって積分し、その積分によって前記補間後関数を求める、数値制御装置。
  6.  請求項1~5のいずれか1項に記載の数値制御装置において、
     前記パス局部フィルタは、前記ツールパスに前記補間対象点が複数存在し、隣り合う前記補間対象点の前記補間区間同士が重複している場合には、それら重複する補間区間のうち最も前記ツールパスの始点寄りに位置する補間区間の始点から最も前記ツールパスの終点寄りに位置する補間区間の終点までを1つの補間区間として、その補間区間内の前記ツールパスを局部補間する、数値制御装置。
PCT/JP2012/004799 2011-07-29 2012-07-27 数値制御装置 WO2013018338A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP12819322.4A EP2738635A4 (en) 2011-07-29 2012-07-27 DIGITAL CONTROL DEVICE
US14/235,839 US20140195037A1 (en) 2011-07-29 2012-07-27 Numerical control device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2011167231A JP5417392B2 (ja) 2011-07-29 2011-07-29 数値制御装置
JP2011-167231 2011-07-29

Publications (1)

Publication Number Publication Date
WO2013018338A1 true WO2013018338A1 (ja) 2013-02-07

Family

ID=47628889

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/004799 WO2013018338A1 (ja) 2011-07-29 2012-07-27 数値制御装置

Country Status (4)

Country Link
US (1) US20140195037A1 (ja)
EP (1) EP2738635A4 (ja)
JP (1) JP5417392B2 (ja)
WO (1) WO2013018338A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5556971B1 (ja) * 2013-05-14 2014-07-23 三菱電機株式会社 数値制御装置

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6017509B2 (ja) * 2014-10-22 2016-11-02 ファナック株式会社 運転停止時に送り速度を円滑に変更する数値制御装置
JP6257796B2 (ja) * 2014-10-29 2018-01-10 株式会社牧野フライス製作所 工具経路の生成方法および工作機械
JP6276234B2 (ja) * 2015-10-15 2018-02-07 ファナック株式会社 オーバライドスイッチによるプログラムチェック機能を備えた数値制御装置
JP6342942B2 (ja) * 2016-04-22 2018-06-13 ファナック株式会社 数値制御装置および原因解析方法
CN105929796B (zh) * 2016-05-03 2018-07-06 天津大学 三轴数控系统高速高精度小线段插补协处理器及其运行方法
WO2018042704A1 (ja) * 2016-09-02 2018-03-08 三菱電機株式会社 指令値生成装置
JP6396389B2 (ja) * 2016-10-27 2018-09-26 ファナック株式会社 サーボ制御装置
JP6386511B2 (ja) * 2016-10-28 2018-09-05 ファナック株式会社 工具経路生成装置、工具経路生成方法及び工具経路生成プログラム
CN108375957B (zh) * 2017-01-31 2021-03-26 兄弟工业株式会社 数值控制装置和控制方法
JP6991774B2 (ja) * 2017-08-01 2022-01-13 シチズン時計株式会社 工作機械の制御装置および工作機械
JP6816704B2 (ja) * 2017-11-09 2021-01-20 オムロン株式会社 指令値補間装置及びサーボドライバ
JP7070026B2 (ja) * 2018-04-23 2022-05-18 ブラザー工業株式会社 工作機械
CN108829032B (zh) * 2018-05-31 2021-02-26 深圳市恒晨电器有限公司 一种高精度控制的插补方法
JP7037457B2 (ja) * 2018-09-05 2022-03-16 オークマ株式会社 数値制御装置および数値制御方法
JP2020095316A (ja) * 2018-12-10 2020-06-18 ファナック株式会社 数値制御装置
JP7022090B2 (ja) * 2019-03-07 2022-02-17 ファナック株式会社 工作機械の数値制御システム
EP4246257A1 (de) 2022-03-18 2023-09-20 Siemens Aktiengesellschaft Geschwindigkeitsabhängiges überschleifen zwischen sätzen mit unstetigen bahnverläufen

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619528A (ja) * 1992-06-30 1994-01-28 Sony Corp 加減速パターン生成装置及び加減速パターン生成方法、並びにこれに用いる逆運動学問題の解法と時間軸補正方法
JPH11282517A (ja) * 1998-03-12 1999-10-15 Internatl Business Mach Corp <Ibm> マルチプライアを利用したパルス制御の方法およびシステム
JP2001216008A (ja) * 2000-02-04 2001-08-10 Mitsubishi Electric Corp ロボット制御方法
JP2008225825A (ja) 2007-03-13 2008-09-25 Shin Nippon Koki Co Ltd 数値制御装置
WO2010032284A1 (ja) * 2008-09-16 2010-03-25 新日本工機株式会社 数値制御装置
JP2010140312A (ja) 2008-12-12 2010-06-24 Fanuc Ltd 5軸加工機用数値制御装置
JP2010182157A (ja) 2009-02-06 2010-08-19 Shin Nippon Koki Co Ltd 補正装置及び数値制御装置
JP2012032960A (ja) * 2010-07-29 2012-02-16 Shin Nippon Koki Co Ltd 数値制御装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320026A (ja) * 1997-05-20 1998-12-04 Mitsubishi Electric Corp 数値制御装置及び方法
JP3668665B2 (ja) * 2000-03-09 2005-07-06 三菱電機株式会社 数値制御装置
DE60230009D1 (de) * 2001-10-16 2009-01-08 Fanuc Ltd Numerische Steuerung
JP2003140715A (ja) * 2001-10-30 2003-05-16 Toshiba Mach Co Ltd 数値制御装置
JP2004326618A (ja) * 2003-04-25 2004-11-18 Star Micronics Co Ltd 工作機械の数値制御装置
WO2013038543A1 (ja) * 2011-09-15 2013-03-21 三菱電機株式会社 加工プログラム作成装置、数値制御装置、加工システム、加工プログラム作成方法、数値制御方法、および加工プログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619528A (ja) * 1992-06-30 1994-01-28 Sony Corp 加減速パターン生成装置及び加減速パターン生成方法、並びにこれに用いる逆運動学問題の解法と時間軸補正方法
JPH11282517A (ja) * 1998-03-12 1999-10-15 Internatl Business Mach Corp <Ibm> マルチプライアを利用したパルス制御の方法およびシステム
JP2001216008A (ja) * 2000-02-04 2001-08-10 Mitsubishi Electric Corp ロボット制御方法
JP2008225825A (ja) 2007-03-13 2008-09-25 Shin Nippon Koki Co Ltd 数値制御装置
WO2010032284A1 (ja) * 2008-09-16 2010-03-25 新日本工機株式会社 数値制御装置
JP2010140312A (ja) 2008-12-12 2010-06-24 Fanuc Ltd 5軸加工機用数値制御装置
JP2010182157A (ja) 2009-02-06 2010-08-19 Shin Nippon Koki Co Ltd 補正装置及び数値制御装置
JP2012032960A (ja) * 2010-07-29 2012-02-16 Shin Nippon Koki Co Ltd 数値制御装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2738635A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5556971B1 (ja) * 2013-05-14 2014-07-23 三菱電機株式会社 数値制御装置
WO2014184820A1 (ja) * 2013-05-14 2014-11-20 三菱電機株式会社 数値制御装置
US9851709B2 (en) 2013-05-14 2017-12-26 Mitsubishi Electric Corporation Numerical control device

Also Published As

Publication number Publication date
EP2738635A1 (en) 2014-06-04
US20140195037A1 (en) 2014-07-10
JP5417392B2 (ja) 2014-02-12
EP2738635A4 (en) 2015-01-28
JP2013030103A (ja) 2013-02-07

Similar Documents

Publication Publication Date Title
JP5417392B2 (ja) 数値制御装置
JP5417391B2 (ja) 数値制御装置
JP5417390B2 (ja) 数値制御装置
US8560112B2 (en) Numerical controller with function to correct movement path of machining program
KR101485932B1 (ko) 공구경로의 생성방법 및 생성장치
KR101928419B1 (ko) 공구경로의 생성방법 및 공작기계
JP5431987B2 (ja) 工作機械の制御装置
JP5331068B2 (ja) 数値制御装置
US20140214193A1 (en) Machining program creating device numerical control device, machining system, machining program creating method, numerical control method, and machining program
JP4891528B2 (ja) 加工時間算出装置
JP5850996B1 (ja) 補間後加減速を考慮したコーナ経路生成機能を有する数値制御装置
US9715225B2 (en) Numerical controller for smoothing tool path in operation based on table format data
US20170003672A1 (en) Numerical controller performing 3-dimensional interference check corresponding to feedrate change
US10037021B2 (en) Numerical controller performing speed control with curvature and curvature change amount
JP5399537B2 (ja) 数値制御装置
JPH0378006A (ja) 数値制御装置の加減速制御方法
US20170108847A1 (en) Numerical controller performing positioning for avoiding interference with workpiece
JP2008117032A (ja) 加工制御装置およびそのプログラム
CN112865750A (zh) 基于fir滤波器的数控系统倍率变化平滑控制方法及装置
JP5439548B2 (ja) 加工指令変換プログラム、記憶媒体及び加工指令変換装置
JP4982170B2 (ja) 加工制御装置および加工制御プログラム
JP3902353B2 (ja) 数値制御装置
WO2023073934A1 (ja) 数値制御装置
JP2012078892A (ja) 数値制御装置、移動経路修正方法、移動経路修正プログラム、及び記憶媒体
JPH09128029A (ja) データ補間装置

Legal Events

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

Ref document number: 12819322

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012819322

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 14235839

Country of ref document: US