1. Field of the Invention
The present invention relates to a numerical controller and particularly relates to a numerical controller controlling a five-axis processing machine machining a workpiece attached onto a table using three linear axes and two rotational axes.
2. Description of the Related Art
In machining by a five-axis processing machine, a workpiece is normally machined as follows. In response to a moving command of a moving path of a tool center point and that of a tool direction (tool posture), the tool direction is interpolated while interpolating the moving path of the tool center point based on relative moving velocities of a tool with respect to a target workpiece. Further, the tool center point is moved on the instructed moving path at the instructed velocity while the tool direction is changing. Machining control based on such commands is referred to as “tool center point control”. Program commands used in the tool center point control are created by means of CAM. The CAM that is an abbreviation of “Computer Aided Manufacturing” means creation of manufacturing data using a computer.
An example of such tool center point control is disclosed in Japanese Patent Application Laid-Open No. 2003-195917, which relates to control of a five-axis processing machine, wherein interpolation points of the moving path are corrected while interpolating a moving command of a moving path of a tool center point and a tool direction based on relative moving velocities of a tool with respect to a workpiece, and a servo motor is driven such that the tool center point moves on the instructed moving path at an instructed velocity.
A general method of creating program commands by the CAM will now be described. A processing curve as shown in
As shown in
If a program command in which such small forward and backward movements are generated in the tool direction is delivered to a machine tool, the machine tool repeatedly decelerates and accelerates according to a change in velocities of the rotational axes. As a result, a machined shape disadvantageously becomes coarse and long machining time is disadvantageously required. These problems frequently occur depending on the machined shape or a type of the CAM.
It is, therefore, an object of the present invention to provide a numerical controller for controlling a five-axis processing machine capable of making a machined shape smooth and shortening machining time by thinning-out a program command to a block having small changes in a tool center point position and a tool posture and by eliminating small movements of a tool.
A numerical controller for controlling a five-axis processing machine according to one aspect of the present invention includes three linear axes and two rotational axes for machining a workpiece attached onto a table. This numerical controller includes: command read means for reading a command of a moving path of each of the linear axes, a command of relative moving velocity of a tool with respect to the workpiece, and a command of a tool direction relative to the table; command thinning-out means for executing a thinning-out processing on a command of a moving path of any of the linear axes and a command of a tool direction; interpolation means for calculating positions of the respective axes for every interpolation cycle so that a tool center point moves on the instructed moving path at the instructed relative moving velocity based on the command of the moving path and the command of the tool direction remaining without being thinned out by the command thinning-out means as well as the command of the relative moving velocities; and driving means for driving motors for the respective axes so as to move the motors to the positions of the corresponding axes calculated by the interpolation means.
The command thinning-out means may thin out the command of a moving path of any of the linear axes and the command of a tool direction if the change amount of the tool direction and the change amount of any of the linear axes in the command of the moving path are smaller than preset values, respectively.
The command of a tool direction may be issued in the form of angles of the two rotational axes or a tool direction vector.
The command read means may read, if a thinning-out mode ON command is issued, a preset number of blocks in advance as thinning-out target program command until a thinning-out mode OFF command is issued, and the command thinning-out means may execute the thinning-out processing on the command of a moving path of a linear axis and the command of a tool direction in the thinning-out target program command.
The thinning-out mode ON command may be designated by a G code or an M code, and the thinning-out mode OFF command may be designated by a G code or an M code different from the G code and the M code used for designating the thinning-out mode ON command.
The numerical controller according to the present invention is configured as stated above. Therefore, by thinning-out a block having small changes in a tool center point position and a tool posture, small movements of a tool can be eliminated, a machined shape of a workpiece can be made smooth, and machining time can be shortened.
The above and other objects and features of the present invention will become apparent from the following description of an embodiment with reference to the accompanying drawings, wherein:
Command reading means 1 analyzes blocks of an NC program that is a machining program. Thinning-out means 2 executes a predetermined thinning-out processing (a processing indicated by a flowchart of an algorithm shown in
The change amount α of the tool direction, which is the difference between the tool direction at each tool center point position and the tool direction V1 at the tool center point position P1, is within the preset angle tolerance θ at the tool center point positions P2 and P3 (α<θ). The change amount α exceeds the angle tolerance θ at the tool center point position P4 (α>θ). Furthermore, a distance (deviation) d from a line (indicated by a dotted line in
The thinning-out processing according to the present invention shown in
If an NC sentence is subjected to the thinning-out processing according to the present invention, for example, an NC sentence shown on the left side of
An index i representing the number of a tool center point position is set to 1 (step S100). An index s representing the number of a tool center point position serving as a start point of the thinning-out processing is set to the value of the index i (step S101). It is determined whether or not a tool center point position Pi and a tool direction V1 can be read (step S102). If the tool center point position Pi and the tool direction Vi can not be read, the thinning-out processing is finished. If the tool center point position Pi and the tool direction V1 is determined to be able to read, the processing proceeds to step S103.
In step S103, 1 is added to the index i. It is determined whether or not the tool center point position Pi and the tool direction V1 can be read (step S104). If the tool center point position Pi and the tool direction V1 cannot be read, 1 is subtracted from the index i and the processing proceeds to step S107. If the tool center point position Pi and the tool direction V1 can be read, on the other hand, the processing proceeds to step S105. The change amount a in the tool direction which is an angle between a tool direction Vs at a tool center point position Ps and the tool direction V1 at the tool center point position Pi is calculated (step S105) and the processing proceeds to step S106.
It is determined whether or not the change amount α of the tool direction calculated in step S105 is smaller than the angle tolerance θ (step S106). If α≦θ, the processing returns to step S103. If α≧θ, the processing proceeds to step S107.
The value of the index i is input to an index e representing the number of a tool center point position that is an end point of the thinning-out processing and s is input to an index k representing the number of a current tool center point position (step S107). 1 is added to the value of the index k (step S108). It is determined whether or not the index k is smaller than e (step S109). If k≧e, then the value of e is input to the index s and the tool center point position Ps is output (step S114), and the processing returns to step S102. If k<e, the processing proceeds to step S110.
The distance d from a segment connecting the tool point center position Ps that is the start point and a tool center point position Pe that is the end point, to the current tool point center position Pk is calculated (step S110). It is determined whether or not the distance d is smaller than the distance tolerance D (step S111). If d<D, the processing returns to step S108. If d≧D, then the processing proceeds to step S112, k is input to the index e representing the tool center point position that is the end point and s is input to the index k representing the number of the current tool center point position, and the processing returns to step S108.
To help understand the flowchart of the algorithm shown in
In
Since the angle α between the tool directions V1 and V2 calculated in step S105 is within the angle tolerance θ (α<θ), the processing returns from step S106 to step S103. 1 is further added to the value of the index i (becomes i=3), (P3, V3) is read, and the change amount a of the tool direction (deviation of the tool direction) that is the angle between the tool directions V1 and V3 is calculated. Since the calculated angle α between the tool directions V1 and V3 is within the angle tolerance θ (α<θ), the processing returns again from step S106 to step S103. 1 is further added to the value of the index i (i=4) and (P4, V4) is read at step S104.
Since the angle α between the tool directions V1 and V4 is not within the angle tolerance θ(α>θ), the processing goes from step S106 to step S107. The value of the index i(=4) is set to the index e and the value of the index s(=1) is set to the index k. Further, 1 is added to the value of the index k (the index k becomes 2) (step S108).
Since it is determined that k(=2)<e(=4) in step S109, the processing proceeds to step S110. The distance d from the segment connecting the tool center point position Ps=P1 and the tool center point position Pe=P4 to the tool center point position Pk=P2 is calculated (step S110). Since the calculated distance d is smaller than the distance tolerance D (d<D), the processing returns from step S111 to step S108. 1 is added to the value(=2) of the index k (k=3), and the processing from step S109 to step S111 is carried out again. Since the calculated distance d from the segment connecting the tool center point position P1 and the tool center point position P4 to the tool center point position P3 is also within the distance tolerance D (d<D), the processing returns again to step S108. 1 is added to the value of the index k (the index k becomes 4).
As a result of the above-stated processing, k=4 and e=4, that is, the condition k<e is not satisfied. Therefore, the processing returns from step S109 to step S114, 4 is set to the index s, 4 is set to the index i, the tool center point position Ps=P4 is output, the processing returns to step S102, and the processing goes to a next thinning-out processing.
As a result of this processing, the blocks (P2, V2) and (P3, V3) are not output (thinned out) and the block (P4, V4) is output after the block (P1, V1) as shown in
In the example of the five-axis machining commands shown in
As assumed d>D at the tool center point position P3 (k=3), s=1 (step S101) and e=4 (step S107) just before the determination result is NO in step S111. Therefore, in the subsequent step S112, the number k(=3) of the current tool center point position is input to the index e, the value(=1) of the index s is input to the index k (step S112), and the processing returns to step S108. In step S108, 1 is added to the value(=1) of the index k. Since the value(=2) of the index k is smaller than the value(=3) of the index e and k<e is satisfied, the processing goes from step S109 to step S110. In step S110, the distance d from the segment connecting the Ps(=P1) and the Pe(=P3) to the Pk(=P2) is calculated. As a result, if d<D, the processing goes from step S111 to step S108 and 1 is added to the value(=2) of the index k. In this case, the value(=3) of the index k is equal to the value(=3) of the index e, so that k<e is not already satisfied. As a result, the determination result is “NO” in step S109 and the processing goes from step S109 to step S114 with e=3. In step S114, the value(=3) of the index e is set to the index s, the value(=3) of the index s is set to the index i, and the tool center point position Ps(=P3) is output. And, the processing returns to step S102 with i=3 and s=3.
As can be understood, as shown in
1) If distances d from the line connecting the tool center point position P1 (that is the start point) and the tool center point position P4 (where the condition α<θ is not satisfied) to the tool center point position P2 and the tool center point position P3 (where the condition α<θ is satisfied) are smaller than D (d<D), respectively, then the tool center point positions P2 and P3 are thinned out. A start point of the next thinning-out processing is P4, accordingly.
2) If the distance d from the line connecting the tool center point position P1 (that is the start point) and the tool center point position P4 to the tool center point position P2 (where the condition α<θ is satisfied) is smaller than the distance tolerance D (d<D) but the distance d from the line to the tool center point position P3 is larger than the distance tolerance D (d>D), then the tool center point position P2 where the condition (d<D) is satisfied is thinned out but the tool center point position P3 where the condition (d<D) is not satisfied is not thinned out. A start point of the next thinning-out processing is set to the tool center point position P3, accordingly.
In the example of
Processings (1) to (9) shown in
In the preprocessing, as a result of the thinning-out processing on the blocks N3 to N6, the blocks N4 and N5 are thinned out, and as a result of the thinning-out processing on the blocks N7 to N9, the block N8 is thinned out.
As a result of the aforementioned preprocessing, interpolation processing data is the blocks N1, N3, N6, N7, N9, and N11. That is, the interpolation processing data shown in
The thinning-out processing ON and OFF commands by the G codes and those by the M codes will be additionally described.
The G codes are interfaces prepared by the numerical controller for end users. The M codes are functions generally added by a machine manufacturer for end users. If the numerical controller is provided with an interface for the thinning-out processing ON and OFF commands for signals from a PMC (Programmable Machine Controller), the machine manufacturer transmits the thinning-out processing ON and OFF commands to the numerical controller via the signals from the PMC while using the M code commands as triggers.
A CPU 11 is a processor that controls entirety of the numerical controller 100. This CPU 11 reads a system program stored in a ROM 12 via a bus 20 and controls the entirety of the numerical controller 100 according to the system program. Temporary calculation and display data and various data input by an operator via a display/MDI unit 70 are stored in a RAM 13.
An SRAM memory 14 is backed up by a battery, not shown, and functions as a nonvolatile memory a storage state of which is held even if the numerical controller 100 is turned off. A machining program read via an interface 15, a machining program input via the display/MDI unit 70 and the like are stored in the SRAM memory 14. Further, various system programs for carrying out an edit mode processing and an automatic operation processing necessary to create and edit the machining program are written to the ROM 12 in advance.
The machining program including a command point sequence data and a vector sequence data created by means of a CAD/CAM device or a copy machine and the like is input to the CNC 100 via the interface 15 and stored in the SRAM memory 14. A program for performing the thinning-out processing according to the present invention is also stored in the SRAM memory 14.
The machining program edited in the numerical controller 100 can be stored in an external storage device via the interface 15. A PMC (programmable machine controller) 16 outputs a signal via I/O unit 17 to an auxiliary device of a machine tool (for example, an actuator such as a robot hand for tool replacement) according to a sequence program included in the numerical controller 100 and controls the signal. Further, the PMC 16 receives a signal from one of various switches on a control panel arranged in a main body of the machine tool, performs a necessary signal processing on the received signal, and transmits the processed signal to the CPU 11.
The display/MDI unit 70 is a manual data input device including a display, a keyboard and the like. The interface 15 receives a command or data from the keyboard of the display/MDI unit 70 and transmits the received command or data to the CPU 11. An interface 19 is connected to a control panel 71 including a manual pulse generator and the like.
Axis control circuits 30 to 34 for respective axes receive moving command amounts of the axes from the CPU 11 and output commands for the axes to corresponding servo amplifiers 40 to 44, respectively. The servo amplifiers 40 to 44 receive the commands and drive servo motors 50 to 54 corresponding to the axes, respectively. The servo motors 50 to 54 corresponding to the axes include therein position/velocity detectors, and feed back position/velocity feedback signals from the corresponding position/velocity detectors to the axis control circuits 30 to 34, thereby executing position/velocity feedback controls, respectively.
The servo motors 50 to 54 drive X, Y, Z, B (A), and C axes of the five-axis processing machine, respectively. A spindle control circuit 60 receives a spindle rotation command and outputs a spindle velocity signal to a spindle amplifier 61. The spindle amplifier 61 receives the spindle velocity signal and rotates a spindle motor 62 at an instructed rotational velocity. An encoder 63 feeds back a feedback pulse to a spindle control circuit 60 synchronously with rotation of the spindle motor 62, thereby executing a velocity control. The numerical controller 100 controls and drives the five-axis processing machine.
Number | Date | Country | Kind |
---|---|---|---|
2008-057550 | Mar 2008 | JP | national |