Patent GB-1320034-A (GB)
Title: Numerical control contouring system
IPC: G05B19/416
Filed: 1970-07-15
Abstract: 1320034 Programmed control of machine tools ALLEN-BRADLEY CO 15 July 1970 [15 July 1969] 34403/70 Heading G3N A feedrate and contour generator uses known digital differential integrator circuits, DD1 Fig.1 (not shown) as pulse rate multipliers, the ratio of the output to the input frequency being proportional to the binary number stored in the DD1. The DD1's 28, 30, 312, 314, 316 store the numbers D<SP>-1</SP>, V,#X, #Y, #Z respectively, where #X, #Y, #Z are desired co-ordinate  increments, D the distance corresponding to #X, #Y, #Z, and V the desired feedrate, the outputs of the axis DD1's thus being pulse rates which result in movement of a machine member at a desired speed in a desired direction. Normalizing Circuit. The numbers stores in the DD1's are regarded as being less than unity, since the output frequency of each DD1 is always less by a factor than the input frequency, and in order that the output frequencies will not be excessively low Fig.3 (not shown), numbers are left shifted in the V and axis DD1's by means of a normalizing circuit 332, see also Fig.15 (not shown), utilizing counters and logic devices. During a timing interval (3T), Fig.10 (not shown), see below, the number V is fed from the left into its DD1, and via the inlet (231), Fig.15 (not shown) an up counter (222) counts the zeros in the number, and is cancelled if a 1 occurs, the number of zeros to the left of the most significant digit in V thus being stored in (222) when V is completely fed into its DD1. This count, representing the number of significant digits in the number is transferred via ANDS (252A-E) to a down counter (256). Similarly during an interval (4T) Fig.10 (not shown), X, Y, Z, data is fed via terminals (232, 234, 236) to the counter (222) which counts if zeros appear in all of them, or is otherwise reset, so that it stores the number of zeros to the left of the most significant digit for the largest of the three, when the numbers are transferred to their DD1's. This number is transferred to down counter (258). During an interval (5T) Fig.10 (not shown), the numbers in V and the axis DD1's are circulated to the left but by means of flip-flops (268, 270) the shift pulses which also cause the down-counters (256, 258) to function are prevented from reaching the respective DDl's until (256) reads zero, (258) reads unity, so that V has its most significant digit at the left, the axis DD1's having one zero to the left of the most significant digit. The V DD1 is normalized before the axis ones. If the feed rate is programmed as a feed rate number, V/D, the total number of zeros removed from the axis and feedrate number DD1's will be constant Fig.3 (not shown), and in this case no number need be stored in (256), since zeros are removed from axis and feedrate DD1's sequentially, counter (222) serving to count the total number of zeros removed. The counter (256) counts below zero as the axis DD1's are normalized, finally registering the number of zeros removed from the axis DD1's. This number is transferred to (222) during interval (6T), and during further iteration cycles when the DD1's are operating, via gate (282) produces a marker output whenever the least significant digit appears at the low end of the axis DD1's. Calculation of D. The value of D = ##X<SP>2</SP> + #Y<SP>2</SP> + #Z<SP>2</SP> is approximated by the linear expression D#A+¢B-#A+C if ¢B-#A#0, or D# A+C if ¢B-#A<0 where A is the greatest, C the least of #X, #Y, #Z. In Fig.13 (not shown) pairs of co-ordinate values are fed to flip-flops (136, 138, 140) which during interval (5T) assume states corresponding to the relative co-ordinate magnitudes, and at subsequent time intervals the values are fed to the dividing circuit Fig.14 (not shown) where division is accomplished by right shifting, and reading the numbers through to the DD1(D) from the last, second last, third last, fourth last, position respectively, for division by 1,2,4, or 8. Divisions by; 8,2,4 and test for sign of ¢B-#A, take place in time intervals (7T-10T) respectively, under control of flip-flops (220A-E). Calculation of 1/D. In Fig.5 (not shown) a DD1 (32) stores the number D, and the complement of D forms an approximation to 1/D, the output of (32) is thus proportional to fo.1/D   .D, and a difference circuit Fig.6 (not shown) ensures that the number stored in the 1/D DD1 is changed to ensure effectively that (1/D). D=1. Clock and timing pulses. Fig.8 (not shown) displays pulses used in the operation of the system. The thirty clock pulses result in a complete circulation of the digits in the integrand (10), Fig.1 (not shown) of each DD1, the other pulses displayed being used in the control of the system. Fig.7 (not shown) displays the circuitry to produce the pulses, with appropriate relative phases, all at the same frequency, 166.66 kHz. Further pulses 1T-6T are produced by the flip-flops of Fig.9 (not shown), each having a duration equal to the iteration time of a DD1, and in the logic circuitry of Fig.11 (not shown) the further control pulses displayed in Fig.12 (not shown) are produced. The use of the pulses is described, or displayed in the figures. The system of Fig.16 utilises position data in absolute form, the information concerning the actual position of the machine member being fed from servos 318-322 to the axis DD1's, which, receiving also X, Y, Z information from 298, 300, 302, store the desired increments. The i, j, k, command buffers 306, 308, 310 store additional information for circular interpolation if such is used, i, j, k being radius components. For circular interpolation, the distance calculation above is carried out in terms of i, j, k, to give the radius, R and a feedrate number V/R is used. One of the digits stored in the #X, #Y, #Z DD1's corresponds to the sign of the desired increment.