Numerical controller having corner path generation function in consideration of post-interpolation acceleration/deceleration
09829876 · 2017-11-28
Assignee
Inventors
Cpc classification
G05B19/40937
PHYSICS
Y02P90/02
GENERAL 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
G05B2219/34098
PHYSICS
G05B19/19
PHYSICS
International classification
G05B19/19
PHYSICS
Abstract
A numerical controller controls a machine tool with a plurality of control axes so as to compensate an inward turning error by inserting a curved movement path into a corner section between two consecutive blocks. An estimated inward turning amount generated as the corner section is subjected to post-interpolation acceleration/deceleration is calculated based on the radius of curvature of the curve and allowable accelerations of the axes of the machine tool, and such a curved movement path that its inward turning amount has a value obtained by subtracting the estimated inward turning amount from a tolerance is inserted into the corner section if the sum of the estimated inward turning and the inward turning amount of the curve is larger than the tolerance.
Claims
1. A numerical controller which controls a machine tool comprising a plurality of control axes so as to compensate an inward turning error by inserting a curved movement path into a corner section between two consecutive blocks in a machining program comprising a plurality of blocks, the numerical controller comprising: non-transitory computer readable memory; one or more hardware processors coupled to the non-transitory memory and configured to read instructions from the non-transitory memory to cause the numerical controller to perform operations comprising: determining that an actual inward turning amount, S.sub.a, is greater than the allowable inward turning amount, l.sub.s, at the corner section, wherein S.sub.a is the sum of the maximum allowable inward turning of a curve, l, and an inward turning amount, S, for circular arc interpolation, wherein S.sub.a being greater than ls indicates that the machine tool exceeds its tolerance; inserting the curved movement path into the corner section with a new allowable inward turning amount, l.sub.s′, wherein l.sub.s′ is computed as the difference between l.sub.s and S, and l.sub.s′ is greater than or equal to an inward turning amount of the curve, l′, wherein a new actual inward turning amount, S.sub.a′, is equal to the sum of l′ and an inward turning amount due to post-interpolation acceleration/deceleration, S′, and S.sub.a′ is less than the l.sub.s at the corner section; and controlling the machine tool according to the inserted curved movement path.
2. The numerical controller according to claim 1, wherein S is calculated as follows:
S={( 1/24)T.sub.1.sup.2+(½)T.sub.2.sup.2}(v.sup.2/r), where T.sub.1 is a post-interpolation acceleration/deceleration time constant, T.sub.2 is a servomotor time constant, v is a feed speed, and r is a circular arc radius.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) The above and other objects and features of the present invention will be obvious from the ensuing description of embodiments with reference to the accompanying drawings, in which:
(2)
(3)
(4)
(5)
(6)
(7)
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
(8)
(9) A CPU 11 is a processor for generally controlling a numerical controller 100 and it reads a system program stored in a ROM 12 through a bus 20 and generally controls the numerical controller 100 according to the read system program. A RAM 13 is loaded with temporary calculation data, display data, and various data input by an operator through a display/MDI unit 70.
(10) A CMOS memory 14 is constructed as a nonvolatile memory, which is backed up by a battery (not shown) so that it can maintain its storage state even after the numerical controller 100 is powered off. The CMOS memory 14 is stored with a machining program read through an interface 15, a machining program input through the display/MDI unit 70, and the like. Further, the ROM 12 is preloaded with various system programs for the execution of edit-mode processing required for the creation and editing of the machining programs and processing for automatic operation.
(11) Various machining programs, such as those for carrying out the present invention, can be input through the interface 15 or the display/MDI unit 70 and stored in the CMOS memory 14.
(12) The interface 15 enables connection between the numerical controller 100 and an external device 72, such as an adapter. The machining programs, various parameters, and the like are read from the external device 72. Further, the machining programs edited in the numerical controller 100 can be stored into external storage means through the external device 72. A programmable machine controller (PMC) 16 outputs signals to auxiliary devices (e.g., an actuator such as a robot hand for tool change) of a machine tool through an I/O unit 17, thereby controlling them, according to sequential programs in the numerical controller 100. On receiving signals from various switches of a control panel on the body of the machine tool (not shown), moreover, the PMC 16 performs necessary signal processing and then delivers the signals to the CPU 11.
(13) The display/MDI unit 70 is a manual data input device comprising a display, a keyboard, and the like. An interface 18 receives commands and data from the keyboard of the display/MDI unit 70 and delivers them to the CPU 11. An interface 19 is connected to a control panel 71 provided with a manual pulse generator and the like.
(14) Axis control circuits 30 to 34 for individual axes receive axis movement commands from the CPU 11 and output the commands for the individual axes to servo amplifiers 40 to 44. On receiving these commands, the servo amplifiers 40 to 44 drive servomotors 50 to 54 for the individual axes, respectively. The servomotors 50 to 54 incorporate position/speed detectors, individually. Position/speed feedback signals from these position/speed detectors are fed back to the axis control circuits 30 to 34 to carry out position/speed feedback control. A position/speed feedback is not shown in the block diagram of
(15) A spindle control circuit 60 receives a spindle rotation command for the machine tool and outputs a spindle speed signal to a spindle amplifier 61. On receiving this spindle speed signal, the spindle amplifier 61 rotates a spindle motor 62 of the machine tool at a commanded rotational speed, thereby driving a tool.
(16) A position coder 63 is connected to the spindle motor 62 by gears, a belt, or the like. The position coder 63 outputs feedback pulses in synchronism with the rotation of a spindle, and the feedback pulses are read through the bus 20 by the CPU 11.
(17)
(18) The numerical controller 100 comprises a command analysis unit 110, interpolation unit 120, post-interpolation acceleration/deceleration unit 130, and corner path generation unit 140. The command analysis unit 110 analyzes a machining program 200 read from a CMOS memory 14 or the like and converts it into an executable format. The interpolation unit 120 performs interpolation processing based on an executable command output from the command analysis unit 110 and outputs movement commands for the axes. The post-interpolation acceleration/deceleration unit 130 carries out post-interpolation acceleration/deceleration processing for the axis movement commands output from the interpolation unit 120 and carries out drive control for the axes based on the processed axis movement commands.
(19) The corner path generation unit 140, which constitutes a characteristic of the present invention, functions during the analysis processing by the command analysis unit 110. The corner path generation unit 140 calculates a curve in consideration of a inward turning amount due to post-interpolation acceleration/deceleration by corner path generation processing (described later) and inserts the calculated curve into a command path of the machining program.
(20) The following is a description of examples in which the corner path generation processing performed by the corner path generation unit 140 is applied to machine tools for three-axis machining and five-axis machining, individually.
(21) (I) Example of Corner Path Generation Processing Applied to Machine Tool for Three-Axis Machining
(22) In the corner path generation processing of this example, a curve is inserted into a corner section in consideration of the inward turning amount of the movement path generated by post-interpolation acceleration/deceleration processing of a free-form curve. In the corner path generation processing, a curvature radius r at an arbitrary point on the curve is calculated in consideration of the difficulty in the estimation of the inward turning amount due to post-interpolation acceleration/deceleration of the free-form curve in the process of command analysis, and the inward turning amount is estimated on the assumption that the point is on an arc of an imaginary circle with the radius r. The following is a description of a specific procedure.
(23)
(24) If the allowable inward turning amount for the corner section is l.sub.s, as shown in
(25) If maximum allowable accelerations for X-, Y-, and Z-axes that constitute the machine are a.sub.x, a.sub.y, and a.sub.z, respectively, and if axis components of a unit vector m directed to the center of the imaginary circular arc are cos θ.sub.x, cos θ.sub.y, and cos θ.sub.z, then a maximum feed speed v that does not exceed the maximum allowable acceleration for each axis is given by expression (1) as follows:
v=min{F,√(a.sub.min.Math.r)}
(a.sub.min=min{(a.sub.x/cos θ.sub.x),(a.sub.y/cos θ.sub.y),(a.sub.z/cos θ.sub.z)}), (1)
where F and r are a command speed and the circular arc radius, respectively.
(26) If the feed speed, circular arc radius, time constant of post-interpolation acceleration/deceleration, and time constant of the servomotors are v, r, T.sub.1 and T.sub.2, respectively, an inward turning amount S for circular arc interpolation can be approximated by expression (2) as follows:
S={( 1/24)T.sub.1.sup.2+(½)T.sub.2.sup.2}.Math.(v.sup.2/r). (2)
(27) Accordingly, an actual inward turning amount S.sub.a in consideration of even post-interpolation acceleration/deceleration is given by expression (3) as follows:
S.sub.a=l+S. (3)
(28) The value S.sub.a thus obtained causes no problem if it is S.sub.a=1+S≦l.sub.s. If S.sub.a is S.sub.a=1+S>l.sub.s, however, the inward turning amount at the corner section inevitably exceeds its tolerance as a result of post-interpolation acceleration/deceleration. In this case, as shown in
(29) The above is a description of an outline of processing for inserting the curve into the corner section in the corner path generation processing. The following is a description of how a sum S.sub.a′ (=l′+S′) of an inward turning amount l′ of the curve thus obtained and an inward turning amount S′ due to post-interpolation acceleration/deceleration becomes not larger than the allowable inward turning amount l.sub.s at the corner section. The relationship between l′ and l.sub.s (l′≦l.sub.s′) can be represented by expression (4) as follows:
l′≦l.sub.s′=l.sub.s−S. (4)
(30) In general, an inward turning amount due to post-interpolation acceleration/deceleration causes a problem when the curvature radius of an imaginary circle is small or the command speed is high. If the inward turning amount due to post-interpolation acceleration/deceleration is problematic under these conditions, the feed speed at the corner section, based on expression (1), is given by expression (5) as follows:
v=√(a.sub.min.Math.r) (5)
(31) By applying expression (5) to expression (2), expression (6) can be derived as follows:
S={( 1/24)T.sub.1.sup.2+(½)T.sub.2.sup.2}.Math.a.sub.min. (6)
(32) It can be seen, therefore, that the inward turning amount due to post-interpolation acceleration/deceleration is determined by the allowable acceleration without depending on the curvature radius of the curve or the feed speed. Thus, if unit vectors cos θ.sub.x, cos θ.sub.y, and cos θ.sub.z directed to the centers of the imaginary circular arcs of the curves inserted as l.sub.s and l.sub.s′ into the corner section are substantially invariable, S′ is equal to S, so that expression (7) can be derived as follows by applying S′=S to expression (4):
S.sub.a′=l′+S′<l.sub.s−S+S=l.sub.s. (7)
(33) Accordingly, the inward turning amount S.sub.a′ in consideration of even post-interpolation acceleration/deceleration of the obtained curve is not larger than the allowable inward turning amount.
(34)
(35) As described above, the axis movement path for the case where the curve is inserted by the corner path generation processing applied to the machine tool for three-axis machining finally becomes such a movement path that its inward turning amount affected by post-interpolation acceleration/deceleration falls within a tolerance range. Thus, the machining accuracy of a workpiece can be ensured while suppressing shock on the machine by post-interpolation acceleration/deceleration.
(36) (II) Example of Corner Path Generation Processing Applied to Machine Tool for Five-Axis Machining
(37) This example of the corner path generation processing is applied to a machine tool for five-axis machining that comprises three linear axes (X-, Y-, and Z-axes) and two rotation axes (B- and C-axes).
(38)
(39) When the machine tool of this type is controlled by means of the numerical controller 100, let us assume that a curve is inserted within the range of an allowable inward turning amount for a corner section of each linear axis so that blocks ahead of and behind the corner can be smoothly connected. In this case, the allowable inward turning amount at the corner section of each linear axis and the allowable inward turning amount of each rotation axis are represented by l.sub.sl and l.sub.sr, respectively. Also, the maximum inward turning amount of the linear axis of the inserted curve and that of the rotation axis are represented by l.sub.1 and l.sub.r, respectively.
(40) If maximum allowable accelerations for X-, Y-, Z-, B-, and C-axes that constitute the machine are a.sub.x, a.sub.y, a.sub.z, a.sub.b, and a.sub.c, respectively, and if axis components of a unit vector directed to the center of an imaginary circular arc are cos θ.sub.x, cos θ.sub.y, cos θ.sub.z, cos θ.sub.b, and cos θ.sub.c, a maximum feed speed v that does not exceed the maximum allowable acceleration for each axis is given by expression (8) as follows:
v=min{F,√(a.sub.min.Math.r)}
(a.sub.min=min{(a.sub.x/cos θ.sub.x),(a.sub.y/cos θ.sub.y),(a.sub.z/cos θ.sub.z),(a.sub.y/cos θ.sub.b),(a.sub.z/cos θ.sub.c)}) (8)
where F is a command speed and r is the radius of the imaginary circular arc in contact with an arbitrary point on the curve, as in the case of the “(I) Example of Corner Path Generation Processing Applied to Machine Tool for Three-Axis Machining”.
(41) If the feed speed, circular arc radius, time constant of post-interpolation acceleration/deceleration, and time constant of servomotors are v, r, T.sub.1, and T.sub.2, respectively, an inward turning amount S for circular arc interpolation can be approximated by expression (9) as follows:
S={( 1/24)T.sub.1.sup.2+(½)T.sub.2.sup.2}.Math.(v.sup.2/r). (9)
(42) Further, a linear axis component S.sub.l and a rotation axis component S.sub.r of the inward turning amount for circular arc interpolation due to post-interpolation acceleration/deceleration are defined by expression (10) as follows:
S.sub.l=√(cos.sup.2 θ.sub.x+cos.sup.2 θ.sub.y+cos.sup.2 θ.sub.z).Math.S,
S.sub.r=max{|cos θ.sub.b|,|cos θ.sub.c|}.Math.S. (10)
(43) Accordingly, an actual inward turning amount in consideration of even post-interpolation acceleration/deceleration consists of a linear axis component S.sub.al (=l.sub.l+S.sub.l) and a rotation axis component S.sub.ar (=l.sub.r+S.sub.r).
(44) There is no problem if l.sub.l+S.sub.l≦l.sub.sl and l.sub.r+S.sub.r≦l.sub.sr are given. If l.sub.l+S.sub.l>l.sub.sl or l.sub.r+S.sub.r>l.sub.sr is given, however, the inward turning amount at the corner section inevitably exceeds its tolerance as a result of post-interpolation acceleration/deceleration. In this case, a curve is inserted anew into the corner section with the allowable inward turning amount at the corner section of each linear axis set to l.sub.sl′=l.sub.sl−S.sub.l if l.sub.1+S.sub.l>l.sub.sl is given or with the allowable inward turning amount at the corner section of each rotation axis set to l.sub.sr′=l.sub.sr−S.sub.r if l.sub.r+S.sub.r>l.sub.sr is given.
(45) If l.sub.sl′=l.sub.sl−S.sub.l<0 or l.sub.sr′=l.sub.sr−S.sub.r<0 is given, on the other hand, the inward turning amount due to post-interpolation acceleration/deceleration inevitably exceeds the allowable inward turning amount even though the inward turning amount of the curve is zero. Therefore, the inward turning amount due to post-interpolation acceleration/deceleration is restricted to the allowable inward turning amount by appropriately reducing the feed speed at the corner section.
(46) In this way, the corner path generation processing based on the insertion of the curve performed by the numerical controller according to the present invention can be applied to the machine tool for five-axis machining.