1. Field of the Invention
The present invention relates to a numerical controller for controlling a machine tool, and more specifically to a numerical controller having a function of drive-controlling each axis on the basis of data stored in the form of a table.
2. Description of Related Art
A numerical controller that allows the free movement of a tool without being constrained by commands in blocks as in conventional technology and enables a reduction in machining time and high precision in machining by prestoring the motion amount and position of each axis in the form of a table and drive-controlling each axis according to the data stored in the table, instead of by commands in blocks of an NC program, has been publicly known.
For example, there is a well-known invention that prestores the position of a movable axis by time or by rotation angle as numerical control data, monitors time or rotation angle, and output the numerical control data corresponding to the movable axis every time the stored time or rotation angle is reached (see JP 59-177604A).
In another well-known invention, there is provided a data table for storing the commanded positions of X-axis and Z-axis with respect to reference positions. A value of a counter for counting reference pulses is multiplied by an override value to obtain the reference positions. Based on the reference positions, the commanded positions of the X-axis and Z-axis stored in the data table are outputted to synchronously control the X-axis and the Z-axis. By so doing, even if the drive control is performed by the data stored in the data table, an override can be used. It is also possible to give a command for linear connection between the commanded positions, quadratic-function connection, cubic-function connection or the like, and to give a command for auxiliary functions (see JP 2003-303005A).
In the example illustrated in
In the same manner, a Z-axis position is stored in the Z-axis path table Tz in relation to a reference variable. Moreover, a pulse from a position encoder fixed to the spindle (spindle position) or a reference pulse based on time from a reference external pulse generating section is inputted into a counter 1 to be counted. An override value set by override means is multiplied by the counted value of the counter 1 using a multiplier 2 and is stored in a reference variable counter 3. The reference variable counter 3 is reset at the time point when the path-table operation is commanded. Values of the reference variable counter 3 are inputted as reference positions into X-axis and Z-axis path table interpolation processing sections 4x and 4z. The X-axis and Z-axis path table interpolation processing sections 4x and 4z obtain commanded positions of the X-axis and Z-axis with respect to the reference positions, referring to the X-axis path table Tx and the Z-axis path table Tz, and obtain motion amounts in a processing cycle to output the motion amounts to control axis motors 5x and 5z as commands. The X-axis and the Z-axis are then synchronously operated according to the reference positions.
When the path-table operation is carried out by a multi-axis and multi-system lathe or the like, because the reference time or spindle position is common in a conventional numerical controller, the machining by the path-table operation cannot be performed in systems individually. The machining therefore has to be executed after the processing of another system is finished. Additionally, when the path-table operation is performed in a certain system, it is impossible to execute an operation by regular NC statements in another system.
The present invention provides a numerical controller for controlling a plurality of systems, which enables a path-table operation to be performed in systems individually, the controller in which while a path-table operation is performed in one system, a path-table operation and an NC statement operation are allowed to be performed in another system.
A numerical controller of the present invention controls operations of motors for driving axes of a machine tool, in a plurality of control systems each including one or more of the motors each for driving one of the axes. The numerical controller comprises: first control means for controlling operations of the motors respectively for the plurality of control systems according to NC statements; second control means for controlling operations of the motors respectively for the plurality of control systems according to data tables each storing commanded positions of the axes in each of the plurality of control systems with respect to values of a reference variable; and changeover means for changing over between the controlling of the motors by the first control means and the controlling of the motors by the second control means.
Values of the reference variable updated independently may be used respectively for the data tables for the plurality of control systems.
In this case, the numerical controller may further comprising means for performing waiting of operations of the motors in two or more of the plurality of control systems in controlling operations of the motors according to the data tables.
Values of the reference variable updated commonly may be used for the data tables for the plurality of control systems.
The numerical controller may further comprise means for switching over between a mode in which values of the reference variable updated commonly are used for the data tables for the plurality of control systems and a mode in which values of the reference variable updated independently are used respectively for the data tables for the plurality of control systems.
The numerical controller may further comprise means, in controlling the motors according to the data table in one of the plurality of control systems, for starting controlling of the motors according to the data table in another of the plurality of control systems.
The numerical controller may further comprise means, in controlling of the motors according to the NC statements in one of the plurality of control systems, for starting controlling of the motors according to the data table in another of the plurality of control systems.
The reference variable may be time or a rotational position of a spindle (an axis which rotates in one direction).
In a multi-system numerical controller that controls and operates a plurality of systems, the operation can be performed either by NC statements or by table data. As to a reference of the table data, the operation can be carried out using either a common reference or specific references to the respective systems. It is possible to command the start of an operation by the table data of another system in the middle of the operation performed by NC statements or table data. It is also possible to perform an operation by table data after waiting for two or more systems.
a and 7b are explanatory views of one example of path tables used in the embodiment where the waiting operation is performed between two systems;
The systems #1 and #2 have path tables T-1 and T-2, reference variable counters 3-1 and 3-2, and path table interpolation processing sections 4-1 and 4-2, respectively. There are also provided motors M-1x, M-1z, M-2x, and M-2z for the respective systems.
Pulses from a position encoder fixed to a spindle (spindle position) or reference pulses on the basis of time from a reference external pulse generating section are inputted into a counter 1 to be counted. A counted value of the counter 1 is multiplied by an override value that is set in override means by using a multiplier 2. An output of the multiplier 2 is inputted to each of the reference variable counters 3-1 and 3-2. The reference variable counters 3-1 and 3-2 are individually resettable, and update thereof can be stopped and started again. If the spindle position is used as the reference variable, since a feedback pulse from the position encoder has already generated by providing an override to the rotational frequency of the spindle, the override value multiplied to the value of the counter 1 equals 1. Additionally, command pulses of the spindle may be counted.
In order to enable the path-table operations to be performed synchronously using values of the reference variable commonly among the systems, the reference variable of any one of the systems is set as a common reference variable. Based on this reference variable, the synchronized path-table operations of the systems can be carried out. In this embodiment, an output of the reference variable counter 3-1 of the system #1 can be outputted to the path table interpolation processing section 4-2 of the system #2. In the system #2, there is provided switching means 5 for selecting the common value of the reference variable (output of the reference variable counter 3-1) or selecting the value of the reference variable dedicated for the system #2 (output of the reference variable counter 3-2).
If the common reference variable is selected by the switching means 5, the path table interpolation processing sections 4-1 and 4-2 of the respective systems perform the interpolation processing according to the reference variable that is the output of the reference variable counter 3-1 and the path tables T-1 and T-2 of the respective systems to drive-control the motors M-1x, M-1z, M-2x, and M-2z of the respective systems, to thereby carry out the path-table operation with the systems 1 and 2 synchronized with each other.
If the values of the reference variable to be updated for the respective systems are selected by the switching means 5, the outputs of the reference variable counters 3-1 and 3-2 of the respective systems are inputted to the path table interpolation processing sections 4-1 and 4-2 of the respective systems as values of the reference variable of the respective systems. Since the reference variable counters 3-1 and 3-2 can be individually reset, it is possible to execute the path-table operations completely separately.
A CPU 11 is a processor that entirely controls the numerical controller 10. The CPU 11 reads out a system program stored in a ROM 12 through a bus 20 and controls the entire numerical controller according to the system program. A RAM 13 stores temporary calculated data, display data, and various kinds of data inputted by the operator through a display/MDI unit 70. A CMOS memory 14 is backed up with a battery, not shown, and is formed as nonvolatile memory in which a storage state is retained even if the numerical controller 10 is switched off. Stored in the CMOS memory 14 are a machining program that is read through an interface 15, a machining program inputted through the display/MDI unit 70, etc. Furthermore, the path tables T-1 and T-2 of the respective systems are prestored.
The interface 15 enables connection between the numerical controller 10 and an external device. A PC (programmable controller) 16 outputs a signal through an I/O unit 17 to an auxiliary device of a machine tool according to a sequence program that is internally stored in the numerical controller 10, thereby carrying out control. The PC 16 also receives signals of various switches of an operation panel provided to a main body of the machine tool, and the like, and transmits the signals to the CPU 11 after performing necessary signal processing.
The display/MDI unit 70 is a manual data input device including a display made up of CRT, liquid crystal or the like, a key board, etc. An interface 18 receives commands and data from the keyboard of the display/MDI unit 70, and transmits the commands and the data to the CPU 11. An interface 19 is connected to an operation panel 71, to thereby receive various commands from the operation panel 71.
An axis control circuit for controlling each of axis motors M for systems 1 to n is connected to the bus 20, and receives a motion command amount of each axis of each system from the CPU 11 to output a command of each axis to a servo amplifier. Upon receipt of the commands, the servo amplifier drives the servomotors M of the respective axes. Each servomotor M of each axis includes a position/velocity detector, feedbacks a position/velocity feedback signal from the position/velocity detector to the axis control circuit, and performs position/velocity feedback control. In
At least one of the systems has a spindle motor SM. A spindle control circuit receives a spindle rotation command from the CPU 11, and carries out spindle motor drive that drives the spindle through a spindle amplifier. The position encoder PE feedbacks feedback pulses (reference pulses) and one-rotation signal to the spindle control circuit in synchronization with the rotation of the spindle, to thereby perform velocity control. The feedback pulses and the one-rotation signal are read by the CPU 11 through the spindle control circuit. The feedback pulses (reference pulses) are counted by the counter (counter 1 in
The CPU 11 determinates whether or not a flag F indicating the path-table operation is set to “1” (Step a1). If the flag F is not set to “1”, the CPU 11 reads one block from NC statements (Step a2), and determinates whether or not a command of the read block is a path-table operation command for another control system (Step a3). If the command is the path-table operation command for another control system, the CPU 11 outputs the path-table operation command to the designated control system (Step a4). In the designated control system, the flag F storing the path-table operation is set to “1” by the above-mentioned path-table operation command to start the path-table operation. When Step a3 determines that the command of the read block is not the path-table operation command for another control system, it is determined whether or not the command is a path-table operation command for the control system in process (Step a5). If the command is the path-table operation command for the control system in process, the flag F is set to “1” (Step a6), and the procedure returns to Step 1. If the command is not the path-table operation command for the control system in process, processing commanded by the read block is executed (Step a7).
If it is determined that the flag F is set to “1” in Step a1, an operation according to the preset path table is started (Step a8). This path-table operation will be described later. When the path-table operation is completed (Step a9), the flag F is set to “0” (Step a10), and the procedure returns to Step a1. As a result, processing and operation according to NC statements will be performed from the next processing cycle unless the path-table operation command is read.
The X-axis position is set and stored for the reference variable, and a start command to another system is also set with respect to the reference variable. In
When the path-table operation is started, the CPU 11 starts the processing shown in
In the case of the path table T-1 shown in
When the present value of the reference variable reaches the command value, the procedure returns to Step b2, and the aforementioned processing is carried out. In the case of the path table T-1 shown in
As described above, the path-table operations are sequentially performed. In the path table T-1 shown in
The foregoing is the operation processing in which the path-table operation start command to another system can be outputted during the path-table operation according to the path table T-1 shown in
The CPU 11 reads a present value L of the reference variable updated successively (Step c1), and searches a command value of the reference variable that is close to and greater than the present value L of the reference variable from the path table T-1 (Step c2). It is determined whether or not there exists such command value of the reference variable (Step c3). If so, a commanded position that is commanded with respect to the command value of the reference variable is read, and also it is determined whether or not a waiting command is set for the own system (Step c4). If there is the command value of the reference variable in the path table T-1 and a waiting command is not set, the procedure advances to Step c9, which performs the interpolation processing every predetermined cycle with the axis position commanded with respect to the read command value of the reference variable as a target position (Step c9). The present value of the reference variable is read (Step 10), and it is determined whether or not the read present value of the reference variable has reached the command value (Step c11). If not, the processing from Step c9 to Step c11 is carried out every predetermined cycle. If the present value of the reference variable reaches the read command value, the procedure returns to Step c2, and the above-described processing is performed.
When the system waiting command is set with the read command value of the reference variable, the procedure proceeds from Step c4 to Step c5. It is determined whether or not a wait signal is already received from the designated system. If so, the procedure advances directly to Step c9, and the processing of Step c9 and the subsequent steps is carried out. If the system waiting command has not received from another system, the procedure proceeds from Step c5 to Step c6. A system waiting command is outputted to the designated system, and the update of the reference variable is stopped (Step c6). The procedure waits until the system waiting command is received from the designated system (Step c7). Once the waiting command is inputted from the designated system, the update of the reference variable is resumed (Step c8). The procedure advances to Step c9, and the processing of Step c9 and the subsequent steps is carried out.
Referring to the examples of the path tables T-1 and T-2 shown in
Also in the system #2, the operation is performed according to the path table T-2 shown in
Number | Date | Country | Kind |
---|---|---|---|
2005-126924 | Apr 2005 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
6885909 | Isohata | Apr 2005 | B2 |
7239936 | Suzuki et al. | Jul 2007 | B2 |
20030191553 | Isohata | Oct 2003 | A1 |
20040236462 | Takeshita et al. | Nov 2004 | A1 |
20060229760 | Suzuki et al. | Oct 2006 | A1 |
20060229761 | Kita et al. | Oct 2006 | A1 |
Number | Date | Country |
---|---|---|
1577194 | Feb 2005 | CN |
59-177604 | Oct 1984 | JP |
2003-303005 | Oct 2003 | JP |
Number | Date | Country | |
---|---|---|---|
20060241839 A1 | Oct 2006 | US |