← Back to Patent Explorer
US3767990A Expired / Lapsed US ⏱️ 0.0 years remaining

Control system for producing multi-axis contour movement for a stepping motor drive

Assignee: BRIDGEPORT MACHINES Inc A CORP OF
•
Filing: 1972-02-09
•
Granted: 1973-10-23
•
Expires: 1992-02-09
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A multi-axis machine tool or the like employing controls for an open loop stepping motor system of two or more axes in which variable frequency feedrate clock pulses are generated to ultimately control the speed of the various stepping motors. The frequency of the feedrate clock pulses is modified in accordance with programmed information; additional information defines the tool path which can either be straight line or circular arc segments and characteristically the feedrate clock pulse generation means increases pulse frequency at the beginning of a segment in such manner as to increase motor speed in accordance with system inertial limitations from a speed below to a speed above the slewing rate of the stepping motors. Thereafter upon sensing a predetermined distance from the end of the segment, pulse frequency is reduced to reduce the stepping motor speed below the slewing rate. The feedrate clock pulse chain is used by the interpolation logic to trigger two consecutive calculations, the time lapse between the clock pulse and the second calculation being so short compared to the time lapse between consecutive clock pulses, that the action initiated by the results of the calculations can be considered for all intents and purposes to be coincident with the clock pulse. The first calculation always generates a major axis interpolation pulse, during the second calculation an error accumulation register is tested to determine whether a minor axis interpolation pulse should be generated to minimize the error from the programmed path. Thus the major axis interpolation pulse chain corresponds directly to the frequency of the feedrate clock chain, the minor axis interpolation pulse chain may be irregular with respect to the chain of feedrate clock pulses. A predetermined member of interpolation pulses are then used to generate each of the major and minor axis step pulses so that any irregularity in minor axis pulse frequency is eliminated and resolution is improved.

Inventors

  • 👤 M Kreithen
  • 👤 J Lawler

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 02:36
CPC Classifications
G; G05; G05B; G05B19/00; G05B19/02; G05B19/18; G05B19/41; G05B19/4103; G05B19/19; G05B19/40; G05B2219/00; G05B2219/30; G05B2219/34; G05B2219/34132; G05B2219/43; G05B2219/43009; G05B2219/43139; G05B2219/43158

Claims Analysis

Total Claims: 18
Claim 1
Independent Claim 211 words
In a system capable of moving one part relative to another by relative movement of at least three series connected relatively movable members along at least two predetermined axes defined by cooperating structure of adjacent members and having at least two step motors each acting between and moving said adjacent members along the predetermined axes in discrete increments and acting together to drive said parts along a series of successive segments approximating a predetermined path, the improvement comprising clock pulse generator means for generating a train of clock pulses; logic means to select as a major axis that one of the axes having the greater number of steps to be taken over at least the segment next to be followed; interpolation pulse generator means for generating a major axis interpolation pulse for each clock pulse and minor axis interpolation pulses as required by the logic of the system to follow the segment, said interpolation logic employing means whereby minor axis interpolation pulses are derived only after each major axis pulse upon immediate evaluation of whether an interpolation pulse is required along each minor axis and before the next clock pulse; and means for deriving step motor pulses to drive their respective step motors from said interpolation pulses for the respective axes.
Claim 2
Dependent Claim 211 words
In a system capable of moving one part relative to another by relative movement of at least three series connected relatively movable members along at least two predetermined axes defined by cooperating structure of adjacent members and having at least two step motors each acting between and moving said adjacent members along the predetermined axes in discrete increments and acting together to drive said parts along a series of successive segments approximating a predetermined path, the improvement comprising clock pulse generator means for generating a train of clock pulses; logic means to select as a major axis that one of the axes having the greater number of steps to be taken over at least the segment next to be followed; interpolation pulse generator means for generating a major axis interpolation pulse for each clock pulse and minor axis interpolation pulses as required by the logic of the system to follow the segment, said interpolation logic employing means whereby minor axis interpolation pulses are derived only after each major axis pulse upon immediate evaluation of whether an interpolation pulse is required along each minor axis and before the next clock pulse; and means for deriving step motor pulses to drive their respective step motors from said interpolation pulses for the respective axes.
Claim 3
Dependent Claim 46 words
The system of claim 1 in which at least two registers are provided to store remaining major and minor interpolation steps to be taken and an accumulator register is provided into which predetermined outputs from the other registers are transferred to control minor axis interpolation pulses.
Claim 4
Dependent Claim 49 words
The system of claim 1 in which means are provided to generate successive calculation periods defined by successive control pulses during the first of which major axis interpolation pulses are always generated and during second of which minor axis interpolation pulses may be generated as required by system logic.
Claim 5
Dependent Claim 102 words
The system of claim 3 in which at least two registers are provided to store remaining major and minor interpolation steps to be taken with means to decrement the register containing major axis steps and produce a major axis interpolation pulse during the first calculation period and in which an accumulator register is provided to receive calculations from the system logic during the first calculation period so that during the second calculation period when certain predetermined conditions are met, a minor axis interpolation pulse may be generated by means provided for that purpose and to decrement the register containing minor axis steps.
Claim 6
Dependent Claim 43 words
The system of clAim 4 in which a linear segment is to be followed and in which the at least two registers are major and minor axis registers storing respectively the interpolation steps to be taken along the major and minor axes, respectively.
Claim 7
Dependent Claim 57 words
The system of claim 4 in which a circular arc segment is to be followed and in which there are at least four registers storing respectively the remaining interpolation steps to be taken along first and second axes and the coordinate position along said first and second axes of the current point in the segment being followed.
Claim 8
Independent Claim 267 words
The method of simulating the following of a straight line segment by interpolation increments along predetermined major and minor axes where remaining steps to be taken along said axes are stored in major and minor axis registers and certain output logic originating from said registers is stored in an accumulator register comprising, setting the major axis register at the number of interpolation steps of which will be required by major axis motion, setting the minor axis register at the number of units of interpolation steps which will be required by minor axis motion, setting an accumulator register at zero, using each pulse from a variable frequency clock to generate successive timing pulses which represent first and second successive time intervals in which successive steps in calculation may occur, making a first arithmetic calculation in the period of the first timing pulse during which the major axis register is always decremented and a single interpolation pulse is output to the major axis step motor logic and the contents of the minor axis register is added in the accumulator register to the contents of accumulator, during the second calculation period testing the output of the accumulator register to sense positive number storage capacity of the register to determine whether its contents contain a positive number and if it does not, during the second calculation passing no signal to the minor axis step motor logic, but if the accumulator 102 does contain a positive number, passing a signal to cause the minor axis register to be decremented and causing one unit output to the minor axis step motor logic 115.
Claim 9
Independent Claim 267 words
The method of simulating the following of a straight line segment by interpolation increments along predetermined major and minor axes where remaining steps to be taken along said axes are stored in major and minor axis registers and certain output logic originating from said registers is stored in an accumulator register comprising, setting the major axis register at the number of interpolation steps of which will be required by major axis motion, setting the minor axis register at the number of units of interpolation steps which will be required by minor axis motion, setting an accumulator register at zero, using each pulse from a variable frequency clock to generate successive timing pulses which represent first and second successive time intervals in which successive steps in calculation may occur, making a first arithmetic calculation in the period of the first timing pulse during which the major axis register is always decremented and a single interpolation pulse is output to the major axis step motor logic and the contents of the minor axis register is added in the accumulator register to the contents of accumulator, during the second calculation period testing the output of the accumulator register to sense positive number storage capacity of the register to determine whether its contents contain a positive number and if it does not, during the second calculation passing no signal to the minor axis step motor logic, but if the accumulator 102 does contain a positive number, passing a signal to cause the minor axis register to be decremented and causing one unit output to the minor axis step motor logic 115.
Claim 10
Independent Claim 568 words
The method of simulating the following of a circular arc segment by interpolation increments along predetermined major and minor axes X and Y where remaining steps to be taken along said axes are stored in Delta X and Delta Y registers, the rectangular coordinate position at any given time with respect to a predetermined origin representing the center of the arc are stored in I and J registers corresponding to the X and Y coordinating from said registers is stored in an accumulator register by directly interpolation pulses into X and Y step motor logic, respectively, comprising setting the I register at the value of the X coordinate distance from the circular origin to the start point measured along the X axis, setting the J register at the value of the Y coordinate distance from the same circular origin to the same start point measured along the Y axis, setting the Delta X register at the number of units of X axis motion required to reach the end point of the arc segment, setting Delta Y register 212 at the number of units of Y axis motion required to reach said end point, setting the accumulator at zero, generating a train of variable frequency clock pulses, determining if either Delta X or Delta Y equals zero and, if so directing clock pulse directly into the other axis step logic input. If neither Delta X or Delta Y equals zero enabling clock pulses to enter the interpolation registers, previous to the first calculation, determining the major axis by comparison if I is greater than J or J is greater than I, establishing a first calculation period during which, if I is greater than J: (1) the accumulator is augmented by the contents of the J register (2) a Y axis step is commanded through Y axis step logic input, (3) the Delta Y register is decremented by one and (4) the J register is decremented by one, but if J is greater than I: (1) the accumulator is decremented by the contents of the I register and (2) X axis step is commanded through X axis step logic input (3) the Delta X register is decremented by one and (4) the I register 209 is augmented by one, Sensing the storage condition of the accumulator register at the conclusion of the calculation to determine whether its contents contain a positive or a negative number, and during a second calculation period if J is greater than I, and the accumulator register is not negative taking no action if I is greater than J, and the accumulator register is not positive, taking no action if J is greater than I and the accumulator is negative: (1) the accumulator 208 is augmented by the contents of the J register (2) a Y axis step is commanded through Y axis step logic (3) the Delta Y register is decremented by one, and (4) the J register 210 is decremented by one. If I is greater than J and the accumulator is positive, (1) the accumulator is decremented by the contents of the I register, (2) an X axis step is commanded through X axis step logic (3) Delta X register 211 is decremented by one, and, (4) the I register 209 is augmented by one, and continuing calculations until the contents of both the Delta X and the Delta Y registers equal zero.
Claim 11
Independent Claim 568 words
The method of simulating the following of a circular arc segment by interpolation increments along predetermined major and minor axes X and Y where remaining steps to be taken along said axes are stored in Delta X and Delta Y registers, the rectangular coordinate position at any given time with respect to a predetermined origin representing the center of the arc are stored in I and J registers corresponding to the X and Y coordinating from said registers is stored in an accumulator register by directly interpolation pulses into X and Y step motor logic, respectively, comprising setting the I register at the value of the X coordinate distance from the circular origin to the start point measured along the X axis, setting the J register at the value of the Y coordinate distance from the same circular origin to the same start point measured along the Y axis, setting the Delta X register at the number of units of X axis motion required to reach the end point of the arc segment, setting Delta Y register 212 at the number of units of Y axis motion required to reach said end point, setting the accumulator at zero, generating a train of variable frequency clock pulses, determining if either Delta X or Delta Y equals zero and, if so directing clock pulse directly into the other axis step logic input. If neither Delta X or Delta Y equals zero enabling clock pulses to enter the interpolation registers, previous to the first calculation, determining the major axis by comparison if I is greater than J or J is greater than I, establishing a first calculation period during which, if I is greater than J: (1) the accumulator is augmented by the contents of the J register (2) a Y axis step is commanded through Y axis step logic input, (3) the Delta Y register is decremented by one and (4) the J register is decremented by one, but if J is greater than I: (1) the accumulator is decremented by the contents of the I register and (2) X axis step is commanded through X axis step logic input (3) the Delta X register is decremented by one and (4) the I register 209 is augmented by one, Sensing the storage condition of the accumulator register at the conclusion of the calculation to determine whether its contents contain a positive or a negative number, and during a second calculation period if J is greater than I, and the accumulator register is not negative taking no action if I is greater than J, and the accumulator register is not positive, taking no action if J is greater than I and the accumulator is negative: (1) the accumulator 208 is augmented by the contents of the J register (2) a Y axis step is commanded through Y axis step logic (3) the Delta Y register is decremented by one, and (4) the J register 210 is decremented by one. If I is greater than J and the accumulator is positive, (1) the accumulator is decremented by the contents of the I register, (2) an X axis step is commanded through X axis step logic (3) Delta X register 211 is decremented by one, and, (4) the I register 209 is augmented by one, and continuing calculations until the contents of both the Delta X and the Delta Y registers equal zero.
Claim 12
Dependent Claim 247 words
In a system capable of moving one part relative to another by relative movement of at least three series connected relatively movable members along at least two predetermined axes defined by cooperating structure of adjacent members and having at least two step motors each acting between and moving said adjacent members along the predetermined axes in discrete increments and acting together to drive said parts along a series of successive segments approximating a predetermined path, the improvement comprising logic means to select as a major axis that one of the axes having the greater number of steps to be taken over at least the segment next to be followed, means genrating an interpolation pulse train of evenly spaced pulses representing the major axis length of said segment logic means for each minor axis to generate a train of interpolation pulses the number of which minor axis interpolation pulses is representative of the length of that minor axis segment which, pulse train is composed at most of no more pulses than the major axis pulse train and the pulses in which train may be unevenly spaced; separate means for each of said axes receiving interpolation pulses from said logic means and producing a step motor pulse for a predetermined number of interpolation pulses, whereby the variations in spacing of the minor axis interpolation pulse output is averaged so that pulses representing a fixed speed occur at regular intervals and so that the potential error in resolution is decreased.
Claim 13
Dependent Claim 247 words
In a system capable of moving one part relative to another by relative movement of at least three series connected relatively movable members along at least two predetermined axes defined by cooperating structure of adjacent members and having at least two step motors each acting between and moving said adjacent members along the predetermined axes in discrete increments and acting together to drive said parts along a series of successive segments approximating a predetermined path, the improvement comprising logic means to select as a major axis that one of the axes having the greater number of steps to be taken over at least the segment next to be followed, means genrating an interpolation pulse train of evenly spaced pulses representing the major axis length of said segment logic means for each minor axis to generate a train of interpolation pulses the number of which minor axis interpolation pulses is representative of the length of that minor axis segment which, pulse train is composed at most of no more pulses than the major axis pulse train and the pulses in which train may be unevenly spaced; separate means for each of said axes receiving interpolation pulses from said logic means and producing a step motor pulse for a predetermined number of interpolation pulses, whereby the variations in spacing of the minor axis interpolation pulse output is averaged so that pulses representing a fixed speed occur at regular intervals and so that the potential error in resolution is decreased.
Claim 14
Dependent Claim 39 words
The system of claim 9 in which the separate means for each of the axes is counter means into which interpolation pulses are fed and at a predetermined count of interpolation pulses an output step motor pulse is generated.
Claim 15
Dependent Claim 24 words
The system of claim 10 in which the predetermined count of interpolation pulses is some power of 10 for each output step motor pulse.
Claim 16
Dependent Claim 52 words
The system of claim 11 in which the count of the counter means starts at 5 times some power of ten and counts up or down depending on the direction of rotation required of the step motor generating respectively a carry pulse for count up or a borrow pulse for count down.
Claim 17
Dependent Claim 43 words
The system of claim 10 in which the counter means for each of the axes are not reset at the end of each programmed segment but the interpolation counts in each counter means is used as a correction for the next programmed segment.
Claim 18
Dependent Claim 40 words
The system of claim 12 in which the counter means for each of the axes may be at any count at the end of a programmed segment and is not altered so that it provides a correction of subsequent segments.

References Cited (Backward Citations)

US3416056A Cited
US3422325A Cited
US3525917A Cited
US3585478A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1976-10-22 1977-04-23 1977-10-23 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1980-10-22 1981-04-23 1981-10-23 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 1984-10-22 1985-04-23 1985-10-23 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag