APPARATUS FOR DETECTING MACHINE POSITIONS

Abstract: To precisely detect the position of a mechanically moving portion which is driven by a motor, restraining the effect of backlash. A position detector (3) produces a posi­ tion detection pulse every time after a mechanically moving portion (2) driven by a motor (1) is moved by a predeter­ mined amount. A counting means (4) counts the position detection pulses sent from the position detector (3), and a reading means (5) reads a value counted by the counting means (4) every time after a predetermined period of time. A cancelling means (6) cancels the content of the counting means (4) by a counted amount read by the reading means (5). A backlash amount storage means (7) stores a backlash amount of the drive system, and a moving amount calculat­ ing means (8) calculates a practical amount of movement of the mechanically moving portion (2) every time after said predetermined period of time based upon the content stored in the backlash amount storage means (7) and the value read by the reading means (5). An integrating means (9) integrates the results calculated by the moving amount calculating means (8).

Description: The present invention relates to a machine position sensing device for sensing the position of a movable machine part in tracer control or other equipment. Tracer control equipment is theoretically capable of machining even without the recognition of the position of a movable machine part. In recent years, however, tracer control units have been equipped with a simple position control function and machine position sensing function so as to enable tracing return control and stop control without involving the use of a mechanical switch such as a limit switch or to permit positioning of the movable machine part when tracing is switched from one tracing area to another. These functions are performed through utilization of feedback pulses available from a position sensor associated with a motor directly or indirectly. Incidentally, the detected position of the movable machine part is utilized not only for tracer control but also it is displayed for monitoring the tracing operation by an operator. In the prior art, the position of the movable machine part is sensed by counting feedback pulses from the position sensor through use of a counter, reading out the count value from the counter at predetermined time intervals, applying a sign-inverted version of the thus read-out count value to the counter to cancel its contents, and adding the above read-out count value to machine position data obtained so far. Such a system, although not applied specifically to tracer control, is known from EP-A-0080377. When backlash is present in the drive system, however, the feedback pulses from the position sensor will be generated even if the movable machine part is not actually driven. Therefore, the machine position data obtained only by adding up the counter contents being read out does not accurately indicate the position of the movable machine part under the influence of the backlash. In addition, the machine position data frequently changes in response to driving within the backlash, posing the problem that the display of the data flickers and hence is very hard to see. An attempt to overcome the problem of backlash is disclosed in US-A-4,251,761 wherein the contents of an error setting means are employed to compensate for backlash in particular when a moveable machine part is reversed in its motion. According to the present invention there is provided a device for sensing the position of a movable machine part, which is driven by a motor, through use of pulses available from a position sensor mounted on the motor directly or indirectly, comprising: counting means for counting the pulses from the position sensor; readout means for reading out the count value of the counting means at predetermined time intervals; and cancel means for cancelling the contents of the counting means by a value equal to the count value read out by the readout means; the device being characterised by: backlash amount storage means for storing a preset amount of backlash; amount-of-movement computing means for computing the actual amount of movement of the movable machine part for each said predetermined period of time on the basis of the count value read out by the readout means and the amount of backlash obtained from the backlash amount storage means; and integrating means for integrating the amount of movement computed by the amount-of-movement computing means; wherein the amount-of-movement computing means comprises: backlash discharge storage means for storing the current amount of backlash discharge relative to the movement of the movable machine part in a predetermined direction; adding means for adding the stored value of the backlash discharge storage means and the count value read out by the readout means; subtracting means for subtracting the amount of backlash from the output value of the adding means; first polarity discriminating means for discriminating the polarity of the output of the adding means; second polarity discriminating means for discriminating the polarity of the output of the subtracting means; amount-of-movement outputting means for outputting either one of the outputs of the adding means and the subtracting means to the integrating means in dependence upon the results of discrimination by the first and second polarity discriminating means; and updating means for updating the stored value of the backlash discharge storage means on the basis of the results of discrimination by the first and second polarity discriminating means, the output of the adding means, the preset amount of backlash, and a preset value issued by a constant setting circuit. Embodiments of the present invention may prevent machine position data from being varied by driving within the backlash. For a better understanding of the present invention, and to show how it may be put into practice, reference will now be made, by way of example, to the accompanying drawings in which:- Figure 1 is a diagram explanatory of the constitution of the present invention; Figure 2 is a block diagram illustrating the principal part of tracer control equipment embodying the present invention; Figure 3 is a block diagram showing the principal part of an example of control means 35; Figure 4 is a block diagram showing the principal part of an example of amount-of-movement computing means 52; and Figure 5 is a timing chart showing the operation of the means depicted in Figure 4. According to the present invention intended for solving the above defect of the prior art, as shown in Fig. 1, a device which detects the position of a movable machine part 2, which is driven by a motor 1, through use of pulses available from a position sensor 3 mounted directly or indirectly on the motor 1, is provided with counting means 4 for counting the pulses from the position sensor 3, read means 5 for reading the count value of the counting means 4 at predetermined time intervals, cancel means 6 for cancelling the contents of the counting means 4 by a value equal to the count value read out therefrom, backlash amount storage means 7 for storing the amount of backlash in the drive system, amount-of-movement computing means 8 for computing the actual amount of movement of the movable machine part at the predetermined time intervals on the basis of the count value read out by the read means 5 and the amount of backlash, and integrating means 9 for adding up the amount of movement computed by the amount-of-movement computing means 8. The count value which is read out by the read means 5 contains a value corresponding to the actual movement of the movable machine part 2 and a value corresponding to backlash, but since the amount-of-movement computing means 8 computes the actual amount of movement of the movable machine part 2 on the basis of the preset amount of backlash, the count value corresponding to the backlash is neglected and the integrating means indicates the accurate position of the movable machine part, besides the machine position data will not change in response to driving within the backlash. Fig. 2 illustrates in block form the principal part of tracer control equipment embodying the present invention. This tracer control equipment possesses a tracer control function, a positioning function, and a machine position detecting function. In Fig. 2 a microcomputer 26 is connected to peripheral circuits through a bus 27 including a data bus, an address bus, and a control bus. A memory 28 has an area for storing programs for the microcomputer 26 to effect predetermined control and tracing definition data such as a reference displacement, a tracing feed rate, a tracing stroke limit, etc. and an area for storing target position data for positioning. An input circuit 30 is an interface of a keyboard 31, and various data can be stored in the memory 28 from the keyboard 31. An output circuit 29 provides tracing definition data to a tracer control circuit 21, move command values for respective axes via gate circuits 38 through 40 to error counters 32 to 34 and reset signals directly thereto, initialization signals and predetermined timing signals to control means 35 through 37, switching signals to gate circuits 38 through 40 and 22, and-reset signals to Z-axis, X-axis and Y-axis registers 44, 45 and 46. An input circuit 48 is an interface through which the microcomputer 26 reads out the contents of the registers 44 through 46. The tracer control circuit 21 creates, as is well-known in the art, tracing feed rate command signals in respective axes necessary for tracer control on the basis of displacement signals ε x , ε y , and ε z which are derived from a tracer head 12 and the tracing definition data which is provided from the output circuit 29. The tracing feed rate command signals are applied via the gate circuit 22 to servo amplifiers 23 through 25 for the respective axes. X-axis, Y-axis and Z-axis motors 15, 16 and 17 which are driven by the outputs of the servo amplifiers 23 through 25 are to drive the tracer head 12 and a cutter 13 as one body through power transmission mechanisms such as gears, ball screws, etc. not shown. The tracer head 12 has a stylus 10 secured thereto for detecting the configuration of a model 11. Further, the motors 15 to 17 for the respective axes have attached thereto position sensors 18 to 20 such as pulse coders or the like, and pulses from the position sensors 17 to 19 are applied to the error counters 32 through 34. The error counters 32 to 34 are caused by the outputs of the gate circuits 38 to 40 to count up and caused by the output pulses of the position sensors 17 to 19 to count down. The outputs of the error counters 32 to 34 are converted by D/A converters 41 to 43 into analog voltages, which are provided via the gate circuit 22 to the servo amplifiers 23 to 25. The control means 35 through 37 read out the contents of the error counters 32 to 34 at predetermined time intervals of, for instance, several milliseconds and, after inverting the signs of the thus read-out count values, apply them via the gate circuits 38 through 40 to the error counters 32 to 34 to thereby cancel their contents by the read-out values. At the same time, the control means obtain the amounts of movement of the position of a movable machine part (the center position of the stylus 10, for example) for each predetermined period of time on the basis of the read-out count values and backlash in respective axes described later and deliver the thus obtained amounts of movement to the registers 44 through 46. The registers 44 through 46 integrate or add up the amounts of movement input thereto and their contents are read out by the microcomputer 26 via the input circuit 48, as mentioned previously, and at the same time they are displayed on a CRT or like display device 47. Next, a description will be given of the operation of the tracer control equipment depicted in Fig. 2. [Positioning Operation] During positioning, the inputs of the gate circuits 38 through 40 are connected to the output circuit 29 and the inputs of the gate circuit 22 are connected to the D/A converters 41 through 43. For instance, in the case of shifting the movable machine part in the + directions along the X, Y and Z axes by distances corresponding to 100, 200 and 300 output pulses from the position sensors 18, 19 and 20, respectively, the microcomputer 26 sets values 300, 100 and 200 in the Z-axis, X-axis and Y-axis error counters 34, 33 and 32 via the output circuit 29 and the gate circuits 38 to 40. Since the gate circuit 22 is connected to the D/A converters, the analog voltages into which the contents of the respective error counters have been converted are input into the servo amplifiers of the respective axes and the motors are driven by the outputs of the servo amplifiers. As the motors rotate, the position sensors generate pulses of repetitive frequencies corresponding to the rotating speeds of the motors, by which the contents of the error counters 32 to 34 are counted down. When the contents of the error counters are reduced to zero, the motors are stopped from rotation, thus completing the positioning operation. [Tracer Control Operation] During tracer control, the inputs of the gate circuits 38 to 40 are connected to the control means 35 to 37 and the inputs of the gate circuit 22 are connected to the tracer control circuit 21. Further, the contents of the error counters 32 to 34 and the contents of the registers 44 to 46 are preset to zero at the origin of the coordinate system of the machine, initializing the control means 35 to 37. When brought into contact with the model 11, the stylus 10 is fed by the motors and the displacement signals ε x , ε y and ε z corresponding to the displacement of the stylus 10 are output from the tracer head 12. Based on the displacement signals and the tracing definition data from the output circuit 29, the tracer control circuit 21 creates Z-axis, Y-axis and X-axis feed rate command signals in a known manner. The feed rate command signals are provided via the gate circuit 22 to the servo amplifiers 23 to 25, the amplified outputs of which are applied to the motors of the respective axes to drive them, by which the cutter 13 and the stylus 10 are fed as one body, machining a workpiece 14 with the cutter 13. [Machine Position Sensing Operation during Tracer Control] When the motors 15 to 17 of the respective axes rotate during tracing, pulses corresponding to the amounts of rotation are generated by the position sensors 17 to 19 and the contents of the error counters 32 to 34 are counted up or down from zero in succession. The control means 35 to 37 read the contents of the error counters 32 to 34 at predetermined time intervals, for example, every several milliseconds and, after inverting the signs of the read-out values, provide them via the gate circuits 38 to 40 to the error counters 32 to 34, cancelling their contents by the read-out values. Moreover, the control means obtain, from the read-out values and the amounts of preset backlash in the respective axes, the actual amounts of movement of the movable machine part in the respective axes for each predetermined period of time, compensated for backlash, and deliver them to the registers 44 to 46. By adding up the amounts of movement applied thereto, the registers 44 to 46 obtain the current positions of the movable machine part in the respective axes. The contents of the registers 44 to 46 are input into the display device 47, which displays on its screen the position of the movable machine part in each axis, as shown. Furthermore, the microcomputer 26 reads out the values of the registers 44 to 46 via the input circuit 48 and, by comparing the values with, for example, tracing stroke limit data prestored in the memory 28, checks whether the stylus 10 has reached the preset tracing stroke limit or not; if so, the microcomputer controls the tracer control circuit 21 to perform a pick feed. Fig. 3 illustrates in block form the principal part of the control means 35. The other control means 36 and 37 can also be constructed similarly. The control means 35 is supplied with the contents of the error counter 32 and an initialization signal and a timing signal from the output circuit 29. A register 50 reads out the contents of the error counter 32 at predetermined time intervals or every several milliseconds defined by the timing signal and a sign inverting circuit 51 inverts the sign of the read-out value and delivers it to the gate circuit 38 and amount-of-movement computing means 52. The actual amount of movement in the Z axis computed by the computing means 52 is provided to the Z-axis register 44. Fig. 4 illustrates in block form the principal part of an example of the amount-of-movement computing means 52. The computing means of this example receives a signal a from the sign inverting circuit 51 and comprises a register 61 for storing a backlash discharge in the + direction along the Z axis, a register 62 for storing a backlash amount A in the Z axis, a subtractor 63 for subtracting the backlash amount A from the output c of an adder 60, a polarity discriminating circuit 64 which discriminates the polarity of the output d of the subtractor 63 and, when it is positive, provides an output "1", a polarity discriminating circuit 65 which discriminates the polarity of the output c of the adder 60 and, when it is negative, provides an output "1", a circuit composed of AND circuits 66 and 67 and an OR circuit 69, for determining whether the output c of the adder 60 or the output d of the subtractor 63 is delivered to the Z-axis register 44, on the basis of the contents of the output e of the polarity discriminating circuit 64 and the output f of the polarity discriminating circuit 65, and updating means for storing a new backlash discharge in the register 61 through utilization of the results of discrimination by the polarity discriminating circuits 64 and 65, the output c of the adder 60, the backlash amount A, and a preset value, i.e. a value of zero. The up-dating means comprises an exclusive OR circuit 68, AND circuits 72 to 74, an inverter 71, a setting circuit 70 for setting a constant (0), and an OR circuit 75. Fig. 5 is a timing chart showing the operation of the amount-of-movement computing means depicted in Fig. 4. Reference numeral 80 indicates variations in the amount of movement of the movable machine part in the Z axis and 81 variations in the contents of the error counter 32. When the movable machine part lies at the origin in the Z axis with the backlash amount in its positive direction all discharged, the count value of the register 61 is A. Assuming that the actual position of the movable machine part in the Z axis has been shifted in the + direction by x₁ until a time t₁ as a result of tracing for a predetermined period of time, the count value of the error register 32 becomes -x₁. At the time t₁ the count value -x₁ of the error counter 32 is input into the register 50 and then inverted in sign by the sign inverting circuit 51 into a signal a of a value x₁, which is input into the amount-of-movement computing means 52. The value x₁ of this signal and the count value A of the register 61 are added together by the adder 60 and its added output c assumes a value x₁ + A. Further, the value of the output d from the subtractor 63 which subtracts the backlash amount A from the value of the output c is x₁. Accordingly, since the output c of the adder 60 and the output d of the subtractor 63 are both positive, only the output e of the polarity discriminating circuit 64 goes to a "1" and the output d (x₁) of the subtractor 63 is provided as an output j to the Z-axis register 44 via the AND circuit 66 and the OR circuit 69. Moreover, by the "1" state of the output e, the AND circuit 73 is enabled and the backlash amount A is provided as a signal h to the register 61 via the OR circuit 75, retaining the count value of the register 61 at A. Next, assuming that the movable machine part in the Z axis has been shifted in the - direction by x₂ until a time t₂, excess pulses corresponding to the backlash amount are generated by the position sensor 20 owing to the reversal of the direction of travel, with the result that the count value of the error counter 32 becomes larger than x₂ by A and the input a becomes -(x₂ + A) . Accordingly, the output c of the adder 60 becomes -x₂ and the output d of the subtractor 63 becomes -(x₂ + A) . Since the both outputs are negative, only the output f of the polarity discriminating circuit 65 goes to a "1", thus applying the output c of the adder 60, that is, -x₂ to the Z-axis register 44 via the AND circuit 67 and the OR circuit 69. By the "1" state of the output f of the polarity discriminating circuit 65, the constant (0) of the setting circuit 70 is set as a signal i in the register 61 via the AND circuit 74 and at that point of time it is stored that the backlash discharge in the + direction along the Z axis is zero. Next, assuming that during the predetermined period of time from the time t₂ to t₃ the Z-axis motor 17 has rotated in the + direction by an amount smaller than the backlash amount, for instance, A/α (where α > 1), although the movable machine part in the Z axis has not actually changed, the count value of the error counter 32 at the time t₃ is -A/α. In this instance, the output c of the adder 60 becomes A/α, the output d of the subtractor 63 becomes A{(1/α) - 1}, and the outputs of the polarity discriminating circuits 64 and 65 both go to "0"s; so the AND circuits 66 and 67 remain closed, delivering no amount of travel to the Z-axis register 44. Since the output of the exclusive OR circuit 68 goes to a "0", the AND circuit 72 is enabled by the output of the inverter 71 and the output c (A/α) of the adder 60 is set as a signal g in the register 61 via the OR circuit 75. That is, it is stored that the backlash amount in the + direction along the Z axis has been discharged by A/α. Thereafter, when the Z-axis motor has been further driven in the + direction during the period from the time t₃ to t₄ and the movable machine part has been moved by x₃ in the Z axis, the count value of the error counter 32 at the time t₄ is -{x₃ + A(1 - 1/α)} . In consequence, the output c of the adder 60 becomes x₃ + A and the output d of the subtractor 63 becomes x₃. Since the both outputs are positive, only the output e of the polarity discriminating circuit 64 goes to a "1" and the output d (x₃) of the subtractor 63 is provided to the Z-axis register 44 via the AND circuit 66 and the OR circuit 69. Further, since the backlash amount in the + direction along the Z axis has all been discharged by this movement, the AND circuit 73 is enabled and the backlash amount A is set in the register 61. While the above embodiment of the machine position sensing device of the present invention has been described as being applied to tracer control equipment, the present invention is also applicable to other apparatus such as a numerical controller or the like. As described above, according to the present invention, in a device for sensing the position of a movable machine part through use of feedback pulses from a position sensor mounted directly or indirectly on a motor, backlash compensation processing is performed so that the position of the movable machine part is not updated by feedback pulses which result from driving within the amount of backlash, so it is possible to obtain accurate machine position data which is in agreement with the actual position of the movable machine part. Moreover, since the position of the movable machine part, which is obtained by adding up the amounts of movement thereof, would not be varied by driving within the backlash, the display contents of the machine position will not frequently change and hence are easy to see.

Claims: A device for sensing the position of a movable machine part (2), which is driven by a motor (1), through use of pulses available from a position sensor (3) mounted on the motor (1) directly or indirectly, comprising: counting means (4) for counting the pulses from the position sensor (3); readout means (5) for reading out the count value of the counting means (4) at predetermined time intervals; and cancel means (6) for cancelling the contents of the counting means (4) by a value equal to the count value read out by the readout means (5); the device being characterized by: backlash amount storage means (7) for storing a preset amount of backlash; amount-of-movement computing means (8) for computing the actual amount of movement of the movable machine part (2) for each said predetermined period of time on the basis of the count value read out by the readout means (5) and the amount of backlash obtained from the backlash amount storage means (7); and integrating means (9) for integrating the amount of movement computed by the amount-of-movement computing means (8); wherein the amount-of-movement computing means (8) comprises: backlash discharge storage means (61) for storing the current amount of backlash discharge relative to the movement of the movable machine part (2) in a predetermined direction; adding means (60) for adding the stored value of the backlash discharge storage means (61) and the count value read out by the readout means (5); subtracting means (63) for subtracting the amount of backlash from the output value of the adding means (60); first polarity discriminating means (65) for discriminating the polarity of the output of the adding means (60); second polarity discriminating means (64) for discriminating the polarity of the output of the subtracting means (63); amount-of-movement outputting means (66,67,69) for outputting either one of the outputs of the adding means (60) and the subtracting means (63) to the integrating means (9) in dependence upon the results of discrimination by the first and second polarity discriminating means (65,64); and updating means (68 and 70 to 75) for updating the stored value of the backlash discharge storage means (61) on the basis of the results of discrimination by the first and second polarity discriminating means (65,64), the output of the adding means (60), the preset amount of backlash, and a preset value issued by a constant setting circuit (70).

Inventors: MATSUURA, HITOSHI, YAMAZAKI, ETSUO
Applicants: FANUC LTD.
Application year: 1986
Main classification: G05B19
IPC codes: G05B19, G05D3