US 3648244 A
A two axis, digital, numerical control system for a turret lathe, using a common add-subtract unit which receives and sends information signals over a single pair of time-shared multiconductor trunk lines. A display device whereby information signaled during a selected time period and at either the inputs or the outputs of the adder may be viewed. For a more detailed abstract see Table of Contents.
Claims available in
Description (OCR text may contain errors)
United States Patent McGee 1 Mar. 7, 1972  READOUT SYSTEM FOR SELECTIVE 3,154,770 10/1964 Schwab et a1. ..340/172.5 X DATA ON 332333; 1551323 i i Ti 5551191"??? orres er 1: a SHARED CONDUCTORS 3,181,124 4/1965 Hammel 1 ..340/l72.5  Inventor: John K. McGee, Houston, Tex. 3,227,364 1/1966 Clark ...340/l72.5 X 3,268,866 3/1966 Van t Slot et a1.. ..340/172.5 [731 Asslgnw Giddings Machine T001 Cmnvany, 3,274,553 9/1966 ....318/20.06O x du Lac. 3,365,634 1/1968 Centneretal. ..235/151.11 x  Filed: Jan. 26, 1970 I Primary Exammer- Raulfe B. Zache  Appl. No.: 6,036 Assistant Examinerl-larvey E. Springbom At:0rneyWolfe, Hubbard, Leydig, Voit & Osann Related US. Application Data  Continuation of Ser. No. 618,699. Feb. 27, 1967,  ABSTRACT abandoned- A two axis, digital, numerical control system for a turret lathe, using a common add-subtract unit which receives and sends U.S. information signals over a ingle pair of nme shared mulflcon-  lnLCl. G0fl3/14 ductor trunk lines. A display device whereby information Field 01 Search 235/15 1 signaled during a selected time period and at either the inputs 318/20.060,562 or the outputs of the adder may be viewed. For a more detailed abstract see Table of Contents. (56] References Cited 18 Claims, 24 Drawing Figures UNITED STATES PATENTS 2.787.416 4/1957 Hansen ..340/172.5 X
[wan/m4 ran/r204 Jmrew 04700519 mm J'fll/P/[J' 0.9 0 0 0414 i P9061441 urn/1417a I flu III! J/[J' ail 1616i) JIPV/(l/I/fi 61000! mv/r 112 .27
64/? fix mmvrmr arm I remmm 2,? I my 5, \L
mrzzr man/0e i A I 6,4762! 17 112 1/ I If a z! 1 1 47 V V/ ,flmr Jew/(01m Jmmm. 4/ 1/ 12%; I JIV/ff/Vii' :1} J'tTPV/(M/fi rumor/r 1/4 12 *2 PATENTEDMAR 1 m2 SHEET 0 7 BF FIOM 407 /44 READOUT SYSTEM FOR SELECTIVE DISPLAY OF DIGITAL DATA ON TIME-SHARED CONDUCTORS Al. CROSS REFERENCES This application is a continuation of applicants copending application, Ser. No. 618,699 filed Feb. 27, I967 and now abandoned.
B. BACKGROUND OF THE INVENTION The present invention relates in general to data-processing systems employing time-shared conductors and more particularly to a readout device for displaying data appearing on time-shared conductors.
Numerical controls, particularly for machine tools, have been an important application of computer technology to the manufacturing process. But bringing the computer to the factory floor has increased an already wide communication gap between the machine and its operator. Means must be provided to permit the average operator, not skilled in electronics or computer programming, to give instructions to the machine which will usually modify preprogrammed instructions stored on tapes and prepared from manufacturing drawings. Means should also be provided to give the operator some idea ofwhat his control is doing, how it is reacting to his instructions, whether its more important components are operating properly.
C. OBJECTS OF THE INVENTION A general object of the present invention is to provide a control readout for displaying information produced by and applied to several data sources and data-utilization devices without the use of individual electrical connections to each of the sources and devices to be monitored. More particularly, it is a general object of the invention to provide a numerical machine-tool-contrl system wherein data flows between several data sources and data-utilization devices and a central data processor on time-shared multiconductor trunklines and in which data originating from or destined for any selected data source or data-utilization device may be displayed by means of common display units.
It is a related object of the invention to permit the display selection to be made by an operator rapidly, simply, and without reference to the particular time period during which the desired data appears on the trunkline by means of a mul' tiposition selection device whose positions are identified with the data source or utilization device to be monitored and not with the time period during which data sent from a source or received by a utilization device appears on the trunklines. A related object is to provide either in place of or in addition to such an operators readout selector, a readout selector which is particularly suitable for use in servicing the numerical control system and which permits one servicing the system to select for display data appearing on the time-shared trunkline during any selected time period during which information appears on the trunkline.
Another principal object of the invention is to provide a nu merical control system wherein data is fed from a plurality of data sources during successive preassigned time periods to a central calculating unit on a time-shared, multiconductor trunkline. wherein data produced by the calculating unit is fed to a plurality of utilization devices over a second time-shared muiticonductor trunkline during successive preassigned time periods and wherein signals appearing during any preassigned time period at either the input or the output of the calculator or both may be displayed so as to test proper operation of the calculating unit.
D. BRIEF DESCRIPTION OF THE DRAWINGS Other objects and advantages will become apparent as the following description proceeds, taken in conjunction with the accompanying drawings in which:
FIG. I is a general block diagram of a numerical control system embodying features of the invention;
FIG. la is a drawing layout to show how FIGS. Za-d should be joined to form a single drawing;
FIG. 2, formed of FIGS. 2a-2d when joined as indicated in FIG. la, is a detailed block diagram of a numerical control system embodying features of the present invention;
FIG. 3 is a block and line diagram of a typical reversible counter shown in less detail in FIG. 2b and of a multiconductor trunkline for receiving signals therefrom;
FIG. 4 is an illustration of the different points of reference of the controlled machine and of the command signals which are applied to the machine control system;
FIG. 5a is a block and line diagram of an exemplary register of the type shown in FIG. 2a and of suitable logic gates for ap' plying information thereto from the outputs of the adder;
FIG. 5b is a block and line diagram ofa typical flip-flop used in the register of FIG. 50;
FIG. 50 is a set of wave forms to illustrate the timing of signals applied to the flip-flop illustrated in F IG. 5b;
FIG. 6 is an exemplary partial program for the numerical control system illustrated in FIG. 2;
FIGS. 7a-7d show the various types of program gates which may be employed to derive gating signals from the timing signal generator of FIG. 2b;
FIG. 8a is a schematic diagram of a diode decoding matrix which may be used in place of the program gates illustrated in FIGS. 7a-7d;
FIG. 8b is a circuit diagram showing in detail a portion of the diode matrix of FIG. 8a;
FIG. 9 is a detailed block diagram of the adder shown in FIG. 2b;
FIG. 10a is a block diagram of the clock pulse source used in the timing signal generator of FIG. 2b;
FIG. 10b is a timing diagram illustrating the wave forms which are derived from the clock pulse source of FIG. 10a and of timing pulses which are applied to the adder of FIG. 9;
FIG. 10: illustrates the connection of additional gates for deriving from the clock pulse source of FIG. [0a the timing signals which are illustrated in FIG. 10b;
FIG. 11 is a block and line diagram ofa typical 9's complement circuit which may be used in the adder illustrated in FIG.
FIG. 12 is a block and line diagram ofa carry signal producing network suitable for use in the adder of FIG. 9.
While the invention has been shown and will be described in some detail with reference to a preferred embodiment thereof, there is no intention that it thus be limited to such detail. On the contrary, it is intended to cover here all modifications, alternatives, and equivalents falling within the spirit and scope of the invention as defined by the appended claims.
E. GENERAL DESCRIPTION OF THE INVENTION FIG. I illustrates the invention as applied to a numerical control system. The numerical control system 11 includes a plurality of data sources and data-utilization devices 13. Examples of typical data-utilization devices used in a numerical control system, and particularly in a numerical machine-toolcontrol system which will be described in detail hereinafter, are servoloops for moving elements of the machine in response to digital signals.
Data sources in such a machine usually include a source of digital command signals derived from punched or magnetic tape and representing desired distances and velocities at which the various servo loops are to drive their associated machine elements and also include digital devices for indicating the position and velocity of the machine elements so that by comparison of actual positions with desired positions, appropriate correction signals may be applied to the respective servo loops.
Other sources of data may include sources ofdigitally coded signals to permit the operator of the machine to modify instructions derived from the tape to compensate for peculiari ties of his machine and of the tools employed. To effect these corrections, they are added to the command signals derived from the tape and the result is used as the command signal for the various servo loops. The servo loops themselves are operated by (l) comparing the digital signals indicating actual position of the machine elements which they control with the corrected digital command signals representing desired position and (2) applying a signal proportional to the difierence to a servomotor forming part of the servoloop.
To perform the numerous arithmetic operations required for operation of the numerical control system, an adder is provided. The term "adder" is used to denote an arithmetic unit capable of performing addition and subtraction, and where required, multiplication and division as well. In an important aspect of the invention, the outputs of the several data sources are connected to the inputs of the adder 15 over a common multiconductor trunkline 17, labeled AlT for Adder Input Trunk. in a similar of the outputs of the adder 15 are connected over a second multiconductor trunkline 19, labeled ACT for Adder Output Trunk, to the inputs of the various data utilization devices forming part of the block 13. Both of the trunklines 17 and 19 include a set of conductors, typically our, for each digit of a binary coded decimal number, Of course, other codes might be employed, and in that event a different number of conductors could be used for each digit. But, assuming the use of binary coded decimal (BCD) nota tion, if the trunklines are to have a IO-digit capacity, they would each include 40 conductors in 10 groups of four and an additional conductor for carrying a signal indicative of the sign of the number carried on the other forty conductors. In keeping with the invention, signals produced by the various data sources are applied to the adder input trunk 17 during successive preassigned time periods so that the adder input trunk is time-shared by all of the data sources in the block 13. Similarly, signals destined for delivery to the various datautilization devices in block 13 are produced by the adder and appear on the adder output trunk during successive preassigned time periods on a time-sharing basis.
As will be described in greater detail, flow of data over the time-shared trunklines is on a cyclically recurring basis. Each step in the processing of data is assigned a time period and a total sequence of such time periods forms a major cycle in the operation of the numerical control system 11. During normal operation of the control system, the cycle is repeated over and over again. During each successive cycle, signals from a particular data source will appear on the adder input trunk 17 during a time period preassigned to that particular data source, and each data utilization device will receive signals over the adder output trunk during similar, individually preas' signed time periods. It is worth noting that some of the data sources and data-utilization devices may be assigned several time periods on the trunklines during a major cycle, but these too will remain the same during all of the recurring major cycles of the system. To cause the signals to flow from the data sources to the adder input trunk 17 and from the adder output trunk 19 to the data utilization devices, individual gating means are interposed between each of the data sources in the block 13 and the adder input trunk 17, and individual gating means are also interposed between the adder output trunk 19 and various data utilization devices in block 13. To conserve space, these gating means are not shown separately in FIG. 1.
To successively enable the various gating means associated with the several data sources and data utilization devices, gating signals are produced at successive instants by a timing signal generator 21 in combination with a decoder or a set of program gates 23 and these gating signals are applied in- .ividually to the several gating means. In a preferred embodiment of the invention, the timing signal generator 21 produces, at a plurality of outputs, concurrent signals which digitally represent a cyclically changing series of numbers such as 0 to 999. The program gates in such a preferred embodiment are signal coincidence responsive gates, such as AND gates, which are operative to produce a signal at their outputs when signals are coincidentally applied to their inputs. The inputs of the various program gates are connected to dil' ferent combinations of outputs of the timing generator so that as the timing generator counts through its cycle of digitally signaled numbers, gating signals are produced by the different program gates at successive time spaced instants. Since particular operations of the adder 15 will occur during preas signed time periods, certain of the decoder or program gate outputs are applied to the adder, as indicated by the conduit 25.
In accordance with the invention, a servicing readout is provided which is capable of displaying data generated by any of the data sources in block 13 and which is also capable of dis playing data received by any of the data-utilization devices of block 13. In accordance with this aspect of the invention the servicing readout unit 27 includes a display unit 29. Through a first set of input-gating means 26, labeled AIT GATES, the display unit 29 is connected to receive signals appearing on the adder input trunk 17. Similarly, through a second set of input-gating means 28, labeled AOT GATES, the display unit 29 is connected to receive signals appearing on the adder output trunk 19.
Gating signals for the AlT- and ACT-gates 26 and 28 are provided on a plurality of timing lines 31, gating signals on respective lines being synchronized with selected ones of the gating signals produced by the decoder or program gates 23. In one preferred form, illustrated in FIG. 1, the synchronized gating signals on the timing lines 31 are produced by a set of fixed program gates 33, with each program gate having its inputs connected to a particular combination of outputs of the timing signal generator 21. Thus, with this arrangement, if it is desired to produce on one of the timing lines 31 a gating pulse which is in synchronism with one of the gating pulses produced by a program gate 23, one of the fixed program gates 33 will have its inputs connected to the same combination of outputs of the timing signal generator 21 to which the particular program gate 23 is connected.
it should be noted that while the above arrangement for producing synchronized gating pulses is effective, other arrangements can also be employed. Thus, instead of providing a separate set of program gates 33 for the servicing readout 27, synchronized pulses for the timing lines 31 could also be derived directly from the program gates 23. Furthermore, neither the numerical control system 11 nor the servicing readout unit 27 need employ individual program gates to derive gating pulses from the timing signal generator 21. Either a common decoder or individual decoders such as diode matrixes well known to those skilled in the art may be employed for this purpose.
lnterposed between the timing lines 31 and the gates 26 and 28 are selective switching means for rendering the gates responsive to the gating signal produced on any chosen one of the timing lines. in the system illustrated in FIG. 1, the selective switching means is an operators program gate selector 35. Means are also provided to associate each of the fixed program gates 33 not only with a particular time period, but also with a particular one of the trunklines 17 and 19 so that by selection of the timing line 31 associated with a given fixed program gate 33, a gating pulse may be applied at a desired time period to a desired one of the gates 26 and 28. Accordingly, the operators program gate selector has two sets of outputs 35a and 35b. The outputs 350 are connected to the AlT-gates 26 through a gate 37, and the outputs 35b are connected to the ACT-gates 28 through a second gate 39. The operator's program gate selector 35 is operative to select not only the timing pulse appearing on any one of the timing lines 31, but is also operative always to apply the resulting timing pulse to a particular one of the gating means 37 and 39. Thus, for example, assuming that on a particular setting of the operator's program gate selector 35 the display unit 29 is to display information appearing on the adder output trunk 19 during the fourth time period of the major cycle of the system, the operator's program gate selector 35 will be so connected that it will apply the gating pulse appearing on the appropriate timing line 31 to the gate 39. Consequently, at the appropriate time period the gating pulse is applied to the ACT-gates 28 and the desired information applied to the inputs of the display unit 29.
The particular advantage of the foregoing portion of the servicing readout is that information appearing on the adder input trunk 17 or the adder output trunk 19 may be displayed on the display unit 29 without particular reference by the operator to either the trunkline on which the information appears or to the time period during which the information appears on the trunkline. This is made possible by the arrangement of the timing lines 31 and the operators program gate selector 35 whereby a timing pulse can be applied to the appropriate one of the AIT- and ACT-gates 26 and 28 by a single selection since that is all that is required to select a particular one of the fixed program gates 33. Such an arrangement, however, is best where the number of signals to be displayed is limited. Thus, for example, it would be difiicult to envision a program gate selector 35 which would be capable of selecting any one of 1,000 timing signals by means of a single selector switch since obviously the switch would have to have L000 positions.
Although the operators program gate selector 35 might have a switching arrangement including several switches to handle an increased number of gating signals, the advantages of simplicity and quickness of selection would be diminished. However, where the display unit is to be operated by a ser viceman rather than by a machine operator, flexibility and range of selection are paramount. In such a situation, it does not matter that the person who selects the signal to be displayed needs to know the time period during which it occurs and the trunk line on which it appears. Such an arrangement forms another important feature of the invention. According to this feature, instead of providing a plurality of individual timing lines, only a single timing line 41 is provided. This tim ing line is the output of a switchable program gate 43 which may be of the same construction as the previously discussed program gates 23 and 33. Unlike the previously discussed program gates, however, the switchable program gate 43 is not hard wired." On the contrary, means in the form of the servicemans time period selector switches 45 are provided to allow connection of the inputs of the switchable program gate 43 to any combination of outputs of the timing generator 2]. By means of these switches, connected through line 35 to the outputs of the timing signal generator 2], the switchable program gate 43 can be caused to produce on the timing line 41 a gating pulse synchronously with any of the gating pulses produced by the decoder or program gates 23 of the numerical control system 11. Means are also provided for causing a gating signal to be applied to an appropriate one of the gates 26 and 28 in response to the timing signal appearing on the timing line 41. To this end, there is provided an AIT-AOT selector 27 having one output line 49 connected to the gate 37 and a second output line SI connected to the gate 39. Depending upon whether the information to be displayed is on the adder input trunk or the adder output trunk, the AlT-AOT selector 47 is set to route the signal on the timing line 4], or a signal in response thereto, through the gate 37 or the gate 39 to the AIT-gates 26 or the ACT-gates 28 respectively. Of course, it will be recognized that other gating arrangements could also be employed. Thus, the output line 49 could be connected directly to the AIT-gates 26 and the output line Sl could be alternatively connected directly to the AOT-gates 28.
The number of servicing readout units will usually exceed one, and a second such unit 53 is therefore shown in block form in FIG. I. The provision of more than one such unit permits a serviceman to determine quickly proper operation of a component in the numerical control system by simultaneously displaying on one of the readout units the input being fed to the component and on another readout unit the output produced by the component in response.
F. DETAILED DESCRIPTION 1. Exemplary Machine-Tool-Control System a. The Machine Tool, and the Servo loops for Driving It Although the invention may find utility in any system in which signals are transmitted on a common time-shared multiconductor trunkline, for sake of a concrete example, it will be explained in detail as part ofa numerical control system for a machine tool. Even more particularly, the invention will be described as part of a numerical control system for performing two axis contouring with a turret lathe. FIGS. 2a-2d, assembled as one, show such a system.
A turret lathe 71 is generally shown in FIG. 2a. The turret 73 is moved horizontally along the X-axis by means of a first feed screw 75 driven by an X-axis servomotor 77. Vertical movement of the turret 73 along the Y-axis is effected through a second feed screw 79 driven by a Y-axis servomotor 81. The workpiece 83, shown as a dome-shaped structure, rests on a work table mounted for rotation about the vertical axis L L and driven through bevel gears 87 and 89 by a table drive motor 91.
Supported in a tool holder 93 on the underside of the turret 73 is a cutting tool 95 shown as inclined to the vertical. To machine the dome-shaped surface on the workpiece 83, it is rotated by the table drive motor 91 through the gears 87 and 89 with the table 85, and the turret is caused to traverse the cutting tool 95 along the X- and Y-axes at rates which are coordinated with each other and the rate of rotation of the table 85.
Motions of the turret 73 and of the tool holder 93 along the X- and Y-axes are under control of a pair of digitally con trolled servo loops 76 and 78. The servo loop 76 is for controlling motion along the X-axis and includes a servomotor 77 and a digital encoder 97 having a shaft driven through appropriate gearing 99 from the X-axis lead screw 75. At a plurality of output lines I01, the X-axis digital encoder 97 produces a set of signals digitally representing in the form of a number the instantaneous position of the lead screw 75, and therefore of the tool holder 93, along the X-axis relative to a reference position. In the illustrated embodiment, each of the lines 101 represents a group of four conductors each for carrying signals representing in binary form one digit of a binary coded decimal number. An additional output line 102 carries a binary signal indicating the sign ofthe number.
The Y-axis servo loop 78 is similarly arranged with a Yencoder I07 driven through gears 109 by the Y-axis lead screw 79 and producing in the form of binary coded decimal signals a number whose magnitude and sign is representative of the instantaneous position of the lead screw 79 and of the vertical position of the tool holder 93.
b. Producing the Basic Command signals In numerical control systems for machine tools, it is common practice to store either on magnetic tape or on punched paper tape information representing the desired motions of the controlled machine element. As illustrated in FIG. 2b, a tape reader 113 is arranged to read numerical information one block at a time from a punched tape 115 and to supply its output signals to a numerical contouring director 117. Multiaxis numerical contouring directors such as that represented at 117 are well known in the art and need not be described here in detail. It will suffice to note that the director functions to produce trains of command pulses on lines 119 and I20 for X- and Y-axes of movement. Such command pulses for a given axis each represent a given increment of commanded motion (c.g., 0.000! inch), and thus by their total number and frequency represent a desired extent of movement and a desired velocity of movement along that axis. By coordinating the number and frequency of command pulses for the X- and Y-axes, the axis component distances and velocities will result in a combined motion of a desired extent and at a desired angle in space.
The director 117 also receives sign information from the tape reader 113 and it indicates on lines 121 and 122 whether the motions directed on the X- and Y-lines 119 and 120 are to be in a positive or a negative direction (+X to the right and X to the left, +Y up and Y down as illustrated adjacent the turret 73).
The command pulses on lines 119 and 120 are serially spaced in time. They are converted into a digitally signaled command number which changes at a rate proportional to the command pulse frequency by means ofa pair of accumulating reversible counters 123 and 125 labeled XP and YP respectively. These counters 123 and 125 may be of identical construction. Referring to the XP reversible counter 123, as better seen in FIG. 3, it has six cascaded decades, of which the units decade 123-0, the 10s decade 123-1, the 10 decade 123-4 and the 10 decade 123-5 are shown for storing the units, ls, l0", and 10 digits of a number respectively. The counter is also provided with a terminal 127 receiving a signal via line 121 which determines whether the counter counts up or counts down.
Formed of four cascaded flip-flops interconnected by appropriate gates, each decade signals its stored digit on four output lines in binary coded decimal notation. Such counting units are well known in the art and need not be described in detail. It is assumed that each decade signals the decimal digit count" stored in it in the 8-4-2-1 code. According to this code, signals appearing on the four output lines of each decade are respectively assigned a weight of 8, 4, 2, and l and decimal numbers from I to 9 are represented by 123-0. Upon every l(lthe input pulse, the units decade counter 123-0 feeds one one or more lines whose total weight equals the signaled number. Of course, other binary decimal codes may be used and the 8-4-2-l code here described is merely exemplary.
With a count up or signal on terminal 127, each input pulse adds one to the number signaled at the output lines 131- 0 of the units decade counter 123-0. Upon every 10th input pulse, the units decade counter 123-0 feeds one pulse to the tens decade counter 123-1 and upon every hundredth input pulse, the tens decade counter 123-1 steps the hundreds decade counter (not shown) by one. A similar rule of operation is followed by all of the higher decade counter stages.
To reverse the operation of the reversible counter 123, its control terminal 127 is energized with a signal via line 121, causing the counter to diminish the number signaled at its output terminals by one for each pulse fed to its input.
The Y? reversible counter 125 is similarly arranged, producing on a set of output lines 133-1 through 133-5 a digitally signaled command number which changes at a rate proportional to the Y-axis command pulse frequency on line 120 in a sense determined by the signals on the line 122.
Thus the XP and Y? counters 123 and 125 are, in simplest terms, sources of digitally coded signals, multistage digital devices which produce digitally coded electrical signals at their outputs in response to signals applied at their input terminals. The contouring director 117 represents one possible means for applying the necessary signals to the inputs of the XP and YP counters.
c. The Parallel Adder, A Brief Description Anticipating briefly the detailed description of the adder, it is the general scheme of the numerical control system periodically to apply the command signals produced by the XP and YP reversible counters to a parallel adder. to apply other signals to the adder representing corrections to be made to the command signals, to add or subtract the correction signals from the command signals, to subtract the position signals from the corrected command signals, and to apply the result to the X- and Y-servo loops. The parallel adder used for this purpose is indicated generally at 135 and is shown as having 10 decades and a stage for sign information.
An appropriate parallel adder will be described under a separate heading in detail. At this point, it is sufficient to note that each decade of the adder includes four input terminals 137, four output terminals 139 and that each decade also includes means for adding or subtracting digits of numbers applied to its input terminals in the form of binary coded decimal signals. Further, a carry from each of the first nine decades to the next higher decade is provided so that collectively the adder 135 will produce at its output terminals 139 a number signaled in binary coded decimal form which is the sum of numbers similarly signaled in succession at its input terminals 137. An additional stage 141, having a single input terminal and a single output terminal is provided for receiving and producing sign information. In all, therefore, the exemplary parallel adder 135 has 41 input terminals and the same number of output terminals.
Furthermore, the adder 135 is divided into a series of adder stages 134 and a corresponding series of accumulator stages 136. Each accumulator stage 136 receives as one of its inputs the output of its associated adder stage 134, and in turn the output of each accumulator stage 136 is connected (through a set of gates not shown in FIG. 2a) to the input of its associated adder stage 134. As each successive digit is applied to the adder stage 134, that digit is added, during the following time period, to the sum accumulated in the accumulator 136. Thus, considering the entire adder 135, with each successive number signaled at the adder input terminals 137, a new subtotal is formed one time period later at the outputs of the registers 136 whose outputs comprise the adder output terminals 139,
The adder 135 will continue to accumulate numbers signaled at its input terminals 137 until a Clear Adder signal is applied to all of the accumulator stages 136. As will be described more fully later, the Clear Adder signal opens the gates which are between the outputs of the accumulator stages 136 and the inputs of the adder stages 134 Application of a Clear Adder signal thus disrupts the application of accumulated signals to the adder stages 134 so that when the next number is signaled at the adder input terminals 137, it is that number alone which will be registered in the accumulator stages 136.
The adder 135 is also capable of subtracting a number signaled on the input terminals 137 from a number pre\ iously accumulated in its accumulator stages 136 This feature is also discussed in greater detail later, but it may be observed here that operation of the adder 135 in this mode is brought about by applying a signal to its FORCE SUBTRACT terminal 138 when the number which is to be subtracted is applied at its input terminals 137.
According to an important feature of the exemplary numerical control incorporating the invention, a common input trunk 143 is provided for applying signals to the input terminals 137 of the adder 135. The adder input trunk, better seen in FIG. 3, has one conductor for each adder input terminal 137, in this instance, 41. In similar manner, a common output trunk 144 (FIG. 2a) is provided to apply signals produced by the adder 135 on its output terminals 139 to various utilization devices in the system and in particular to the X- and Y-servo loops 76 and 78,
The digitally signaled command number on the output of the XP reversible counter 123 is applied to the adder input trunk 143 by a set of read gates 145 at time periods determined by a gating signal applied to the read gates 145 on their timing input line 147. The command signals produced by the YP reversible counter are similarly applied to the adder input trunk 143 by a second set of read gates 149 under the control of a gating pulse applied to their timing line 151.
Since both the X-axis and the Y-axis command signals are carried on the same adder input trunk 143, they cannot be applied to that trunk line at the same time. Rather, the read gates 145 and 149 are enabled, i.e., opened, at different predetermined time periods so that the trunk line 143 may be shared" by both of the counters 123 and 125. Indeed, the trunk line 143 is shared by many other components in the system, causing their signals to be applied to the trunk line during difierent time periods. The exact manner in which this time sharing arrangement is achieved forms an important feature of the invention and will be described subsequently.
d. Registers forModifying the Basic Command Signals Among the digital devices of the numerical control system, in addition to the XP and Y? counters, which produce digitally coded signals applied to the adder input trunk 143 at various times are two sets of registers, each set for applying correction signals to modify the command signal produced by one of the reversible counters I23 and 125. The first set of registers includes the XTR (X-trim) register 153, the XMO (X- major offset) register 155, and the XTO (X-tool offset) register 157. A second set of registers for entering similar corrections to be used with the Y-axis servo loop includes the YTR register 159, the YMO register 161, and the YTO register 163. The nature of the corrections effected by the various registers just referred to will be best understood by reference to FIG. 4.
e. Machine Tool Characteristics; A Reason For Modifying The Basic Command Signals Major offset relates to the fact that the XY coordinates of the part to be machined 83 and the X'Y' coordinates of the tool holder 93 originate at different zero points in space. Thus the position of the tool holder 93 is measured with reference to the distance of its datum point D from the zero point of the machine X'Y' coordinates. n the other hand, the points in space used to define the desired surface of the part 83 are defined with reference to their distance from the zero point of the XY coordinates. The distance along the X-axis from the part zero point x to the tool holder zero point x, is defined as ar for X-major offset. Correspondingly, the distance along the Y-axis from the part to the tool holder zero points, or y, y is defined as the Y-major offset y,,,,,.
The tape 115 is usually punched with information defining the desired position for the tip 96 of the tool 95 with reference to the part zero. This is indicated in FIG. 4 by the vector quantities r y representing the desired distance of the tool tip 96 along the X and Y-axes with reference to x y the machine part zero point. These instructions, if uncorrected, would cause the tool holder 93 to move from its 1 y position upward and toward the right. Obviously, if the instructions were followed, the tool holder, which in its x,,', y," position is a! ready above and to the right of the part would be moved even farther away from it. Therefore, the X-major offset x and Y- major offset y,,,,, of the tool holder 93 must be subtracted from x, and y, respectively.
Without more, the above described correction would cause the datum point D of the tool holder 93 to be positioned at the point where the tool tip 96 is located. This is so because the tool tip 96 is offset from the datum point D of the tool holder 93. This is the significance of tool offset and is represented in FIG. 4 by the vector quantities in, and y to represent the distance of the tool tip 96 from the datum point D of the tool holder along the X- and Y-axes respectively. It may be seen then that in addition to a correction for the major offset, another correction must also be made to correct for tool offset and that the vector quantities x and y,,, must also be subtracted from the vector quantities x, and y respectively.
Assuming that the tool 95 is perfect, no further correction will be required and the tool tip 96 will be properly located. However, let it be assumed that the correct shape and location of the tool are those shown by the outline 950. Of course, it is very unlikely that a tool would vary from normal by as much as is indicated in FIG. 4, which is exaggerated in this respect for clarity. Small variances of actual from normal locations of the tool tip 96 may be compensated by subtracting an amount from the command numbers 1, and y corresponding to the tool variances x and yr, along the X- and Y-axes respectively.
This is the function of the registers XTR and YTR which permit such a trimming adjustment to be made by the machine operator.
Summing up, the net required movement of the tool holder 93, and in particular of its datum point D, along the X- and Y- axes are x, and y. as shown in FIG. 4. A brief analysis of the drawing will show that the net vector quantity 1:, is obtained by subtracting the correction vectors x,,,,,, .1 and x from x,,, the vector quantity derived from the tape 115. Similarly, the desired motion of the datum point D along the Y-axis shown as the vector y,,, is derived by subtracting from the partreferenced, tape-derived vector quantity y, the correction vectors y,,,,,, y and y These relationships are concisely expressed by the equations l and (2) in FIG. 4.
The above explanation has been in terms of subtracting various corrections because this is more readily grasped intui' tively. In practice, however, the correction quantities or "vectors" are assigned a polarity which is opposite to that assigned to them in the foregoing discussion and they are then added rather than subtracted by the adder 135.
f. The Command Signal Modifying Registers In Greater Detail Returning briefly to the arrangement and operation of the correction registers 153-163 shown in FIG. 2b, they may be of any of several well-known types and need not be discussed in detail. To characterize them briefly and with particular reference to the XTR register I53 only, since all of the re gisters 153-163 may be of the same type, it is shown as having six stages, with each stage producing signals representing in bi nary coded decimal form one digit of a six-digit decimal number. Each of the output lines 154 originating from the six stages represent four lines necessary for signaling the numbers 0 through 9 in binary form.
The seventh stage of the XTR register 153, and of all the other registers 155-163, is for producing a signal on line 154a indicating the sign of the number represented by signals produced by the other six stages. The number of stages for the registers 153-163 are merely exemplary and will be determined by the magnitude of the correction which they are to implement. Thus, while the registers [53-163 may all be of the same type, they would in all probability not have the same number of stages.
As to the construction of the individual stages of the registers 153463, each stage may conveniently comprise a set of four flip-flops with one output from each flip-flop being connected to one of the four lines originating from each of the stages of the register. The flip-flops in the several stages may be set to a desired one of their two stable states as by simple switches applying a control voltage to the set or reset inputs of the flip-flops. Such switches are shown in FIG. 2b as selector switches 153a, 155a, 157a, I590, 161a, and 1630 associated with respective ones of the correction registers 153463.
To apply the signals appearing on the output lines of the re gisters 153-163 to the adder input trunk at desired time periods, a set of read gates is connected between the adder input trunk I43 and the output lines of each of the registers. The output of the XTR register I53, produced on its output lines 154, is applied to the adder input trunk 143 by a set of read gates 165. The gates 165 have a common control input terminal 166 and are opened by application of a gating signal to the terminal. The outputs of the registers 155-!63 are applied at various time periods to the adder input trunk 143 by similarly constructed sets of read gates 167, 169, 17I I73, and I75 respectively.
g. Applying The Modified Command Signals To The Machine Tool Servo Loops From the earlier description of the X-servo loop, it will be When the turret 73 (FIG. 2a) is set up for operation with a particular tool, the registers 153-163 will all be set to represent at their respective output lines the corrections required for the particular tool used. By means of the read gates 145 and 149, the XP and (P registers 123 and 125 will then be periodically interrogated so as to apply their contents representing instructions from the tape 115 to the adder input trunk 143. By a timing system which will be described in greater detail, following each application of the command signals from the XP register 123 to the adder input terminals 137, the contents of the X-axis correction registers 153, 155, and 157 are also applied, sequentially, to the adder input terminals. Thus there is presented on the adder output lines 139 at recurring intervals a signal group representing in binary coded decimal form a subtotal x, (see FIG. 4) representing the required position of the tool holder 93.
From the earlier description of the X-servo loop, it will be recalled that the X-axis digital encoder 97 produces on its output lines an electrically signaled binary coded decimal number representing the actual position of the tool holder 93. Both the required and actual position is that of the datum point D of the holder 93. Through the set of X-axis encoder read gates 103, the output signals of the X-axis digital encoder 97 are applied to the adder input trunk 143 and through it to the adder input terminals 137. By an appropriate instruction to the adder 135, the signals .r, produced by the X-axis digital encoder 97 are subtracted from the corrected X-axis command signal (i.e., from the previous subtotal) and the difi'erence x, then appears on the output terminals 139 of the adder at a subsequent predetermined time period. This difference represents the error, i.e., the difference between the actual and the desired position for the tool holder 93.
A similar procedure is followed for determining on a continuous basis the positional error of the tool holder 93 along the Y-axis. The contents of the Y? register 125 and of the Y- axis correction registers 159, 161, and 163 are successively applied to the adder input terminals 137 so as to produce a subtotal y, representing the corrected Y-axis command signal. During the following time period the output y, of the Y-axis encoder 107 is applied through the Y-axis encoder read gates 117 to the adder input trunk 143 and again by appropriate instruction to the adder 135, the number represented by the signals of the Y-axis encoder 117 is subtracted from the crrected command signal y. so that during the following time period or cycle of the adder 135, the difference y which is the positional error along the Y-axis, appears on the adder output terminals 139.
It follows from the foregoing that at frequent intervals, signals representing positional error along the X- and Y-axes will appear on the adder output trunk 144 at predetermined time periods. These signals are utilized to control the X- and Y-servo loops 76 and 78. To control the X-servo loop 76, the X-axis error signals x produced at the adder output terminals 139 and present on the adder output trunk 144 are applied through a set of write gates 179 to the XE register 18]. The error signals y,, representing positional error along the Y-axis, on the other hand, are applied to register YE 183 through a second set of write gates 185. By means of appropriately timed gating signals applied to timing input lines 217 and 225 of the write gates 179 and 185, the X- and Y-axis error signals x, and y appearing on the same adder output trunk 144 but at different time periods, are gated to the appropriate one of the registers 181 and 183. h. The Error Signal Registers XE and YE In Detail As shown in P16. 20, the XE and YE registers 181 and 183 include seven stages for temporarily storing signals representing in binary code a number having up to seven digits. The registers also contain an eighth stage for storing a signal representing the sign of the number stored in the preceding .ven stages.
With the exception of the stage for storing the sign information, all of the stages of the X register 181 and also of the YE register 183 are identical. In order to illustrate a suitable example for the registers 181 and 183 as well as for the write gates 179 and 185, FIG. 5a shows a portion of the register 181 including the stage 181-7 for storing the sign and the stage 181-6 for storing the highest order digit of the number to be stored.
The sign stage 181-7 comprises a single, gates flip-flop 187, shown in greater detail in H6. 5b. The gated flip-flop 187 includes a flip-flop 189, having a set input 191 and a reset input 193, a l output 195, and a 0" output 197. The "0 output 197 of the flip-flops is not used in the registers 181 and 183. The 1" output is capable of producing a signal at two levels, one corresponding to each of the two stable states of the flip-flop 189. A first level, corresponding to the logic level l is produced at the output 195 when the flip-flop 189 is set by application of a signal at its set input terminal 191. Application of a signal at the reset input terminal 193 will cause the flip-flop to assume its second stable state and the output terminal 195 to produce a signal at a second level corresponding to the logic level 0.
The function of the gated flip-flop is to store a binary signal applied at its data (D) input 199 at a selected instant. A signal representing a binary l" logic level at the data input 199 is to cause the flip-flop 189 to be set and a signal representing binary "0" at the same input is to reset the flip-flop. To this end, the signal at the D input 199 is fed directly to the set input 191 through an AND-gate 201 and a unipolar differentiator 203. The function of the differentiator 203 will appear as this description proceeds.
in order to cause an appropriate triggering signal to be applied at the reset input 193 of the flip-flop 189 when the logic at the D input 199 is at logic 0" level, the signal is first inverted by the inverter 205 and then fed through and AND- gate 207 and a second unipolar ditferentiator 209 and applied to the reset input 193. As seen in FIG. 50, the logic level is represented by a relatively high signal level and a binary l logic level by a relatively lower (i.e., less positive) signal level. The gates 201 and 207 are therefore arranged to transmit a signal when both of their inputs are at the binary "I logic level.
To open the gates 201 and 207 at the instant when it is desired to store the information appearing on the date input line 199 in the flip-flop 189, a second input on each of the AND-gates 201 and 207 is connected to a clock (C) input terminal. With further reference to FIG. 5c, a write clock pulse 213 applied at the clock input terminal 211 of the gated flipflop 187 causes the logic level "1 signal, which may appear either at the output of the inverter 205 or at the D input terminal 199, to be passed through one of the gates 201 and 207. Therefore, at the end, or trailing edge, of the clock pulse 213, a positive-going voltage will appear at the output of that one of the AND-gates 201 and 207 which received a logic level l signal at its input. This positive-going signal is difierentiated by the particular one of the difi'erentiators 203 and 209 receiving it and that differentiator will in turn apply a triggering signal, in response to the voltage rise, to that one of the flipflop inputs 191 and 193 to which its output is connected. The unipolar differentiators 203, 209 are per se well-known and contain an RC-differentiating circuit which converts positive and negative going input wave fronts into sharp position together with a diode which passes only the positive pulses. THus, the flip-flop 189 is triggered only when the relatively long clock pulse 213 ends.
Summing up the operation of the gated flip-flop 187, if the signal applied at its D input terminal 199 is at the binary "1 logic level, a triggering pulse will be applied at the trailing edge of the clock pulse to the set input of the flip-flop 189, causing a binary 1" logic level signal to appear at its output 195. On the other hand, if the signal at the data input terminal 199 is at the binary 0" logic level, then a triggering pulse will be applied to the reset input 193 in response to signals passed through the AND-gate 207, causing the flip-flop 189 to be reset and the signal appearing at its output 195 to be at the binary 0" logic level.
While the sign stage 181-7 utilizes a single gated flip-flop 187, the several digit stages 181-0 through 181-6 each utilize four such gates flip-flop, each flip-flop for storing one bit of the four hits required to represent a decimal digit in binary code. One of these stages is the stage 181-6 shown in FIG. 5a. To permit storage of signals appearing on the adder output trunk 144 in the flip-flops 187 of the register 181, each of the conductors of adder output trunk 144 is connected through one of the lines 215 and through one ofthe write gates 179 to the D input 199 of one of the gated flip-flops 187. Thus, in FIG. 50, each one of the lines 215 from the adder output trunk 144 is connected to one input of an AND-gate 179 whose output is connected to the D input terminal 199 of one of the gated flip-flops 187. The other input of each of the AND-gates 179 is connected to a timing line 217. By means to be be described hereinafter, a gating pulse of appropriate polarity is applied to the timing line 217 during the time period in which the information that is to be stored in the register 181 appears on the adder output trunk 144. Further, in order to assure that the information that is applied to the register 181 is that which occurs after the adder has completed its operation for that time period, an appropriately timed clock pulse is applied on the clock line 219 which is connected to the C input terminals 211 of all of the gated flip-flops 187 within the register 181.
The outputs of the XE register 181 are applied over the output lines 196 to a data transfer trunk 221. The trunk 221 is a multiconductor trunk similar to the adder input and adder output trunks, but with fewer conductors, corresponding in number to the number of output lines 196 from the XE register 181. Thus with the exemplary XE register 181 shown in FIG. 2a, the data transfer trunk 221 would have 29 lines, 4 for each of the 7 digit stages 181-0 through 181-6 and 1 for the sign stage 181-7.
Referring only briefly to the YE register 183, since it may be identical to the XE register 181 just described, data is applied from the adder output trunk 144 to the write gates 185 periodically, once during each time cycle to be described, through input lines 223. At the desired time period, determined by a timing pulse on the timing line 225 of the write gates 185, the logic signals on the input lines 223 are applied to the inputs of the YE register 183. At the desired instant within the selected time periods, as determined by a pulse on the clock line 227 of the YE register 183, the logic signals, now on the output lines 224 of the write gates 185, are applied to the gated flip-flops of the register, immediately appear on its output lines 229, and remain there until the next clock pulse gates a new set of signals into the register.
i. Operation Of The Servo Loops As stated earlier, the signals in the XE register 181 represent the difference between the desired and the actual position of the tool holder 93. Through the data transfer trunk 221, this error-representing signal group is applied to the inputs of a digital to analog converter 231 in the X axis servo loop 76. Digital to analog converters are well known and will not be described here. 1t is sufficient to note that the digital to analog converter 231 has a plurality of inputs 233 which include several sets of four input lines, each set for receiving the four binary signals which represent one digit of a decimal number and one line for receiving the binary signal indicating the sign of the signaled number. Further, the converter 231 has an output 235 at which it produces an electrical analog of the number represented by the digital signals at its inputs. Assuming the simplest case, the electrical analog will be directly proportional to the number signaled digitally at the inputs 233 and will have a polarity corresponding to the sign of the number so signaled.
To enable the electrical analog on the output line 235 to *"erate the X-axis servomotor 77, it is applied to a servoamplifier 237 having an input connected to the output line 235 and an output connected to the X-axis servomotor 77. Again, assuming the simplest case, the X-axis servoamplifier 237 may be a linear one so that the signal applied to the X axis servomotor 77 will be proportional to the electrical analog on the output line 235 and therefore to the positional error number digitally signaled on the output lines 196 of the XE register 181.
Through a set of suitable gears (not shown), the output shaft of the servomotor 77 is connected to the X-axis lead screw 75 and is operative to drive the lead screw in a direction and at a velocity corresponding to the digitally signaled error signal appearing on the XE register output lines 196.
The Y-axis servo loop 78 is similarly arranged. A data transfer trunk 239 carries the digitally signaled Y-axis error from the output lines 229 of the YE register 183 to the input lines 241 of the Y-axis digital to analog converter 243. The electrical analog produced by the converter 243 on its output line 245 is amplified by a Y-axis servoamplifier 247 whose output in turn is connected throufli lines 249 to the input of the Y axis servomotor 81. Thus, in a manner similar to the operation of the X-axis servo loop, the Y-axis servomotor 81 will rotate the lead screw 79 through distances and at velocities in conformance with the sign and value of the digitally signaled error number y, in the YE register 183.
In both the X-axis servo loop 76 and the Y-axis servo loop 78, the lead screws 75 and 79 are driven in a direction which will cause the magnitude of the error between the actual and desired positions of the tool holder to be reduced. Consequently, the servo loops 76 and 78 will continue to drive the lead screws 75 and 79 at rates and in directions which will cause the position of the tool holder 93 to follow, with a minimum of error, the position represented by the corrected position command signals produced in the adder and employed to derive the signals representing the X- and Y-axis error numbers.
It is important to realize that the and Y servo loops 76 and 78, and in particular their respective registers 181 and 183, represent only two of many digital data utilization devices which would receive digital data from the adder output trunk 144 in a typical machine-tool-control system.
j. Timing Of Data Flow To And From The Adder- Terminology lt will be recalled that data flows to the adder 135 from the registers 123 and 125 and also from the correction registers 153 to 163 through a common input trunk 143. Similarly, a common adder output trunk 144 is shared by the error registers XE 181 and YE 183 for receiving data from die adder. Many schemes could be devised for effecting a workable time sharing arrangement wherein data would flow from the various sources to the adder at difierent preselected time periods, and wherein different time periods would also be provided for causing data to flow through the adder output trunk 144 to the various utilization devices such as the error registers XE 181 and YE 183. The present invention would be equally applicable to all of them. The system which will be described here for sake of a specific example is a particularly simple and flexible one and may be best explained by employing terms commonly used to express periods of time, such as the year, the month, the week, and the day. in particular, in the machine tool control system under discussion, a set sequence of computations is performed during each major cycle of the system, each major cycle lasting a fiftieth of a second, or 20 milliseconds, and being called a year" of machine time. This machine "year of time is divided into 10 consecutive months," each of which lasts one five-hundredths of a second or 2 milliseconds. Each month of machine time is further divided into 10 smaller consecutive time periods labeled "weeks," each week+ being 0.20 milliseconds long. Finally, each week" of machine time is divided into 10 basic consecutive time periods called days" with a "day lasting 20 microseconds.
A reference to F1G.6 will help to understand this method of subdividing time. FIG. 6 shows a table, partially broken away, representing a machine "year'Timing divided into 10 columns, each column representing one of 10 months. Each of the month columns is divided into 10 successive subcolumns representing a "week." Finally, each of the ten subcolumns or weeks is further divided into 10 blocks of time