NUMERICAL CONTROL METHOD

Abstract: A method of numerically controlling a machine tool which has two or more tools (TL1, TL2, TL3), such as a multiple-spindle automatic lathe, comprises the steps of preparing numerical control dataspecifying a time and a positional relationship between movable spindles (X1, X2, X3, Z), numerically controlling the position of each of the movable spindles (X1, X2, X3, Z) on the basis of the numeri­ cal control data; monitoring to determine whether or not a period of time elapsed matches the time specified by the numerical control data; and, when the time elapsed is equal to a period of time specified by the numerical control data for a specific movable spindle, controlling the position of the movable spindle by means of subsequent numerical control data therefor.

Description: This invention relates to a numerical control method and, more particularly, to a numerical control method well-suited for application to a machine tool such as, for example only, a multi-spindle automatic lathe. As shown in Fig. 1, a multi-spindle automatic lathe, which is for the purpose of shortening machining time and fostering mass production, has a number of mutually independently movable shafts (tools) TL₁ through TL₃ arrayed about a workpiece WK. The arrangement is such that the lathe subjects the workpiece WK to prescribed machining by applying machining performed by one tool followed by machining performed by a subsequent one of the tools when the preceding machining is completed. However, in order to make it possible to control the movement of each tool independently in such a prior-art multi-spindle automatic lathe, a cam rotated by a rotary shaft, not shown, is provided for each and every tool, and it is arranged so that the workpiece is subjected to prescribed machining by moving the tools toward the workpiece independently owing to rotation of the cams. This results in structural complexity and higher cost. Furthermore, though multi-spindle automatic lathes may be controlled numerically, the creation of NC data is troublesome. US-A-4053819 discloses a numerical control system for a lathe wherein movement of a tool is controlled in dependence upon data from a tape, but wherein the complex control of the movement of a plurality of tools is not addressed. An object of the present invention is to provide a novel numerical control method in which provision of cams for a plurality of tools is unnecessary, and through which NC data can be created in a simple manner and numerical control performed on the basis of such NC data. Another object of the present invention is to provide an effective numerical control method suitable for use in controlling a multi-spindle automatic lathe, for example. According to the present invention there is provided a method for numerically controlling a machine tool having a plurality of tools each movable along its own respective axis, the positions of the tools being controlled in dependence upon NC data provided in a suitable storage medium, said method comprising specifying in said NC data the desired positions of each tool at respective successive instants in time, or rotational angles of a predetermined rotary shaft, monitoring elapsed time or the rotational angle of said shaft during operation of the machine tool and, when any instant of time or shaft rotational angle specified for any tool is reached, subsequently using the next following stored data relevant to that tool to control the movement of that tool up to the next instant of time or shaft rotational angle again specified for that tool, whereby the tools are controlled independently of one another but in such a way that they can operate upon a single workpiece, the tools all being in respective predetermined positions at predetermined times or shaft rotational angles. In embodiments of the present invention there are created NC data which indicate the correspondence between time and position for every axis of movement, or NC data which indicate the correspondence between a rotational angle of a predetermined rotary shaft and position for every axis of movement, wherein whenever elapsed time or the rotational angle of the rotary shaft becomes equal to a time or rotational angle specified by NC data in a currently prevailing block, a position along a predetermined axis of movement is controlled in accordance with NC data in a succeeding block. Embodiments of the invention may further provide a numerical control method which includes creating, for every axis of movement, a relation between time and a position along the axis of movement or a relation between a rotational angle and a position along the axis of movement, the relation serving as numerical control data, controlling each axis of movement based on the numerical control data, monitoring elapsed time or the rotational angle and, whenever the elapsed time or rotational angle attains a time or rotational angular position specified by the numerical control data for each axis of movement, controlling the axis of movement in accordance with succeeding numerical control data. According to this numerical control method, NC data can be created in simple fashion so that the method is well-suited for use in controlling a multi-spindle automatic lathe or the like. Brief Description of the Drawings Fig. 1 is a view for describing a multi-spindle lathe, Fig. 2 is a block diagram of an NC apparatus to which the present invention is applied, Fig. 3 is a view for describing a shape machined according to the present invention, Fig. 4 is a view of curves showing the relation between position and time for each axis of movement for the purpose of obtaining the machined shape shown in Fig. 3, Fig. 5 is a view for describing NC data for the purpose of obtaining the machined shape shown in Fig. 3, Fig. 6 is a block diagram of a pulse distributor circuit in Fig. 2, Fig. 7 is another block diagram of an NC apparatus to which the present invention is applied, and Fig. 8 is a block diagram of a pulse distributor circuit in Fig. 7. Fig. 2 is a block diagram of an embodiment utilising the present invention. Hereafter a case will be described wherein a part having the shape shown in Fig. 3 is machined by a multi-spindle automatic lathe which includes three tools TL₁, TL₂, TL₃. In the description it will be assumed that X₁, X₂ and X₃ axes are the axes along which the first, second and third tools TL₁, TL₂, TL₃ are movable, and that the Z axis is the axis along which the workpiece WK is moved longitudinally. When an NC data read operation is initiated by an operator's panel 102, a processor 101, under the control of a control program stored in a ROM 103, is operable to deliver an NC data read command to a data reader 104 to read numerical control data (NC data) punched in a paper tape 105 and store the read NC data in a RAM 106. If we assume that the part having the shape shown in Fig. 3 is to be machined, then a relation (time chart) between position and time for each of the axes of movement will be as illustrated in Fig. 4. The NC data are created in accordance with the time chart and are stored punched into the paper tape 105. More specifically, the NC data are created in the following form and punched into the paper tape 105: X₁ T₁, 0; T₂, x₁; T₃, x₁; T₄, x₄; T₄', 0; M99; X₂ T₆, 0; T₇, x₂; T₈, 0; M99; X₃ T₈, 0; T₉, x₃; T₁₀, x₃; T₁₁, 0; M99; Z T₂, 0; T₄, (z₁+z₂); T₅, 0; T₉, 0; T₁₀, z₃; T₁₁, 0; M99; where M99 signifies the end of the command for each axis. Accordingly, by reading the NC data, these data will be stored for each axis in the RAM 106 in order of time as shown in Fig. 5. When an NC control start signal is issued by the operator's panel 102 after the NC data are stored in the RAM 106, the processor 101 reads a first item of NC data for each axis out of the RAM 106, that is, reads T₁, 0; with regard to the X₁ axis, T₆, 0; with regard to the X₂ axis, T₈, 0; with regard to the X₃ axis, and T₂, 0; with regard to the Z axis, stores these data in respective registers 107X₁, 107X₂, 107X₃ and 107Z of a register section 107, and initiates the timing operation of a timer 108. Of the first items of NC data for these axes, times T₁, T₆, T₈, T₂ are applied to respective comparators 109X₁, 109X₂, 109X₃ and 109Z. Further, the first items of NC data T₁, 0; T₆, 0; T₈, 0; T₂, 0; are applied to respective pulse distributor circuits 110X₁, 110X₂, 110X₃, 110Z. As shown in Fig. 6, the pulse distributor circuits 110X₁, 110X₂, 110X₃, 110Z each have a position register APR (initial value zero), a time register TR (initial value zero), an arithmetic unit SPMC, and a well-known pulse interpolator PIC. Let us assume that a position commanded by the NC data is L t , that a commanded position in a preceding block stored in the position register APR is L a , that a time commanded by the NC data is T t , and that a commanded time in the preceding block stored in the time register TR is T a . The arithmetic unit SPMC calculates an incremental value L i and a feedrate F i based on the following equations: L i = L t - L a (1) F i = |L t -L a |/(T t -T a ) (2) and delivers these to the pulse interpolator PIC. The latter performs a well-known pulse interpolation operation based on L i and F i to produce distributed pulses having a frequency proportional to F i . It should be noted that the content of the position register APR and of the time register TR is replaced by L t , T t , respectively, after the operations of Eqs. (1), (2) are performed. When the first items of NC data are applied to the pulse distributor circuits 110X₁, 110X₂, 110X₃, 110Z, Eqs. (1), (2) are evaluated. Since the results of the computations will be zero, however, no distributed pulses are produced. Meanwhile, the comparators 109X₁, 109X₂, 109X₃, 109Z constantly determine whether a present time t has become equal to times T₁, T₆, T₈, T₂ applied thereto from the register section 107. The comparator 109X₁ produces a time-over signal TOX₁ if t=T₁ holds, the comparator 109Z a time-over signal TOZ if t=T₂ holds, the comparator 109X₂ a time-over signal TOX₂ if t=T₆ holds, and the comparator 109X₃ a time-over signal TOX₃ if t=T₈ holds. When the time-over signals TOX₁, TOX₂, TOX₃, TOZ are generated, the corresponding pulse distributor circuits 110X₁, 110X₂, 110X₃, 110Z immediately cease their pulse distribution operations and corresponding counters 111X₁, 111X₂, 111X₃, 111Z have their states (initial value 1) SN₁, SN₂, SN₃, SN₄ incremented by one in accordance with the following expressions: SN₁ + 1 → SN₁, SN₂ + 1 → SN₂, SN₃ + 1 → SN₃, SN₄ + 1 → SN₄ The time-over signals TOX₁, TOX₂, TOX₃, TOZ enter an interrupt circuit 112 to interrupt the processor 101 immediately. When this occurs, the processor 101 reads the state of the counters (111X₁, 111X₂, 111X₃, 111Z) associated with the axes of movement for which the time-over signals have been generated, goes to the RAM 106 to read out the NC data designated by these counters, and delivers the NC data to the register section 107. These NC data are delivered to the comparators and pulse distributor circuits of the corresponding axes. If we take Figs. 3 and 4 as an example, the time-over signal TOX₁ is generated and the state SN₁ of counter 111X₁ is incremented to 2 when t=T₁ holds. As a result, the processor 101 goes to the RAM 106 to read out NC data (a second item of NC data) T₂, x₁; concerning the X₁ axis, which data is designated by the state SN₁ of the counter. The processor sets this data in the register 107X₁. The commanded time T₂ and the commanded position x₁ enter the pulse distributor circuit 110X1. The commanded time T₂ is also applied to the comparator 109X₁, in response to which the comparator 109X₁ restarts the time comparison operation. Meanwhile, the pulse distributor circuit 110X₁ executes the evaluation of Eqs. (1), (2) to obtain the incremental value L i and feedrate F i , and executes a pulse distribution operation based on L i , F i to generate distributed pulses XP₁. It should be noted that L i =x₁, F i =x₁/(T₂-T₁) since L t =x₁, L a =0, T t =T₂, T t =T₁ in Eqs. (1), (2). The distributed pulses XP₁ produced by the pulse distributor circuit 110X₁ enter a servo circuit 113X₁. An X₁-axis motor 114X₁ rotates under the control of the servo circuit 113X₁ so that the tool TL₁ (Fig. 3) starts to move (refer to segment X₁ in Fig. 4). By continuing the foregoing control operation, the tool TL₁ reaches a point P₁₁ in Fig. 3 at a time t=T₂. When the relation t=T₂ is attained, the comparators 109X₁, 109Z generate the time-over signals TOX₁, TOZ, in response to which the pulse distributor circuit 110X₁ immediately halts the pulse distribution operation. Moreover, the states SN₁, SN₄ of counters 111X₁, 111Z attain values of 3, 2, respectively, and the processor 101 is interrupted. Upon being interrupted, the processor 101 reads the contents of counters 111X₁, 111Z and, using the states SN₁, SN₄, goes to the RAM 106 to read a third item of NC data T₃, x₁; with regard to the X₁ axis and a second item of NC data T₄, (z₁+z₂); with regard to the Z axis, these then being set in the registers 107X₁, 107Z, respectively. Of the NC data T₃, x₁; for the X₁ axis, the commanded time T₃ is applied to the comparator 109X₁ and pulse distributor circuit 110X₁, and the commanded position x₁ is applied to the pulse distributor circuit 110X₁. Of the NC data T₄, (z₁+z₂); for the Z axis, the commanded time T₄ is applied to the comparator 109Z and pulse distributor circuit 110Z, and the commanded position (z₁+z₂) is applied to the pulse distributor circuit 110Z. Thereafter, the comparators 109X₁, 109Z resume the time comparison operations. Meanwhile, the pulse distributor circuits 110X₁, 110Z evaluate the Eqs. (1), (2) to obtain the incremental value L i and the feedrate F i and execute pulse distribution operations based on these values. With regard to the X₁ axis, L i =0, F i =0 will hold. As a result, no distributed pulses are generated and movement stops along the X₁ axis. Further, since L i =(z₁+z₂), F i =(z₁+z₂)/(T₄-T₂) will hold for the Z axis, distributed pulses ZP are generated and enter a servo circuit 113Z. As a result, a Z-axis motor 114Z rotates so that the workpiece WK (Fig. 3) starts to be moved along the +Z axis (refer to segment Z in Fig. 1). The tool TL₁ consequently travels relative to the workpiece WK, i.e., along a straight line segment L₁ (Fig. 3) to perform cutting. By continuing the foregoing control operation, the tool TL₁ moves relative to the workpiece and arrives at a point P₁₂ in Fig. 3 at the instant t=T₃ is attained. Meanwhile, when t=T₃ is attained, the comparator X₁ generates the time-over signal TOX₁ to increment the state SN₁ of counter 111X₁ to 4 and interrupt the processor 101. Upon being interrupted, the processor 101 reads the state SN₁ (=4) of counter 111X₁, goes to the RAM 106 to read a fourth item of NC data T₄, x₄;, and sets the data in the register 107X₁. Of the NC data set in the register 107X₁, the commanded time T₄ is applied to the comparator 109X₁ and pulse distributor circuit 110X₁, and the commanded position x₄ is applied to the pulse distributor circuit 110X₁. Thereafter, the comparator 109X₁ resumes the time comparison operation, and the pulse distributor 110X₁ evaluates the Eqs. (1), (2) to obtain the incremental value L i and the feedrate F i and execute pulse distribution operations based on these values. It should be noted that L i =(x₄-x₁), F i =(x₁-x₄)/(T₄-T₃). As a result, simultaneous two-axis control is exercised along the X₁ and Z axes so that the tool TL₁ is moved along a line segment L₂ (Fig. 3) to perform taper cutting. By continuing taper machining, the tool TL₁ will reach a point P₁₃ at the instant t=T₄ is attained. When the relation t=T₄ is attained, the comparators 109X₁, 109Z generate the time-over signals TOX₁, TOZ, in response to which the pulse distributor circuits 110X₁, 110Z immediately halt their pulse distribution operations. Moreover, the states SN₁, SN₄ of counters 111X₁, 111Z attain values of 5, 3, respectively, and the processor 101 is interrupted. Upon being interrupted, the processor 101 reads the contents of counters 111X₁, 111Z and, using the states SN₁, SN₄, goes to the RAM 106 to read a fifth item of NC data T₄', 0; with regard to the X₁ axis and a third item of NC data T₅, 0; with regard to the Z axis, these then being set in the registers 107X₁, 107Z, respectively. After this has been accomplished, these data are applied to the comparators 109X₁, 109Z and to the pulse distributor circuits 110X₁, 110Z. Thereafter, control similar to the foregoing is carried out to return the tool TL₁ to its initial position at time T₄' and to return the workpiece WK to its initial position at time T₅, so that the relation between the workpiece and each of the tools will be as shown in Fig. 3. When the relation t=T₅ is attained, the state SN₄ of the counter 111Z takes on a numerical value of 4 and a fourth item of NC data T₉, 0; relating to the Z axis is set in the register 107Z. Since L i =0 will hold, however, there is no movement of the workpiece WK along the Z axis so that the workpiece is at rest until t=T₉ is achieved. Further, when the relation t=T₄' is attained, the state SN₁ of the counter 111X₁ takes on a numerical value of 6, so that the processor 101 reads a sixth item of NC data concerning the X₁ axis out of the RAM 106. Since the sixth item of NC data is M99;, however, the processor 101 identifies this as indicating the end of control along the X₁ axis. Thereafter, the comparator X₂ generates the time-over signal TOX₂ when the relation t=T₆ is attained. As a result, the state SN₂ of the counter X₂ takes on a numerical value of 2, so that the processor 101 reads a second item of NC data T₇, x₂; concerning the X₂ axis out of the RAM 106 and sets the data in the register 107X₂. The commanded time T₇ and the commanded position x₂ enter the pulse distributor circuit 110X2. The commanded time T₇ is also applied to the comparator 109X₂, in response to which the comparator 109X₂ restarts the time comparison operation. Meanwhile, the pulse distributor circuit 110X₂ executes the evaluation of Eqs. (1), (2) to obtain the incremental value L i and feedrate F i , and executes a pulse distribution operation based on L i , F i to generate distributed pulses XP₂. It should be noted that L i =x₂, F i =x₂/(T₇-T₆). The distributed pulses XP₂ produced by the pulse distributor circuit 110X₂ enter a servo circuit 113X₂. An X₂-axis motor 114X2 rotates under the control of the servo circuit 113X₂ so that the tool TL₂ (Fig. 3) starts to move (refer to segment X₂ in Fig. 4). The tool TL₂ reaches a point P₂ in Fig. 3 at a time t=T₇. Thereafter, control similar to the foregoing is carried out to return the tool TL₂ to its initial position at t=T₈. At the same time that the tool TL₂ is returned to its initial position, the tool TL₃ starts travelling (see segment X₃ in Fig. 3) and stops upon arriving at a point P₃₁ (Fig. 3) at time T₉. When time T₉ is reached, the workpiece WK travels a distance z₃ along the +Z axis until time t₁₀. In other words, the tool TL₃ travels relative to the workpiece WK along a straight line L₃ to perform cutting. The tool TL₃ and workpiece Wk subsequently return to their initial positions and control for machining the part having the shape shown in Fig. 3 ends. According to the foregoing description, the arrangement is such that a subsequent item of NC data is read out of the RAM 106 whenever a time-over signal is generated. However, an arrangement is permissible wherein two blocks of NC data are read at all times by means of a prereading technique. It is also possible to provide the NC data with an M-function instruction or the like. Furthermore, while the NC data have been created so as to specify a relation between time and position by using a time chart, it is also possible to create NC data so as to specify a relation between a rotational angle and position by using a Q-ℓ table in which a rotational angle Q is taken as a horizontal axis and position ℓ is taken as a vertical axis. Fig. 7 is a block diagram of an embodiment for a case where NC data are created by using a Q-ℓ table. Fig. 8 is an example of a pulse distributor circuit in such case. Fig. 7 differs from Fig. 2 in that (1) the timer 108 of Fig. 2 is supplanted by a pulse generator 202 for generating one rotation pulse RP each time a motor 201 driving a rotary shaft rotates through a predetermined angle, and by a counter 203 for monitoring the rotational angle by counting the rotation pulses RP generated by the pulse generator 202, (2) a value (rotational angle) A counted by the counter 203 is applied as an input to each of the comparator circuits 109X₁, 109X₂, 109X₃, 109Z and (3) the rotation pulses RP are applied as inputs to the pulse distributor circuits 110X₁, 110X₂, 110X₃, 110Z. The comparators 109X₁, 109X₂, 109X₃, 109Z compare rotational angles A₁, A₂, A₃, A₄ specified by NC data with the actual rotational angle A produced by the counter 203. When agreement is attained, the comparators produce respective arrival signals AR₁, AR₂, AR₃, AR₄ instead of the time-over signals TOX₁, TOX₂, TOX₃, TOX₄ of Fig. 2. The arithmetic unit SPMC (Fig. 8) of each of the pulse distributor circuits 110X₁, 110X₂, 110X₃, 110Z calculates the incremental value L i , which is the difference between the position L t commanded by the NC data and the commanded position L a of the preceding block stored in the position register APR, and delivers the incremental value to the pulse interpolator PIC. The latter produces distributed pulses by executing a well-known pulse interpolation calculation based on the incremental value L i whenever the rotation pulse RP is generated. According to the present invention, the arrangement is such that correspondence between time and position, or between rotational angle and position, is created for each controlled axis. NC data can therefore be created in a simple manner from a time chart or Q-ℓ table. In addition, according to the present invention, the apparatus is so constructed as to enable NC control on a time or rotational angle basis so that numerical control can be performed by using the aforementioned NC data. The invention is therefore extremely effective when applied to a multi-spindle automatic lathe.

Claims: A method for numerically controlling a machine tool having a plurality of tools (TL₁,TL₂,TL₃) each movable along its own respective axis, the positions of the tools (TL₁,TL₂,TL₃) being controlled in dependence upon NC data provided in a suitable storage medium (105,106), said method comprising specifying in said NC data the desired positions of each tool at respective successive instants in time, monitoring elapsed time during operation of the machine tool and, when any instant of time specified for any tool is reached, subsequently using the next following stored data relevant to that tool to control the movement of that tool up to the next instant of time again specified for that tool, whereby the tools (TL₁,TL₂,TL₃) are controlled independently of one another but in such a way that they can operate upon a single workpiece, the tools all being in respective predetermined positions at predetermined times. A method according to claim 1, wherein said machine tool is a multi-spindle lathe and said tool axes are directed towards the longitudinal axis of a workpiece, and the method includes controlling movement of the workpiece along its longitudinal axis in the same manner as movement of each tool along its own tool axis is controlled. A method according to claim 1 or 2, comprising steps of calculating velocity from time data and position data, and generating pulses of a frequency proportional to said velocity by a pulse interpolation calculation, a position along an axis of movement being controlled by said pulses. A method for numerically controlling a machine tool having a plurality of tools (TL₁,TL₂,TL₃) each movable along its own respective axis, the positions of the tools (TL₁,TL₂,TL₃) being controlled in dependence upon NC data provided in a suitable storage medium (105,106), said method comprising specifying in said NC data the desired positions of each tool at respective successive rotational angles of a predetermined rotary shaft, monitoring the rotational angle of said shaft during operation of the machine tool and, when any shaft rotational angle specified for any tool is reached, subsequently using the next following stored data relevant to that tool to control the movement of that tool up to the next shaft rotational angle again specified for that tool, whereby the tools (TL₁,TL₂,TL₃) are controlled independently of one another but in such a way that they can operate upon a single workpiece, the tools all being in respective predetermined positions at predetermined shaft rotational angles. A method according to claim 4, wherein said machine tool is a multi-spindle lathe and said tool axes are directed towards the longitudinal axis of a workpiece, and the method includes controlling movement of the workpiece along its longitudinal axis in the same manner as movement of each tool along its own tool axis is controlled. A method according to claim 5, wherein a rotational angle sensor generates a pulse whenever said rotary shaft rotates through a predetermined angle, and a pulse interpolation calculation is effected using NC position data whenever such pulse is generated, a position along an axis of movement being controlled by further pulses provided by said pulse interpolation calculation,

Inventors: KOMIYA, HIDETSUGU
Applicants: FANUC LTD.
Application year: 1984
Main classification: G05B19
IPC codes: G05B19