Claims
- 1. A method of distributing interpolation pulses to the perpendicular X and Y axes of a numerically controlled machine to realize motion at approximately a commanded feedrate and by a series of incremental moves that approximate a curve, comprising:
- supplying input pulses to an interpolation unit at a rate proportional to the commanded feedrate, said input pulses having move instruction data including the shape of the curve and starting and end point coordinates;
- determining for each input pulse and at every incremental move, from said move data and a known deviation index, the value of new x, y and xy deviation indices resulting when only the X axis is incremented one unit, only the Y axis is incremented one unit, or both axes are simultaneously incremented one unit, where said deviation index is a function of an invariant parameter of said curve and is held as close to zero as possible;
- comparing said new deviation indices and selecting the index with the smallest absolute value;
- applying one interpolation pulse to an X axis drive when the new x index is smallest, to a Y axis drive when the new y index is smallest, and to both axis drives when the new xy index is smallest;
- feeding back said smallest index which is the known deviation index for the next incremental move in the series; and
- keeping a running total every time both axes are simultaneously incremented and the commanded feedrate is exceeded, and selectively skipping one input pulse to make a feedrate correction.
- 2. The method of claim 1 wherein linear interpolation is performed and said deviation index is a function of the slope of a straight line and is
- X.sub.n Y.sub.o -X.sub.o Y.sub.n =0,
- where X.sub.o and Y.sub.o are the end point coordinates, and X.sub.n and Y.sub.n are the coordinates after the n.sup.th incremental move.
- 3. The method of claim 2 wherein said new x, y and xy deviation indices are determined by adding said known deviation index and, respectively, Y.sub.o, -X.sub.o, and (Y.sub.o -X.sub.o).
- 4. The method of claim 1 wherein circular interpolation is performed and said deviation index is a function of the radius of a circular arc and is
- X.sub.n.sup.2 +Y.sub.n.sup.2 -R.sub.o.sup.2 =0,
- where X.sub.n and Y.sub.n are the coordinates after the n.sup.th incremental move and R.sub.o is the radius.
- 5. The method of claim 4 wherein said new x, y and xy deviation indices are determined by adding said known deviation index and, respectively, (2X.sub.n +1), (-2Y.sub.n +1), and (2X.sub.n -2Y.sub.n +2).
- 6. A system for distributing interpolation pulses to the perpendicular X and Y axes of a numerical control system to realize motion at approximately a commanded feedrate and by a series of incremental moves that approximate a straight line comprising:
- means, comprised of a central microcomputer into which a part program is read, for supplying input pulses to an interpolation unit at a rate proportional to the commanded feedrate, said input pulses having move instruction data including the starting and end point coordinates of said straight line;
- said interpolation unit generating an output interpolation pulse for each input pulse and comprising first, second and third adders that sum a deviation index for each preceding incremental move with said end point coordinates to respectively produce a new x deviation index which assumes only the X axis is incremented one unit, a new y deviation index which assumes only the Y axis is incremented one unit, and a new xy deviation index which assumes both axes are incremented one unit, where said deviation index is a function of an invariant parameter of said straight line, the slope, and is held as close to zero as possible;
- means for comparing said new deviation indices and selecting the index with the smallest numerical value, and for generating an X axis interpolation pulse when the new x index is smallest, a Y axis interpolation pulse when the new y index is smallest, or an interpolation pulse on both the X and Y axes when the new xy index is smallest; and
- a control multiplexer connected to the outputs of said adders and comparing means to gate the smallest index to said adders which is the deviation index for the next incremental move in the series.
- 7. The system of claim 6 and further comprising accumulator means for keeping a running total of (.sqroot.2-1) every time both axes are simultaneously incremented and the commanded feedrate is exceeded, subtracting 1 whenever the total is greater than 1, and generating a command sent to said central microcomputer to skip one input pulse to make a feedrate correction.
- 8. A system for distributing interpolation pulses to the perpendicular X and Y axes of a numerical control system to realize motion at approximately a commanded feedrate and by a series of incremental moves that approximate a circular arc comprising:
- means, comprised of a central microcomputer into which a part program is read, for supplying input pulses to an interpolation unit at a rate proportional to the commanded feedrate, said input pulses having move instruction data including the starting and end point coordinates, and coordinates of the center of said circular arc;
- said interpolation unit generating an output interpolation pulse for each input pulse and comprising means for calculating the sums (2X+1), (-2Y+1), and (2X-2Y+2), where X and Y are the coordinates of a preceding incremental move;
- first, second and third adders that add a deviation index for each preceding incremental move with said respective sums to produce a new x deviation index which assumes only the X axis is incremented, a new y deviation index which assumes only the Y axis is incremented, and a new xy deviation index which assumes both axes are simultaneously incremented, where said deviation index is a function of an invariant parameter of the circular arc, the radius, and is kept as close to zero as possible;
- means for comparing said new deviation indices and selecting the index with the smallest numerical value, and for generating an X axis interpolation pulse when the new x index is smallest, a Y axis interpolation pulse when the new y index is smallest, or an interpolation pulse on both the X and Y axes when the new xy index is smallest; and
- a control multiplexer connected to the outputs of said adders and comparing means to gate the smallest index to said adders which is the deviation index for the next incremental move in the series.
- 9. The system of claim 8 and further comprising accumulator means for keeping a running total of (.sqroot.2-1) every time both axes are simultaneously incremented and the commanded feedrate is exceeded, subtracting 1 whenever the total is greater than 1, and generating a command sent to said central microcomputer to skip one input pulse to make a feedrate correction.
Parent Case Info
This application is a continuation of application Ser. No. 322,356, filed Nov. 18, 1981 now abandoned.
US Referenced Citations (4)
Continuations (1)
|
Number |
Date |
Country |
Parent |
322356 |
Nov 1981 |
|