POSITION DEVIATION CORRECTION METHOD OF WORKING POINT

Abstract: A maximum value -A of a position deviation, which is generated by deflection when a working point is moved in a +X direction, and a movement command D required till a deflection A in a opposite direction is again built up when the working point is reversed in a -X direction under the state where the maximum deflection -A is accumulated, are determined by measurement. Assuming that the deflection proportionally changes from -A to +A while the movement command is outputted by D, that is, while the actual position of the working point moves by D - 2A, a correction value is determined on the basis of the ratio of twice the deflection A with respect to (D - 2A) and the movement command value after the reversing of the moving direction, and this correction value is added to the movement command value and outputted as a movement command value.

Description: The present invention relates to a method for correcting a discrepancy, as caused by the deflection of a machine, between the commanded position and the actual position of a machining point. When a delay of action occurs caused by the deflection of a machine between the drive point and the actual machining point of a driven member to which force from a drive source is applied, there arises a problem that an inconsistency of action occurs between the machining point, as commanded by a control system, and the actual machining point. This positional displacement due to the deflection is conspicuous in an industrial machine having a distance between the drive point and the machining point, such as a wire electric discharge machine. Therefore, a representative example of electric wire electric discharge machine is schematically shown in Fig. 1. The components of this wire electric discharge machine not described with reference numerals are omitted from Fig. 1. A column 2, fixed on the bed 1 of the wire electric discharge machine, has UV axes and Z axis 3 fixed on its upper end and an arm for supporting a lower wire guide fixed on its intermediate portion. The arm extends through an arm cover 4 which is fixed on the column 2. On the bed 1, there is mounted a cross table 5, which can be moved in the directions of X- and Y-axes. On the cross table 5, there are mounted a work carriage and a machining bath 6 for dipping the workpiece. Between the upper wire guide, disposed at the leading end of the Z-axis, and the lower wire guide, disposed at the leading end of the arm, there is a wire electrode 7 extended for performing the electric discharge machining. The arm, integrally fixed to the column 2, is extended passing through the arm cover 4 into the machining bath 6, and the workpiece, fixed on the workpiece carriage mounted on the machining bath 6 and the cross table 5, is movable relative to the arm, so that it is necessary to ensure that the machining liquid can be prevented from leaking at the joint between the arm and the machining bath 6 during the aforementioned relative movements. The cross table 5, the machining bath 6 and the workpiece are moved in the X-Y plane by driving and controlling an X-axis driving servo motor Mx and a Y-axis driving servo motor My through servo control circuits 12 and 13 of a control system 11. The wire electric discharge machine body is provided with a jet nozzle at the leading end of the Z-axis, a machining liquid circulator for supplying the machining liquid to the machining bath 6, various motors for feeding the wire, and a discharge machining power source for applying the machining voltage to the wire electrode 7. These equipments are individually driven and controlled by the control system 11 through a machining liquid control circuit 14, a wire control circuit 15 and a discharge control circuit 16. The control system 11 is provided with a CPU 19 for the CNC to drive and control the individual axes of the discharge machining apparatus on the basis of the system program, as stored in a ROM 17, and a machining program, as stored in a RAM 18. The CNC CPU 19 is connected with the aforementioned servo control circuits 12 and 13 through a bus 20. The CNC CPU 19 outputs distributed pulses to the servo control circuits 12 and 13 for the individual axes to drive the servo motors of individual axes, move the cross table 5, and establish the discharge for the machining between the face of the workpiece, as carried on the workpiece carriage of the machining bath 6, and the wire electrode 7. A CPU 21 for the PMC drives and controls the discharge control circuit 16, the wire control circuit 15 and the machining liquid control circuit 14 in accordance with the system program, stored in the ROM 17, and the power supply conditions and the machining conditions stored in the RAM 18. The CNC CPU 19 is connected through a display control circuit 22 to a manual data input unit 23 with a display, so that the machining program and the power supply and machining conditions can be manually inputted. Furthermore, the machining route and the setting conditions can be monitored in the display screen of the manual data input unit 23. With reference to the schematic diagram of Fig. 2, here will be described the detail of the joint portion between the arm cover 4 and the machining bath 6 in the electric wire electric discharge machine of Fig. 1. Incidentally, the components of the joint portion not denoted with reference numerals are omitted from Fig. 2. On the back of the machining bath 6, there is mounted a seal plate 9, which is provided with a flange 8 for fixing the arm cover 4. This seal plate 9 is fitted to the back of the machining bath 6 by being pressed thereto with a number of bearings 10 so as to stop the hole, which is formed in the back of the machining bath 6 and extends in the X direction. A seal base is mounted on the outer circumference of the hole to prevent the leakage of the machining liquid from around the seal plate 9. On the inner circumference of the flange 8, there is fitted a V-packing for preventing the leakage of the machining liquid from around the arm extending therethrough. As a result, when the cross table 5 is driven to move the machining bath 6 and the workpiece, especially when the machining bath 6 is moved in the X-axis direction, the seal plate 9, pressed to be fitted against the machining bath 6, will be dragged to move together with the machining bath 6 by the sliding resistance acting therebetween. Thus, a bending moment in the X-axis direction occurs to cause a deflection in the transmission mechanism, comprising the cross table 5 and the ball screws/nuts for driving the cross table 5, and in the joint between the transmission mechanism and the cross table 5 (hereinafter referred to together as the "workpiece drive unit"), so that the actual machining point delays from the commanded machining point. In this case, the machining point is a position where the workpiece and the wire electrode 7 confront each other. It is assumed, for example, that no external force in the X-axis direction is exerted upon the workpiece drive unit when the machining point commanded by the control system is located at (x, y) = (x1, y1), and that a command is given to move the wire electrode 7 from this state to the position (X, Y) = (x1+a, y1) (a>0) (although the actual movement is made by the cross table 5). In such a case, the aforementioned deflection occurs in the workpiece drive unit, causing the workpiece on the workpiece carriage of the cross table 5 to make a delayed movement. If the positional displacement due to this deflection is given as Ca' (Ca'>0), the actual machining point is located at (x, y) = (x1+a -Ca', y1) so that the delay of Ca' occurs from the commanded machining point (x, y) = (x1+a, y1). The maximum A of this delay Ca' is dependent on the magnitude of the sliding resistance between the machining bath 6 and the seal plate 9 and by the rigidity and span of the individual members of the workpiece drive unit, and will not exceed the delay Ca' no matter how far the machining point is moved. In other words, while the force to be applied in the +X direction from the machining bath 6 to the seal plate 9 is lower than the sliding resistance between the seal plate 9 and the machining bath 9, the seal plate 9 moves together with the machining bath 6 to increase the deflection Ca' of the workpiece drive unit in the -X direction. However, when the deflection of the workpiece drive unit increases until the reaction in the +X direction exceeds the sliding resistance between the seal plate 9 and the machining bath 6, a slip occurs between the seal plate 9 and the machining bath 6 to allow only the machining bath 6 to move. In short, the value of the deflection Ca' corresponding to the reaction, as acting in the +X direction when the slip occurs, takes the maximum value A. As the correction method for correcting the positional displacement of a machine, there is known the pitch error correction for correcting the positional displacement caused by the pitch error of the feed screw, or the backlash correction for correcting the play of the power transmission mechanism occurring at the time of reversed movement of a driven member. However, neither of these methods can be applied to the correction of the positional displacement which is caused by the deflection. More particularly, pitch error correction determines the correction amount univocally according to the present position (i.e., the present position of the driven member with respect to the feed screw) of the driven member such as the cross table 5 in the mechanical coordinate system, so that it cannot cope with the mechanical deflection varying according to the moving distance after the reversal when the movement of the driven member is reversed at an indefinite position. On the other hand, backlash correction for outputting, when reversing the movement of the driven member, the amount of correction for eliminating the play to be caused at the time of the change of the rotational direction of the gears or the like cannot cope with the deflection which gradually varies with the moving distance from the position at which the movement is reversed. In short, there has never been proposed an appropriate correction method for eliminating the positional displacement caused by the deflection of the machine, although an attempt has been made to reduce error caused by displacement or distortion in a machine tool, as described in DE 4243393A1. An object of the present invention is to provide a method for correcting positional displacement of a machining point, capable of solving the aforementioned problems of the prior art by effectively correcting the positional displacement of a machining point due to deflection of the machine, to move the machining point to the command position. According to one aspect of the invention there is provided a method of correcting the positional displacement of a machining point of a driven member relative to a command position, wherein the force of a drive source is applied to said driven member and said positional displacement arises due to the deflection of machine components, the method comprising steps of: predetermining the maximum positional displacement A of the actual machining point with respect to the corresponding command position; after a reversal of the moving direction of the machining point, determining a correction movement section D, wherein the correction movement section D has a length corresponding to the commanded position increment required for the actual positional displacement (Ca'), measured between the actual machining point and the corresponding command position, to reach said maximum positional displacement A; determining a correction amount for correcting said command position on the basis of said maximum positional displacement A and said length of said correction movement section D; and adding said determined correction amount to said command position, thereby to output the resultant value as a corrected command position value. According to another aspect of the invention there is provided a method of correcting the positional displacement of a machining point, said positional displacement arising due to the deflection of components of a machine, the method comprising steps of: determining, while the machining point is positionally driven in a first direction, the maximum positional displacement A (where A≻0), between the actual machining point and a command position issued by a CNC; driving the machining point in said first direction with said maximal positional displacement A; using said command position to stop the driving of said machining point and subsequently to drive it in a second direction, opposite to said first direction, by issuing a reversing command; determining the increment D (where D≻0) of said command position in said second direction, measured from the issuing of the reversing command, required for the actual positional displacement (Ca') between the actual machining point and the command position to reach said maximal positional displacement A for movement in said second direction, and during a time period after the issuing of the reversing command and before the increment of the command position in the second direction reaches D-2A (where D-2A≻0), making a correction of 2A to the command position. In a particular embodiment of a machine where a positional displacement is caused by a mechanical deflection between a drive point, and a machining point of a driven member to which the force of a drive source is applied, the maximum positional displacement of the machining point with respect to the drive point may be predetermined; a correction section for correcting the positional displacement in the movement of the drive point after reversing the moving direction may be determined; a memory means for storing a correction value corresponding to the positional displacement may be provided; at a reversal of moving direction, a correction value may be determined on the bases of a position in the determined correction section and a position in the correction section corresponding to the maximum positional displacement and a movement command value; the difference between the correction value, and the correction value as stored in the memory means, may be added to the movement command value thereby to output the resultant value as a movement command value; the determined correction value may be updated and stored in the memory means; and the movement command value may be directly outputted as a movement command value when the absolute value of the correction value, as stored in the memory means, becomes equal to the maximum positional displacement. Preferably, the movement section of the drive point between the point at which its delay or positional displacement is at a maximum and the movement of the drive point is reversed, and the point at which the movement of the drive point is reversed again and its delay or positional displacement has become a maximum, is measured and the measured movement section is treated as the correction period. Even when deflection occurs during the movement or reversal of the machining point in individual portions of the machine due to the loads of disturbances such as insufficient rigidities or sliding resistance of the components of the machine when there is a considerable distance between the drive point and the point of action, the positional displacement of the machining point due to the deflection can easily be eliminated only by processing designed for the drive control. The methods as hereinbefore described may be especially effective when applied to a wire electric discharge machining apparatus in which deflection is apt to occur in the arm or workpiece drive unit for holding the wire electrode, due to sliding resistance caused by movement of the machining bath. Also, the methods are capable of effectively correcting positional displacement caused by the deflection, which has been unable to be eliminated by the backlash correction or the pitch error correction of the prior art, so that a round or elliptical hole can reliably be formed by reversing the moving directions of the individual axes. Moreover, the present method dispenses with the need of increasing the rigidities of the components of the machine so that, with this method, industrial machines having an excellent positioning accuracy can be provided at low costs. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a block diagram schematically showing a wire electric discharge machine to which the method of the present invention is applied, and construction of a control system for the machine; Fig. 2 is a perspective view schematically showing a jointing portion between the arm and the machining bath in the electric wire electric discharge machine, as shown in Fig. 1; Fig. 3 is diagram for explaining the extent and direction of a positional displacement of the actual machining point caused by the deflection of the machine, in response to a movement command of the CNC; Fig. 4 is a diagram illustrating a relation between the positional displacement and a corrected value in response to a movement command when this command contains a reversal command; Fig. 5 is a diagram illustrating a relation between the positional displacement and a corrected value in response to the movement command when this command contains the reversal command and when the reversing command is received again after a slight movement from the start of the reversal; Fig. 6 is a diagram illustrating a relation between the movement command for the movement after the reversal and the correction to be made to the movement command; Fig. 7 is a flow chart schematically showing an initialization processing in a first embodiment of the present invention; Fig. 8 is a flow chart schematically showing a correction processing in the first embodiment; Fig. 9 is a flow chart schematically showing an initialization processing in a second embodiment of the present invention; and Fig. 10 is a flow chart schematically showing a correction processing in the second embodiment. BEST MODES FOR CARRYING OUT THE INVENTION A method for correcting the positional displacement of a machining point according to the present invention will be described when it is applied to an electric wire electric discharge machine, as shown in Figs. 1 and 2. The principle of the positional displacement correcting method in the present embodiment will be described with reference to Figs. 3 to 5. Fig. 3 schematically illustrates the positional displacement which is caused by the deflection of a workpiece drive unit when the machining point is once moved in a direction of +X and then reversed in the direction of -X. In Fig. 3, blank circles indicate the commanded positions at which commands are given from the control system, and solid circles indicate the actual positions of machining point, that is, the positions of the wire electrode 7. At the position of a machining point S, as shown in Fig. 3, it is assumed that the workpiece drive unit has already been deflected to a maximum by the preceding movement in the +X direction thereby to cause a maximum positional displacement A between the commanded position and the machining point. It is also assumed that the pitch error correction of the feed screw for driving the cross table 5 and the backlash correction of the power transmission mechanism between the servo motor Mx and the cross table 5 are executed completely. The movement of the machining point (i.e., the wire electrode 7) in the +X direction is actually the movement of the cross table 5 in the -X direction. The maximum value A of the positional displacement is dependent, as already described in connection with the prior art, on the magnitude of the sliding resistance between the machining bath 6 and the seal plate 9 and on the rigidity, span and the like of the workpiece drive unit. Thus, the delay Ca' of the actual position of the machining point from the commanded position will never exceed the value A no matter how far the machining point is moved from the machining point S, as shown in Fig. 3, in the +X direction. In other words, the value of the delay Ca' is always equal to the maximum A in the section from S to T existing before the machining point reaches a reversal point T. Here, it is assumed that the moving direction of the machining point is reversed at a commanded position U (or the actual position T) from the +X direction to the -X position. In this case, the reversal of the servo motor Mx for driving on the X axis can instantly be started by the reversal of the movement command from the control system. As described above, however, the deflection, Ca' = A, in the -X direction has already been accumulated. Therefore, even if the servo motor Mx is reversed, the deflection Ca' is only gradually eliminated at first and will not make a large difference (i.e., a movement matching the command) between the actual position T (i.e., the reversal starting position) of the machining point and the actual position T' (i.e., the position just. after the reversal). In other words, there are relations such as one between the commanded position U and the actual position T and one between a commanded position V and the actual position T' as shown in Fig. 3. As the machining point moves farther in the -X direction beginning to cause the deflection in the opposite +X direction in the workpiece drive unit, the positional displacement of the machining point from the commanded position gradually appears as the delay Ca' in the opposite direction. This positional displacement is exemplified by a relation between a commanded position F and an actual position G, as shown in Fig. 3. Since the magnitude of the sliding resistance between the machining bath 6 and the seal plate 9 and the rigidity and span of the workpiece drive unit are always constant, even when the machining point is moved in the -X direction, the value )f the positional displacement Ca' finally reaches the maximum A as in the movement in the direction +X. This is a relation between a commanded position H and an actual position P, as shown in Fig. 3. Even when the machining point is farther moved from this position in the -X direction, the positional displacement Ca' will not exceed the value A. The movement of the machining point (i.e., the wire electrode 7) in the -X direction is equivalent to the movement of the cross table 5 in the +X direction. The amount of movement command D till the positional displacement Ca' reaches again the maximum A after the start of reversal, and the maximum A of the positional displacement Ca' have to be experimentally determined in advance. Consequently, when the workpiece drive unit is deflected to a maximum in the -X direction to accumulate the positional displacement Ca' to the maximum A, the correctional value required for moving the machining point in the +X direction is +A [e.g., the movement section from the actual position S to the actual position T (the commanded position U) in Fig. 3] with respect to the commanded position. On the other hand, when the workpiece drive unit is deflected to a maximum in the +X direction to accumulate the positional displacement Ca' to the maximum A, the correction value, as required for moving the machining point in the -X direction is -A [e.g., the movement section from the actual position P (the commanded position H) to the actual position J with respect to the commanded position]. Therefore, under the condition shown in Fig. 3, assuming that the delay Ca' due to the deflection in the reversed movement section from the actual position T (the commanded position U) to the actual position P (the commanded position H) changes from -A to +A in proportion to the movement command (the movement of the servo motor Mx), when the moving direction of the machining point is reversed from the +X direction to the -X direction in the state where the workpiece drive unit is deflected to a maximum in the -X direction to accumulate the positional displacement Ca' to the maximum A, that is, in the state where the correction is made by adding the correction value +A to the commanded position thereby to effect the movement in the +X direction, the correction value -2A may be outputted while the machining point is being actually moved from the actual position T to the actual position P in this reversed movement section, that is, while the backward positional displacement is accumulated to A after the start of the reversal. In other words, as exemplified in Fig. 3, when the correction value is outputted by -2A while the distributed pulses after the reversal, based upon the machining program, are outputted by -(D-2A), the amount of distributed pulses to be actually outputted is -(D-2A)-2A = -D (corresponding to the section of U to H), and the real movement at this time is -(D-A) [corresponding to the section of T to P], so that a complete coincidence is achieved between the movement command of -(D-2A) by the distributed pulses after the reversal, based upon the machining program, and the real movement of -(D-2A) of the machining point. Contrary to the above, when the moving direction of the machining point is reversed from the -X direction to the +X direction in the state where the workpiece drive unit is deflected to a maximum in the +X direction to accumulate the positional displacement Ca' to the maximum A, that is, in the state where the correction is made by adding the correction value -A to the commanded position, the correction value +2A may be outputted while the machining point is moved by (D-2A), an actual amount of movement. Fig. 4 shows a relation between the correction value (by a solid line) and a delay (by a broken line) is illustrated for each of the case where the moving direction of the machining point is reversed from +X to -X in the state where the correction is made by adding the correction value A to the commanded position against the maximum deflection of the workpiece drive unit in the -X direction, and the case where the moving direction of the machining point is reversed from -X to +X in the state where the correction is made by adding the correction value -A to the commanded position against the maximum deflection of the workpiece drive unit in the +X direction. As shown in Fig. 4, if it is assumed that the delay changed from -A to +A in proportion to the movement command, the sum of the delay, -A to +A, and the correction value +A to -A, is always zero so that the actual position of the machining point always coincides with the commanded position. Here, Fig. 6 shows a relation between the commanded end position of movement and the correction value Ca' by setting the correction value, corresponding to the commanded end position of movement after the reversal, to Ca'. Fig. 6 illustrates the accumulated correction (or the correction value Ca') as to the correctional section (D-2A), where the number of the subsequent distributed pulses after the reversal is L, by setting the distributed pulse number to "0" when the moving direction of the machining point is reversed from -X to +X in the state where the correction is made by adding the correction -A to the commanded position against the maximum deflection of the workpiece drive unit at the time of movement of the machining point in the -X direction. Therefore, if it is assumed that the initial value Ca of the correction value Ca' at the reversal from - X to +X is -A (at the start of the reversal), and that the amount of movement (or the distributed pulse number) in the +X direction with reference to the start position of the reversal is L (L>0) and located in one of the correction sections 0 to (D-2A), the correction value Ca', required when the correction section is located at L, is expressed by the following Formula, as apparent from Fig. 6: Ca'=2A • [L/(D-2A)]-A This means that at the start of the reversal, Ca'=2A•0-A=-A for L=0, and that at the position at which the position L of the correction section is L=(D-2A) to end the correction, that is, when the value of the abscissa in Fig. 6 is (D-2A), Ca'=2A-A=A. As described above, the correction in which the absolute value of the correction value Ca' exceeds A is not necessary, and the correction value ±A is held as it is. Incidentally, at the instant when the position L of the correction section is L=(D-2A)/2, Ca'=2A•(1/2)-A=0, that is, the correction value Ca' takes the value 0. On the other hand, the initial value of the correction value Ca' is +A (at the start of reversal), when the moving direction of the machining point is reversed, from +X to -X in the state where the correction is made by adding the correction value +A to the commanded position, against the maximum deflection of the workpiece drive unit in the -X direction. If the movement in the -X direction with reference to the position, at which the reversal is started, is L'(L'<0), and if the correction required for the movement L' is Ca', L=D-2A+L'. Hence, from Formula (1), Ca' = 2A • [((D-2A+L')/(D-2A)]-A = 2A • [L'/(D-2A)]+A At the start of the reversal, at which the abscissa value L becomes (D-2A) as in Fig. 6, Ca'=2A•0+A=A where the movements L' and L after the reversal can be given as L'=0 and L=D-2A, and, Ca'=2A•0-A=-A where the movements L and L' after the start of reversal can be given as L'=-(D-2A) and L=0. That is, the position L of the correction section is held at (D-2A) after the correction value Ca' took +A, and at "0" after the correction value Ca' took -A. When the reversal is started, the correction value Ca' may be determined by adding the movement L' to the position L to determine the position L of the correction section. Thus, the correction value Ca' can be determined by the movements L and L' after the reversal. Furthermore, Ca'=-2A•(1/2)+A=0, and the correction value Ca' takes the value 0, at the instant when the movement L' after the start of reversal is L'=-(D-2A)/2. As illustrated in Fig. 5, the condition will remain so that the correction value Ca' may be detected according to the foregoing Formula (1), even when the machining point is reversed again, in the stage before the correction value Ca' reaches A or -A after the execution of the reversal, that is, in the stage before the maximum deflection in the backward direction is accumulated in the workpiece drive unit. For example, as shown in Fig. 5, it is assumed that the moving direction of the machining point is reversed again from -X to +X before the correction value Ca' reaches the value -A while the correction processing to be performed at the first reversal of the movement from +X to -X, is made according to Formula (1). In this case, too, the correction value Ca' can be determined by the Formula (1) from the position L of the correction section ranging from 0 to (D-2A) in which the point of the correction value Ca' = Ca = -A is at "0". With reference to Figs. 7 and 8, here will be described the positional displacement correction to be executed by the control system 11 (the CPU 19 for the CNC) of the present embodiment. Fig. 7 shows an initialization process to be executed when the machining point is returned to the mechanical origin, and Fig. 8 shows a correction to be executed at each pulse distribution period. In the present embodiment, the initialization and the correction are executed only for the movement in the direction of X-axis where the deflection is liable to occur in the workpiece drive unit; however, with the structure in which the deflection in the Y-axis direction has to be considered, the processings similar to the following ones are also performed for the Y-axis by determining the maximum deflection Ay in the Y-axis direction and the movement Dy corresponding to the accumulated deflection. For returning to the origin, a command therefor is given in the state where the movement to the origin is large enough to exceed (D-2A). As shown in Fig. 7, the CNC CPU 19, which has outputted the command for return to the origin to the X axis servo motor Mx, stands by (at Step A1) until the servo motor Mx returns to the mechanical origin. The CPU 19 determines (at Step A2) whether the moving direction to return to the origin is positive or negative. When the moving direction to the origin is positive, i.e., the movement in the +X direction, as illustrated in Fig. 3, the CNC CPU 19 sets the maximum correction +A in the correction storage register Ca and (D-2A) in the moving position storage register L for storing the position L of the reversed correction sections 0 to (D 2A), and feeds the servo motor Mx further by +A (at Step A3) to establish the coincidence between the commanded position and the position of the actual machining point. When the moving direction to the origin is negative, i.e., the movement in the -X direction, as illustrated in Fig. 3, the CPU 19 sets -A in the correction storage register Ca and 0 in the moving position storage register L, and feeds the servo motor Mx further by -A (at Step A4) to establish the coincidence between the commanded position and the position of the actual machining point. Incidentally, this feed of +A or -A after returning to the origin is unnecessary when the moving action is controlled in terms of an increment. In short, the correction storage register Ca is a register for storing the present value of the corrected value Ca' and is set with the correction value +A, when the moving direction to the origin is positive to cause a delay in the negative direction, and with the correction value -A, when the moving direction to the origin is negative to cause a delay in the positive direction. At the end of the initialization described above, the machining programs or the like is executed to start the drive controls on the individual axes so that the CNC CPU 19 executes the corrections, as shown in Fig. 8, for each pulse distribution period. The CNC CPU 19, as having started the correction, executes the pulse distribution similar to that of the prior art on the basis of the machining program or the like to determine the distributed pulse number ΔL in the X direction (at Step a1). These values are added to the present position storage register of each axis to update the values of the register of each axis (at Step a2). As in the prior art, the pitch error correction of the feed screw is determined (at Step a3). Naturally, the distributed pulse number ΔL are given signs, i.e., the positive signs for the movement in the +X direction and the negative signs for the movement in the -X direction. Next, the CNC CPU 19 determines (at Step a4) whether or not the moving direction on the X axis is inverted. If there has been no reversal of the moving direction, the register for storing the backlash correction of the power transmission line is set to 0 (at Step a5). It is then determined (at Step a7) whether or not the value L of the movement storage register for storing the moving position after reversal can satisfy that L=0 or L=D-2A, that is, whether or not the machining point is moving in the reversed movement section requiring the correction for the delay. As is clear from Fig. 3 and Fig. 6, the reversed movement section requiring the delay correction lies within the range of 0≤L≤(D-2A). However, when the machining point is moving continuously in the same direction while the workpiece drive unit is already subjected to a maximum deflection |A|, for example, as shown in Fig. 4 and Fig. 5, during the movement in +X direction or -X direction, through which the correction value Ca' becomes +A or -A, the value L of the movement storage register is held to 0 or D-2A, so that, when the result of determination at Step a7 is true, this means that the machining point is moving in the same direction with the workpiece drive unit already subjected to a maximum deflection +A or -A, and thus the correction value Ca' need not be changed. In this case, the correction value Ca' is necessarily at +A or -A. Thus, the CNC CPU 19: sets the incremental correction amount Ci for each pulse distribution period to 0 (at Step a19); determines the movement command to be outputted to the servo motor Mx for the period (at Step a16), by adding the distributed pulse number ΔL in the X direction, as determined at Step a1, the incremental correction 0, as set at Step a19, the pitch error correction, as determined at Step a3, and the backlash correction 0, as set at Step a5; executes the acceleration/deceleration like that of the prior art; and outputs this movement command to the servo control circuit 12 (at Step a18). When the machining point is moved, after returning to the origin in the +X direction, the determination at Step a4 is false and that the determination at Step a7 is true for L=D-2A (with reference to Step A3 of the initialization), so that the value of the incremental correction amount Ci for each pulse distribution period is held at 0. This also applies to the case where the machining point is moved, after the origin restoration, in the -X direction. (1) Reversal of Movements from -X direction to +X direction: When the machining point is moved in the +X direction after the origin restoration in the -X direction, or when the movement is made in the +X direction after the movement in the -X direction beyond the correction section, L=0 and Ca=-A at Step A4 and at later-described Steps a9, a11 and a15. When the reversal in the moving direction is detected at Step a4, the backlash correction of the power transmission line is determined (at Step a6) as in the prior art. Then, the distributed pulse number ΔL (ΔL>0), as determined at Step al, are added to the moving position storage register L, and it is decided (at Steps a9 and a10) whether or not the position L of the correction section or the value of the moving position storage register L is smaller than "0" or larger than (D-2A). When the correction section falls within 0<L<(D-2A), the calculation of Formula (1) is executed to determine the correction value Ca' corresponding to the position L of the correction section (at Step a13). Then, from the value (an absolute amount) of the correction value storage register Ca the determined correction value Ca' (in an absolute amount) is subtracted to determine the incremental correction amount Ci (at Step a14) to be outputted to the servo motor Mx for that period. Then, the correction value Ca' is stored in the correction value storage register Ca (at Step a15) and is updated and stored. Next, the CNC CPU 19 determines the movement command (at Step a16) to be outputted to the servo motor Mx for the period, by adding the distributed pulse number ΔL in the X direction, as determined at Step a1, the incremental correction amount Ci, as determined at aforementioned 14, the pitch error correction, as determined at Step a3, and the backlash correction, as set at Step a6, executes the acceleration/deceleration similar to that of the prior art, and outputs this movement command to the servo control circuit 12 (at Step a18). From the next period, the operations of Steps a1 to a4 are executed. Since the moving direction is not reversed, processing proceeds from Step a4 skips to Step a5, where the backlash correction is set to "0". It is determined at Step a7 whether or not the value of the moving position storage register L is at "0" or (D-2A). When the result of determination is false to indicate the correction section, the foregoing processings of Steps a8 to a18 are executed. From that point on, this processing is executed for each period, and the incremental correction amount Ci for each period is added to the distributed pulse number ΔL so that the correction value Ca' (an absolute value) according to the position L of the correction period is corrected with respect to the moving position. When it is detected, at Step a10, during the executions of the operations of Steps a1 to a5 and a7 to a18 for each period, that the value of the moving position storage register L exceeds (D-2A), this value (D-2A) is latched in the moving position storage register L so that the position L of the correction section is limited to (D-2A), and the processing proceeds to Step a13. When the value of the moving position storage register L, as determined at Step a8, is at (D-2A), the routine transfers from Step a10 to Step a13. That is, when the correction section (D-2A) is passed, the position L of the correction section is limited to (D-2A), and the correction value Ca' is obtained at Step a13. In this case, L=D-2A, so that Ca'=A, and the incremental correction amount. Ci takes the value (at Step a14) which is obtained by subtracting the correction value, as determined for the preceding period to be stored in the register Ca, from that correction A. Moreover, this correction value A is stored in the correction value storage register Ca (at Step a15), and the processings of the aforementioned Steps a16 to a18 are executed. From the next period, L=D-2A, the routine transfers from Step a7 to Step a19 so long as the moving direction is not reversed. The correction (Ci=0) to the deflection of the workpiece drive unit is not executed, and the pitch error correction is added to the distributed pulse number ΔL to make the movement command (at Steps a16 to a18) to the servo motor Mx. As a result, while the moving direction is not reversed but continues in the +X direction, the processings of Steps a8 to a15 will not be executed, so that L=D-2A and Ca=+A are continued. (2) Reversal of Movements from +X direction to -X direction: When the machining point is moved in the -X direction after returning to the origin in the +X direction or when the movement is made in the -X direction after the movement in the +X direction passing the correction section, as described in the aforementioned case (1), L=D-2A and Ca=+A at Step A3 and at aforementioned Steps a10, a12 and a15 will be set. When the reversal of the moving direction is detected at Step a4, the backlash correction of the power transmission line is determined (at Step a6) as in the prior art. Then, the distributed pulse number ΔL (ΔL>0), as determined at Step a1, is added to the moving position storage register L, to determine the position L of the correction section (at Step a8) thereby to execute the aforementioned processings of Steps a9 to a18. From that point on, the processings of Steps a1 to a5 and a7 to a18 are executed until the value of the moving position storage register L becomes 0. In this case, the distributed pulse number ΔL, as determined at Step a1, is of negative value, so that the value of the moving position storage register L gradually reduces for each period. For instance, the correction value Ca' (and the value of the register Ca), as determined at Step a13, gradually reduces from the initial value +A, and the incremental correction amount Ci turns negative (at Step a14). The negative correction amount Ci is sequentially added to the movement command to the servo motor Mx (at Step a16), thereby sequentially correcting the delay of the machining point. When it is detected at Step a9 that the value "0" is exceeded (although the routine transfers through Step a10 to Step a13 when the value L, as determined at Step a8, is "0"), the routine transfers to Step a11, at which the value "0" is stored in the moving position storage register L. On the basis of this value, the correction value Ca' is determined (Ca'=-A), and the incremental correction amount Ci or the difference between the correction values at this time and the preceding time is determined (at Step a14). The correction value Ca' (=-A) is stored in the register Ca so that the aforementioned processings of Steps a16 to a18 can be executed. From the next period, L=0, so that the routine transfers from Step a7 to Step a19 so long as the moving direction is not reversed. The correction (Ci=0) to the deflection of the workpiece drive unit will not be executed, but the pitch error correction is added to the distributed pulse number ΔL to make the movement command to the servo motor Mx (at Steps a16 to a18). As a result, while the movement is continued in the -X direction without its direction being reversed, the processings of Steps a8 to a15 are not executed to retain L=0 and Ca=-A. (3) Reversal during Movement in Correction Sections 0 to (D-2A): As described above, the moving position storage register L is stored with the position L of the correction section, and the correction storage register Ca is stored with the correction value which has already been corrected. When the reversal of the moving direction is detected, the position of the correction section to be moved by the output of this period is determined at Step a8 by adding the distribution pulse number ΔL, as determined at Step a1, to the position of the correction section stored in the moving position storage register L. The correction value Ca' corresponding to this position is determined at Step a13, and the incremental correction amount Ci is determined by subtracting the correction value up to the preceding period, as stored in the correction value storage register Ca, from the correction value Ca'. This correction amount Ci and the distributed pulse number ΔL are added to be outputted. In this way, the correction value (in an absolute value) corresponding to the position of the correction section is stored, so that the correction value (i.e., the value of Ca) at the time of the reversal of the direction can be acquired. Thus, the correction amount Ci of the present period can be determined by that correction value Ca and the correction value Ca', determined by the position L of the correction section. The subsequent processings are identical with those which are executed in the foregoing cases (1) and (2). In the embodiment thus far described, on the basis of the position L of the correction section after the start of the reversed movement, the correction value Ca' for the position is determined, and the incremental correction amount Ci to be outputted for the present period is determined as the difference from the correction value determined for the preceding period. However, the incremental correction amount Ci can also be calculated directly on the basis of the distributed pulse number ΔL in the X direction for that processing period. In Fig. 6, the incremental correction amount Ci for the distributed pulse number ΔL can be determined by the following Formula (3): Ci = [2A/(D-2A)] • ΔL The distributed pulse amount ΔL has a sign, so that the incremental correction amount Ci also has a sign. These incremental correction amounts Ci may be summed, and correction processing is discontinued, when the summation becomes +A in the case of the movement in the +X direction, whereas the correction processing is discontinued when the summation of the incremental correction amounts Ci becomes -A in the case of the movement in the -X direction. The processing operations of these cases will be briefly described with reference to Figs. 9 and 10. The initialization processing, as shown in Fig. 9, is basically identical to the aforementioned one shown in Fig. 7. In this case of Fig. 9, however, the moving position storage register L is not necessary, and what is required is only to set a correction value storage register Ca" with either the initial value A (when returning to the origin in the positive direction) or the initial value -A (when returning to the origin in the negative direction) (with reference to Steps B3 and B4). In the correction shown in Fig. 10, too, the processings of Steps b1 to b6 and Steps b17 to b19 are entirely identical to those of Steps a1 to a6 and Steps a16 to a18 for the aforementioned correction of Fig. 8. The CNC CPU 19, having started the correction, executes the processings of Steps b1 to b3 as in the case of the aforementioned embodiment, and then determines (at Step b4) whether or not the moving direction has been reversed. When the reversal of the moving direction has not been made, the CNC CPU 19 sets the backlash correction value to 0 (at Step b5) and determines (at Step b7) whether or not the value of the correction value storage register Ca" for storing the summed value of the incremental correction values Ci is |Ca"| ≤ A. The determination at Step b7 is for determining whether or not the machining point is located within the correction section requiring the correction of the delay. When |Ca"| ≤ A, and the machining point is not in the correction section requiring the delay correction, the CNC CPU 19 ends the processing of this period by setting the incremental correction amount Ci to "0" (at Step b16) and executing the processings of Steps b17 to b19 as in the correction shown in Fig. 8. When the reversal of the moving direction is detected at the decision of Step b4, on the other hand, the CNC CPU 19 calculates (at Step b6) the backlash correction value as in the prior art. On the basis of the value ΔL determined at Step b1, the CNC CPU 19 determines the value of the incremental correction value Ci to be outputted to the servo motor Mx for this period, by executing the calculation of Formula (3) (at Step b8). Further, the CNC CPU 19 determines the absolute correction value at the present point by adding the correction value Ci to the correction value storage register Ca", and updates and stores (at Step b9) the determined value in the correction value storage register Ca". When the correction section is passed in the state where the correction value Ca'' at present, as calculated by the processing of Step b9, is |Ca"| ≥ A, the absolute correction value would exceed the maximum of the deflection of the workpiece drive unit if the value Ci were unchanged and used for the correction. When |Ca"| ≥ A, therefore, the CNC CPU 19 resets the incremental correction value Ci to [A-(Ca"-Ci)] and the value Ca" to A (at Steps b10 to b12). When |Ca"| ≤ -A, the CNC CPU 19 resets the incremental correction value Ci to [-A - (Ca"-Ci)] and the value Ca" to -A (at Steps b13 to b15). In either case, when the value of Ci, as finally calculated at Step b11 or b14, is added to the value of Ca" before execution of Step b9, the value of Ca" becomes identical to +A or -A, and the absolute correction value is equalized to the maximum of the deflection of the workpiece drive unit. That is, the processings of Steps b10 to b12 are substitutions of the processings of Steps a10 and a12 in the correction of Fig. 8, and the processings of Steps b13 to b15 are substitutions of the processings of Steps a9 and all in the correction of Fig. 8. Moreover, both the determinations in Steps b10 and b13 are false, and |Ca"| < A, and thus, the case within the correction section, it is apparent that no excessive correction will be made even when the correction is made by directly using the incremental correction value Ci determined at Step b8. Therefore, the CNC CPU 19 keeps the correction value, as determined at Step b8. Then, the CNC CPU 19 ends the processing of this period by executing the processings of Steps b17 to b19 as in the correction shown in Fig. 8. A brief description was made on the embodiment in which the incremental correction value Ci is directly calculated on the basis of the distributed pulses ΔL in the X direction for the processing period, and whether or not the adjustment of the correction is necessary is determined on the basis of the present value of the correction value Ca". However, operational effect of the present embodiment does not differ substantially from the first embodiment shown in Figs. 7 and 8, though, on one hand, information on determination reference is extracted from the movement amount, on the other hand, from the correction value; and on one hand, the processing for determining the incremental correction value is based upon the absolute correction value of the present processing period and the absolute correction value of the preceding period, on the other hand, upon only the distributed pulses ΔL of this processing period.

Claims: A method of correcting the positional displacement of a machining point of a driven member relative to a command position, wherein the force of a drive source is applied to said driven member and said positional displacement arises due to the deflection of machine components, the method comprising steps of: predetermining the maximum positional displacement A of the actual machining point with respect to the corresponding command position; after a reversal of the moving direction of the machining point, determining a correction movement section D, wherein the correction movement section D has a length corresponding to the commanded position increment required for the actual positional displacement (Ca'), measured between the actual machining point and the corresponding command position, to reach said maximum positional displacement A; determining a correction amount for correcting said command position on the basis of said maximum positional displacement A and said length of said correction movement section D; and adding said determined correction amount to said command position, thereby to output the resultant value as a corrected command position value. A method of correcting the positional displacement of a machining point according to Claim 1, further comprising steps of: measuring the movement section of said machining point when the positional displacement is restored to the maximum A after the moving direction of the machining point is reversed from the state where the positional displacement is at the maximum, thereby to take the measured movement section as said correction movement section D. A method of correcting the positional displacement of a machining point, said positional displacement arising due to the deflection of components of a machine, the method comprising steps of: determining, while the machining point is positionally driven in a first direction, the maximum positional displacement A, where A≻0, between the actual machining point and a command position issued by a CNC; driving the machining point in said first direction with said maximal positional displacement A; using said command position to stop the driving of said machining point and subsequently to drive it in a second direction, opposite to said first direction, by issuing a reversing command; determining the increment D, where D≻0, of said command position in said second direction, measured from the issuing of the reversing command, required for the actual positional displacement (Ca') between the actual machining point and the command position to reach said maximal positional displacement A for movement in said second direction, and during a time period after the issuing of the reversing command and before the increment of the command position in the second direction reaches D-2A, where D-2A≻0, making a correction of 2A to the command position. A method of correcting the positional displacement of a machining point according to Claim 3, wherein when the increment (D-2A) of said command position is given by n distributions (n: an integer larger than 1) of a constant amount, the correction amount for the distributed movement command (D-2A)/n at each time is 2A/n. A method of correcting the positional displacement of a machining point according to Claim 3, wherein the correction of total 2A is given to said command position during the time period before the increment of said command position reaches (D-2A). (D-2A≻0) in a manner such that: (1) the absolute value of the correction amount is predetermined assuming that its initial value is A or -A and that it increases by a small correction increment Ci of a constant amount for each pulse distribution period ΔL after the reversing command; and (2) the actual small correction increment is added, for each pulse distribution period after the reversing command, as a value which will constitute an absolute value of correction amount, as determined at. the above Step (1), corresponding to the present distribution period if it is added to the absolute value of correction amount for the preceding pulse distribution period. A method of correcting the positional displacement of a machining point according to Claim 5, wherein; while the operation of the Step (2) is being executed, it is checked at every pulse distribution period as to whether or not the reversed distribution pulses have ended the distribution of (D-2A); and as a result, the processing of Step (2) is continued when the distribution of (D-2A) has not been made, but is stopped when the distribution of (D-2A) has been made.

Inventors: KITA YUKI, TAKAYAMA YUSHI, TSUBOGUCHI YUJI, KITA, YUKI, TAKAYAMA, YUSHI, TSUBOGUCHI, YUJI, KITA, Yuki Fanuc Manshonharimomi Room 10-203, TAKAYAMA, Yushi Fanuc Manshonharimomi Room 7-107, TSUBOGUCHI, YUJI FANUC DAI-2 VIRA-KARAMATSU
Applicants: FANUC LTD, FANUC LTD.
Application year: 1996
Main classification: G05B19
IPC codes: G05B19, B23H7, B23Q15