Numerical control device
By calculating the allowable speed at the corner and adjusting the movement of the acceleration, constant speed, and deceleration parts of the numerical control device, the problem of inconsistent variation in the remaining movement in the overlapping process of program blocks was solved, achieving high-efficiency processing quality and reduced processing time.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-01-17
- Publication Date
- 2026-03-17
AI Technical Summary
In existing technologies for processing overlapping program blocks, inconsistent tool speed deceleration leads to inconsistent changes in the remaining movement, affecting processing quality and extending processing time.
By calculating the permissible speed at the corner, the movement of the acceleration, constant speed, and deceleration sections is adjusted to ensure that the tool passes through the corner at a constant speed. The speed before interpolation is corrected using a numerical control device to eliminate any residual movement.
To maintain processing quality and shorten processing time, avoid tools moving inside corners and improve processing efficiency.
Smart Images

Figure CN116710862B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a numerical control device for controlling machine tools. Background Technology
[0002] In the past, program block overlap has been used to shorten the machining time of machine tools. For example, Patent Document 1 discloses that after the interpolation of the current program block ends, the instruction of the next program block begins before the deceleration speed becomes zero. Thus, when transferring from the current program block to the next program block, machining is performed without decelerating to zero at the connection of the program blocks.
[0003] Existing technical documents
[0004] Patent documents
[0005] Patent Document 1: Japanese Patent Application Publication No. 2-40701 Summary of the Invention
[0006] The problem that the invention aims to solve
[0007] Program block overlap processing decelerates the tool to a sufficient speed (called the allowable speed) within the current program block before starting the next program block. Using program block overlap processing shortens machining time compared to starting the next program block with zero speed at the end of the current block, and keeps the impact on the workpiece and tool within acceptable limits. Although the tool speed deceleration is performed according to an interpolation period, the time point of deceleration to the allowable speed may not coincide with the time point of the tool reaching the end point, resulting in a residual movement amount. In program block overlap processing, the residual movement amount R is added to the overlap amount S, and the next program block begins without creating a speed difference with the allowable speed. At this time, the next program block begins with a residual movement amount R ahead of the end point of the current block, therefore, it passes through the inside of the corner, not the corner connecting the current and next program blocks. In program block overlap processing, even for corners of the same angle, the residual movement amount R varies depending on the composition of the current and next program blocks and is not constant.
[0008] In the field of numerical control devices, there is a desire to maintain the machining quality of machining with corners and to shorten the machining time.
[0009] Methods for solving problems
[0010] As one aspect of the numerical control device disclosed herein, the relative speed between the tool and the workpiece is controlled according to the machining program. The machining program includes a first program block as a movement instruction and a second program block as the next movement instruction. When there is a corner between the first and second program blocks, the permissible speed at the corner is calculated. The distance between the start and end points of the first program block, i.e., the program block instruction movement amount, is calculated. Based on the pre-interpolation speed at the start point of the first program block, the permissible speed at the corner, and the program block instruction movement amount of the first program block, an acceleration unit is established to accelerate the pre-interpolation speed at the start point of the first program block to the instruction speed of the machining program, and the machining program is maintained. The numerical control device includes a machining program analysis unit that calculates the remaining movement of the first program block based on the movement of the acceleration unit, the constant speed unit, the deceleration unit, and the program block command movement. It also corrects at least one of the pre-interpolation acceleration of the acceleration unit, the command speed of the constant speed unit, and the pre-interpolation acceleration of the deceleration unit, and adjusts the movement of the acceleration unit, the constant speed unit, and the deceleration unit so that the sum of the movement of the acceleration unit, the constant speed unit, and the deceleration unit is close to the program block command movement.
[0011] As one aspect of this disclosure, a computer-readable storage medium stores computer-readable commands executed by one or more processors. These commands parse a first program block and a second program block (serving as the next movement instruction) within a machining program. When a corner exists between the first and second program blocks, the permissible speed at the corner is calculated. The distance between the start and end points of the first program block, i.e., the program block instruction movement amount, is calculated. Based on the pre-interpolation speed at the start of the first program block, the permissible speed at the corner, and the program block instruction movement amount of the first program block, the pre-interpolation speed at the start of the first program block is accelerated to the machining program's... The movement amounts in the acceleration unit (which controls the speed of the machining program), the constant speed unit (which maintains the speed of the machining program), and the deceleration unit (which decelerates from the speed of the machining program to the allowable speed at the corner of the second program block) are calculated. The remaining movement amount of the first program block is determined based on the movement amounts of the acceleration unit, the constant speed unit, the deceleration unit, and the program block's command movement amount. At least one of the pre-interpolation acceleration of the acceleration unit, the command speed of the constant speed unit, and the pre-interpolation acceleration of the deceleration unit is corrected. The movement amounts of the acceleration unit, the constant speed unit, and the deceleration unit are adjusted so that the sum of the movement amounts of the acceleration unit, the constant speed unit, and the deceleration unit is close to the program block's command movement amount.
[0012] Invention Effects
[0013] According to one aspect of the present invention, it is possible to maintain the processing quality of the corner portion and shorten the processing time. Attached Figure Description
[0014] Figure 1 This is a hardware structure diagram of a numerical control device.
[0015] Figure 2 This is a block diagram of a numerical control device.
[0016] Figure 3 This is an example of a processing procedure.
[0017] Figure 4 This is a graph representing the change in velocity before interpolation in existing block overlap processing.
[0018] Figure 5 It is a graph representing the movement path of tools in existing block overlap processing.
[0019] Figure 6 This is a graph showing the change in velocity before interpolation in the first disclosure.
[0020] Figure 7 It is a graph showing the change in the pre-correction velocity when the correction amount exceeds the threshold in the first disclosure.
[0021] Figure 8 This is a graph showing the change in velocity before interpolation in the second disclosure.
[0022] Figure 9 This is a graph showing the change in velocity before interpolation in the third public disclosure.
[0023] Figure 10 This is a graph showing the change in velocity before interpolation when the second and third disclosures are combined. Detailed Implementation
[0024] [First Public Announcement]
[0025] Figure 1 This is a schematic diagram of the numerical control device 100.
[0026] The numerical control device 100 controls the relative speed between the tool and the workpiece mounted on the machine tool according to the machining program. Furthermore, in this disclosure, for the sake of simplicity, it is assumed that the workpiece is fixed, and only the speed of the tool is considered.
[0027] Figure 1 The numerical control device 100 is connected to the machine tool 200. Figure 1 In this case, the numerical control device 100 and the machine tool 200 are separate, but they can also be integrated.
[0028] A workpiece is mounted on the worktable of machine tool 200. A tool 50 is mounted on the spindle of machine tool 200. The tool 50 moves along the X-axis, Y-axis, and Z-axis. Here, an example of movement only along the X-axis and Y-axis is described, but this disclosure can also be applied to multi-axis machine tools with three or more axes.
[0029] The numerical control device 100 will be described below. Figure 1 The numerical control device 100 has a CPU 111, which is the processor that controls the entire numerical control device 100. The CPU 111 reads the system program stored in the ROM 112 via the bus and controls the entire numerical control device 100 according to the system program. Temporary calculation data, display data, and various data input by the user via the input unit 71 are temporarily stored in the RAM 113.
[0030] The display unit 70 is a monitor or similar device attached to the numerical control device 100, which displays preset support screens, preset instruction manuals, etc.
[0031] The input unit 71 may be a keyboard, touch panel, or the like, integrated with or separate from the display unit 70. The user operates the input unit 71 to input data onto the screen displayed on the display unit 70.
[0032] The non-volatile memory 114 is a memory that maintains its stored state even when the power supply to the numerical control device 100 is disconnected, for example, by being backed up by a battery (not shown). The non-volatile memory 114 stores programs read from external devices via an interface (not shown), programs input via the input unit 71, and various data obtained from various parts of the numerical control device 100, the machine tool 200, etc. (e.g., setting parameters obtained from the machine tool 200). The programs and various data stored in the non-volatile memory 114 can also be expanded in the RAM 113 during execution / use. Furthermore, various system programs are pre-written into the ROM 112.
[0033] The controller 40 of each axis of the machine tool 200 converts the axis movement commands from the CPU 111 into pulse signals and outputs them to the driver 41. The driver 41 converts the pulse signals into current to drive the servo motor.
[0034] The tool 50 moves using a servo motor. Alternatively, the worktable can be moved to move the tool 50 relative to the workpiece. In this disclosure, for the sake of simplicity, an example is shown where the worktable is fixed and only the tool 50 moves.
[0035] Figure 2 This is a block diagram of the numerical control device 100.
[0036] The numerical control device 100 includes: a machining program storage unit 11, a machining program parsing unit 12, a program block buffer 13 for temporarily storing the parsed machining program, an instruction speed correction unit 14 for correcting the instruction speed F of the current program block recorded in the machining program, an interpolation pre-acceleration / deceleration processing unit 15 for performing acceleration / deceleration processing of the interpolation pre-acceleration / deceleration based on the interpolation pre-acceleration / deceleration A, an acceleration correction unit 16 for correcting the interpolation pre-acceleration / deceleration A, and an interpolation processing unit 17 for converting the calculated interpolation pre-acceleration into distribution pulses for servo motors such as the X-axis, Y-axis, and Z-axis.
[0037] The following disclosure describes a method for adjusting the velocity before two-dimensional interpolation, but this disclosure can also be applied to control in three dimensions and above.
[0038] The processing program storage unit 11 stores the processing program. Figure 3 This is an example of a processing procedure.
[0039] The numerical control device 100 processes the machining program line by line. Each line is called a program block. Figure 3 The first line of the machining program is “G91 G01 X20 F1000;”, and the next line is “Y50;”.
[0040] The machining program contains movement commands and basic motion commands. Movement commands include "G00: Rapid feed (positioning)," "G01: Linear interpolation (cutting feed)," and "G02-G03: Circular interpolation," etc. The movement commands specify the destination and movement speed. Figure 3 The program block is a movement instruction, which is an instruction that moves tool 50 in the Y direction by "50" after moving "20" in the X direction at a movement speed of "F1000".
[0041] The machining program analysis unit 12 calculates the moving direction and pre-interpolation speed of the tool 50 based on the machining program. The allowable corner movement speed D refers to the speed at which the tool can move through a corner while maintaining machining quality and avoiding impact on the machine; it is determined by the speed of the tool 50, the material of the workpiece, and the angle of the corner. The method for determining the allowable corner movement speed is existing technology, therefore, its explanation is omitted.
[0042] The pre-interpolation speed refers to the speed of the tool 50 before it is assigned to the X-axis, Y-axis, and Z-axis directions in the interpolation processing unit 17. It is the combined speed of the speeds assigned to the X-axis, Y-axis, and Z-axis directions.
[0043] Reference Figure 4 The existing methods for calculating velocity before interpolation are explained.
[0044] The machining program parsing unit 12 reads the program blocks of the machining program in advance. If there is a corner at the connection between the program block of the parsing object (called the current program block) and the next program block (called the next program block), it calculates the allowable speed D of the corner movement.
[0045] Next, the machining program analysis unit 12 calculates the interpolation speeds of the acceleration unit, the constant speed unit, and the deceleration unit.
[0046] The allowable speed Da at the corner of the preceding program block is calculated during the parsing of the preceding program block. In the acceleration section, the speed is accelerated from the allowable speed Da at the corner to the commanded speed F. The pre-interpolation acceleration A is a value that takes into account machining quality and safety, and is preset to an appropriate value. In this disclosure, deceleration is also performed with an pre-interpolation acceleration whose absolute value is equal to the pre-interpolation acceleration A.
[0047] The number of interpolation processes performed by the acceleration unit when the allowable speed Da at the corner accelerates to the commanded speed F is set to m. The number of interpolation processes m is the integer part of the value (F-Da) / A obtained by dividing the difference between the commanded speed F and the allowable speed Da at the corner by the acceleration / deceleration A before interpolation. Figure 4 In the example, the number of interpolation operations m in the acceleration section is 5.
[0048] If the interpolation velocities of the tool 50 in the accelerator section are added together, the movement La of the tool 50 in the accelerator section can be obtained. The movement La of the tool 50 in the accelerator section can be expressed as shown in the following mathematical formula 1.
[0049] [Mathematical Expression 1]
[0050] La=Da+(Da+A×1)+(Da+A×2)+…+(Da+A×m)
[0051] = Da + Da × m + A × (1 + 2 + 3 + ... + m)
[0052] (Where, m is the integer part of (F-Da) / A)
[0053] In the deceleration section, the commanded speed F is reduced to the allowable speed Db at the corner. The number of interpolation processes in the deceleration section is set to n. The number of interpolation processes n is the integer part of the value (F-Db) / A obtained by dividing the difference between the commanded speed F and the allowable speed Db at the corner by the acceleration / deceleration A before interpolation. Figure 4 In the example, the number of pulse outputs n in the deceleration section is 3.
[0054] If the interpolated velocities of tool 50 in the deceleration section are added together, the movement Lc of tool 50 in the deceleration section can be calculated. The movement Lc of tool 50 in the deceleration section can be expressed as shown in the following mathematical formula 2.
[0055] [Mathematical Expression 2]
[0056] Lc={F-(A×1)}+{F-(A×2)}+…+{F-(A×n)}+Db
[0057] =F×nA×(1+2+3+…+n)+Db
[0058] (where n is the integer part of (F-Db) / A)
[0059] The ideal value for the constant-speed unit's movement Lb is obtained by subtracting the movement amounts La of the acceleration unit and Lc of the deceleration unit from the movement amount L of the program block instruction. The movement amount L of the program block instruction can be calculated based on the coordinates of the starting and ending points of the tool 50 recorded in the machining program. Dividing the ideal value of the movement amount Lb by the instruction speed F yields the number of interpolation operations t performed by the constant-speed unit. Figure 4 In the example, the number of interpolation operations t for the constant speed unit is 7.
[0060] The following mathematical formula 3 represents the relationship between the number of interpolation processes t of the constant speed unit, the command speed F, and the movement amount Lb of the constant speed unit.
[0061] [Mathematical Expression 3]
[0062] Lb=F×t
[0063] (where t is the integer part of (L-La-Lb) / F)
[0064] Here, when L = (La + Lb + Lc) holds true, no block overlap processing is needed. However, a residual movement amount R is actually generated. The following mathematical formula 4 is a formula and its variation that expresses the relationship between the movement amount La of the acceleration section, the movement amount Lb of the constant speed section, the movement amount Lc of the deceleration section, and the residual movement amount R.
[0065] The total movement of the acceleration section (La), the constant speed section (Lb), and the deceleration section (Lc) is less than the remaining movement (R) of the movement L specified in the program block instruction recorded in the machining program.
[0066] [Mathematical Expression 4]
[0067] R = L - (La + Lb + Lc)
[0068] L = La + Lb + Lc + R
[0069] In the existing block overlap processing, the remaining movement amount R of the current block is retained, and the instructions for the next block begin. At this time, in the initial interpolation cycle of the next block, the remaining movement amount R is added to the block overlap amount S so that the speed before interpolation becomes the allowable speed Db at the corner.
[0070] Figure 5 This represents an example of the movement path of a tool in existing block overlap processing.
[0071] When the current program block moves in the direction of arrow a, and the next program block moves in the direction of arrow b, a corner is created between the current program block and the next program block.
[0072] In the existing block overlap processing, a residual movement amount R is generated. Therefore, the residual movement amount R is output through the initial instruction of the next block. The movement direction of the residual movement amount R is the direction of arrow a, and the movement direction of the block overlap amount is the direction of arrow b. Therefore, in the initial interpolation cycle of the next block, it becomes the direction of arrow c, obtained by adding these two vectors. In the initial instruction of the next block, it moves in the direction of arrow c at the corner allowable speed Db. In the block overlap processing, the instruction pulse is generated inside the corner without passing through the corner.
[0073] exist Figure 5 In the example, the residual movement R in the left graph is different from that in the right graph. The residual movement R varies depending on conditions such as the pre-interpolation acceleration A, the allowable speed Da at the corner of the previous program block, and the commanded speed F. Therefore, deviations occur even at corners with the same angle. Even at corners with the same angle, the path commanded by the numerical control device 100 changes.
[0074] [Explanation of this disclosure]
[0075] In this disclosure, the pre-interpolation acceleration of the acceleration unit, the pre-interpolation velocity of the constant speed unit, and the pre-interpolation acceleration of the deceleration unit, calculated in the existing program block overlap processing, are corrected to make the remaining movement R zero. As a result, the numerical control device outputs a command to maintain the allowable speed Db of the corner section and to pass through the corner section.
[0076] [First Public Announcement]
[0077] The command speed correction unit 14 corrects the speed before interpolation by the constant speed unit. The correction amount r is the quotient obtained by dividing the remaining movement amount R by the number of interpolation processes t of the constant speed unit. The following mathematical formula 5 is the formula for calculating the correction amount r and the command speed F' after correction.
[0078] [Mathematical Expression 5]
[0079]
[0080] F′=F+r
[0081] By correcting the command speed F of the constant speed unit to the corrected command speed F', the corrected movement Lb' of the constant speed unit becomes Lb' = La + R. As a result, the movement Lb' of the constant speed unit becomes longer by the same distance as the remaining movement R, therefore, the remaining movement R becomes zero.
[0082] If the pre-interpolation speed of the constant speed unit is corrected to the corrected command speed F', then as follows: Figure 6 As shown, the corrected movement Lb' is the value obtained by adding the remaining movement R to the original movement Lb of the constant speed unit. Therefore, the program block instruction movement L, the acceleration unit movement La, the constant speed unit movement Lb', and the deceleration unit movement Lc satisfy the following mathematical formula 6, and the remaining movement R is zero.
[0083] [Mathematical Expression 6]
[0084] Lb′=Lb+R
[0085] L=La+Lb′+Lc
[0086] A threshold is set for the correction amount r. The threshold is set to ensure machining quality and safety. When the correction amount r of the above-mentioned corrected command speed F' (called the first corrected command speed F') exceeds the threshold, the machined surface may become rough, or the tool may break. When the correction amount r exceeds the threshold, the machining program analysis unit 12 adds one more interpolation operation t to the constant speed unit. At this time, the movement amount Lb' of the constant speed unit is divided by the number of pulse outputs (t+1) to calculate the speed of the constant speed unit before interpolation. The speed calculated in this way is called the second corrected command speed F". The second corrected command speed F" is slower than the command speed F of the current program block, so there will be no deterioration in machining quality or tool breakage. The following mathematical formula 7 is the formula for calculating the second corrected command speed F".
[0087] [Mathematical Expression 7]
[0088] Lb′=Lb+R
[0089] F″=Lb′ / (t+1)
[0090] Figure 7 This indicates the change in velocity before interpolation when the second corrected command velocity F” was used for correction.
[0091] The output frequency of the constant speed unit increases from 7 to 8. After the second correction, the commanded speed F” is slower than the commanded speed F, but the output frequency of the constant speed unit is increased by one. Therefore, the movement of the constant speed unit is Lb’. Thus, mathematical equation 6 is satisfied, and the remaining movement R is zero.
[0092] [Second Public Release]
[0093] In the second disclosure, the acceleration correction unit 16 corrects the pre-interpolation acceleration A to the pre-interpolation acceleration A'. (See reference...) Figure 8 The formula for calculating the acceleration A' before interpolation is explained.
[0094] To correct the pre-interpolation acceleration A and make the remaining movement R zero, the movement of the accelerator needs to be corrected to La' (=La+R). With the correction threshold set to ±B, the range of the corrected pre-interpolation acceleration / deceleration A' is AB≤A'≤A+B. The following mathematical formula 8 is the formula for calculating the movement La' of the accelerator when acceleration is performed with pre-interpolation acceleration / deceleration A'. The corrected movement La' and the allowable speed Da of the corner are known, as is the range of pre-interpolation acceleration / deceleration A'. Therefore, by inputting the lower limit (AB) and upper limit (A+B) of A' into mathematical formula 8, the lower limit mb and upper limit ma of m are calculated. If the output frequency m of the accelerator calculated using mathematical formula 1 satisfies the condition ma≤m≤mb, the output frequency m of the pulse calculated using mathematical formula 1 is used. This m is substituted into mathematical formula 8 to calculate the corrected pre-interpolation acceleration / deceleration A'.
[0095] Furthermore, when m does not satisfy the condition ma ≤ m ≤ mb, the value of mb or ma that is closest to m is substituted into mathematical formula 8 to calculate the corrected pre-interpolation acceleration A'. This determines the corrected pre-interpolation acceleration A' when the remaining displacement R is zero.
[0096] [Mathematical Expression 8]
[0097] La′=Da+Da×m+A′×(1+2+3+…+m)
[0098] [Third Public Announcement]
[0099] In the third disclosure, the acceleration correction unit 16 corrects the pre-interpolation acceleration A of the deceleration unit to the pre-interpolation acceleration A. (See reference...) Figure 9 The formula for calculating the acceleration A before interpolation is explained.
[0100] To correct the pre-interpolation acceleration A in the deceleration section and make the remaining movement R zero, the movement of the deceleration section needs to be corrected to Lc' (=Lc+R). With the correction threshold set to ±B, the range of the corrected pre-interpolation acceleration / deceleration A” is AB≤A”≤A+B. The following mathematical formula 9 is used to calculate the movement Lc' of the deceleration section when deceleration is performed with pre-interpolation acceleration / deceleration A”. The corrected movement Lc' and the allowable speed Db at the corner are known, as is the range of pre-interpolation acceleration / deceleration A”. Therefore, by inputting the lower limit (AB) and upper limit (A+B) of A” into mathematical formula 9, the lower limit na and upper limit nb of n are calculated. If the output number n of the deceleration section calculated by mathematical formula 2 satisfies the condition na≤n≤nb, the output number n calculated by mathematical formula 2 is used. This n can be substituted into mathematical formula 9 to calculate the corrected pre-interpolation acceleration / deceleration A”.
[0101] Furthermore, when n does not satisfy the condition na≤n≤nb, the value of nb or na that is closest to n can be substituted into mathematical formula 9 to obtain the corrected pre-interpolation acceleration A. Thus, the corrected pre-interpolation acceleration A is determined to be zero for the remaining displacement R.
[0102] [Mathematical Expression 9]
[0103] Lc′=F×nA″×(1+2+3+…+n)+Db
[0104] The interpolation processing unit 17 performs interpolation processing on the pre-interpolation speed corrected by the methods described in the first, second, and third disclosures, and outputs the allocated pulse quantities of the X-axis speed, Y-axis speed, and Z-axis speed to the corresponding servo motors. The servo motors rotate according to the allocated pulse quantities output from the interpolation unit, causing the tool 50 to move. Furthermore, while this disclosure describes controlling only the movement of the tool 50, there are also cases where the worktable carrying the workpiece moves; this is also a relative movement between the tool and the workpiece, and is therefore included in this disclosure.
[0105] [Practical Calculation Examples]
[0106] This indicates an example of an operation that uses actual numerical values. The values of the variables used in this example are as follows.
[0107] Interpolation period: 1.0 [msec]
[0108] • Command speed: 30000.0 [mm / min]
[0109] (The command speed in one interpolation cycle is F = 30000.0 / 60000 = 0.5 [mm / msec])
[0110] • Program block instruction movement (L): 50.0 [mm]
[0111] • Acceleration before interpolation: 40.0 mm / sec 2 ]
[0112] (1. Acceleration (A) during the interpolation period: 40.0 / 1000 = 0.04 [mm / msec] 2 ])
[0113] • Permissible speed at the corner with the preceding program block: 6000.0 [mm / min]
[0114] (The permissible speed at the corner in one interpolation period is Da = 6000.0 / 60000 = 0.1 [mm / msec])
[0115] • Permissible speed at the corner with the next program block: 9000.0 [mm / min]
[0116] (The permissible speed at the corner in one interpolation period is Db = 9000.0 / 60000 = 0.15 [mm / msec])
[0117] [Common operations in first, second, and third disclosures]
[0118] [Calculation of velocity, movement, remaining movement, and number of pulse outputs before interpolation]
[0119] First, calculate the pre-interpolation velocities of the acceleration section, constant speed section, and deceleration section, as well as the number of interpolation processes (m, t, n), movement amounts (La, Lb, Lc), and remaining movement amount (R).
[0120] If the above values are substituted into mathematical formula 1, the number of interpolation processes m and the amount of movement La of the acceleration section can be calculated.
[0121] m is the integer part of (0.5-0.1) / 0.04 = 10.0, that is, m = 10.
[0122] La=0.1+0.1×10+0.04×(1+2+3+…+10)=3.3[mm]
[0123] If the above values are substituted into mathematical formula 2, the number of interpolation processes n and the amount of movement Lc of the deceleration unit can be calculated.
[0124] n is the integer part of (0.5-0.15) / 0.04 = 8.75, that is, n = 8.
[0125] Lc=0.5×8-0.04×(1+2+3+…+8)+0.15=2.71[mm]
[0126] According to mathematical formula 3, the number of interpolation processes t and the amount of movement Lb in the constant speed section can be calculated.
[0127] t is the integer part of (50.0-3.3-2.71) / 0.5 = 87.98, that is, t = 87.
[0128] Lb = 0.5 × 87 = 43.5 [mm]
[0129] If the movement amount La of the acceleration section, the movement amount Lb of the constant speed section, and the movement amount Lc of the deceleration section are calculated as described above, the remaining movement amount R can be calculated according to mathematical formula 4.
[0130] R=50-(3.3+43.5+2.71)=0.49[mm]
[0131] [The first publicly disclosed operation]
[0132] In the first disclosure, the command speed of the constant speed unit is corrected. The correction amount r is the value obtained by dividing the remaining movement amount R by the number of pulse outputs t of the constant speed unit. If the correction amount r is added to the command speed F of the constant speed unit, the corrected command speed F' can be calculated. According to mathematical formula 5, these correction amounts r and the corrected command speed F' can be calculated.
[0133] r = 0.49 / 87 = 0.005632183...
[0134] F'=0.5+0.005632183=0.505632183[mm / msec]
[0135] As shown in the following formula, when F' is converted into a speed component, it becomes the actual command speed in the machining program.
[0136] F'×60000=30337.93103[mm / min]
[0137] However, the correction amount r has a threshold. When the threshold for the correction amount r is set to ±100.0 [min / msec], the aforementioned correction amount r is 0.005632 [mm / msec] × 60000 ≈ 336 [min / msec], exceeding the threshold. In this case, an additional interpolation process is performed by the constant speed unit. Formula 7 is the formula for calculating the corrected command speed F” when an additional interpolation process is performed.
[0138] Lb' = 43.5 + 0.49 = 44.39
[0139] F”=44.39 / (87+1)=0.499886363[mm / msec 2 ]
[0140] In the first disclosure, by increasing the command speed of the constant speed unit by a correction amount r, the movement amount Lb of the constant speed unit increases by the same distance as the remaining movement amount R, thus making the remaining movement amount R zero. If the correction amount r exceeds a threshold, an additional interpolation process is performed to calculate a new correction amount r.
[0141] [Second public operation]
[0142] In the second disclosure, the movement La of the acceleration unit is corrected to make the remaining movement R zero. The threshold for the acceleration correction is set to ±10.0 mm / sec. 2 If this threshold is converted to units of interpolation period, it would look like this.
[0143] ±10.0 / 1000=±0.01[mm / msec 2 ]
[0144] Using the thresholds mentioned above, the upper and lower limits of the corrected acceleration A' are determined as follows.
[0145] A - 0.01 ≤ A' ≤ A + 0.01
[0146] If A = 0.04 [mm / msec] 2 Substituting into the above inequality, the range of A' is 0.03≤A'≤0.05.
[0147] If we substitute the allowable speed Da at the corner of the previous program block and the corrected movement La' (=La+R) into mathematical formula 8, then the result is as follows.
[0148] La'=3.3+0.49=0.1+0.1×m+A'×(1+2+3+…+m)
[0149] In the above formula, if we substitute the lower limit value of 0.03 into A', then m = 13; on the other hand, if we substitute the upper limit value of 0.05 into A', then m = 8. Therefore, 8 ≤ m ≤ 10, and the number of interpolation processes in the accelerator, m = 10, satisfies the above condition. Therefore, if we substitute m = 10 into mathematical formula 8, the result is as follows.
[0150] La'=3.3+0.49=0.1+0.1×10+A'×(1+2+3+…+10)
[0151] Based on the above formula, A' = 0.04890909 [mm / msec] 2 If this value is set to a speed of seconds, the corrected acceleration is 48.90909091 mm / sec. 2In this operation, if m does not meet the conditions, the value of the number of pulses m closest to the acceleration part between the upper and lower limits of m is selected to calculate the acceleration A'.
[0152] [Third public operation]
[0153] In the third disclosure, the movement Lc of the deceleration unit is corrected to make the remaining movement R zero. The threshold for the acceleration correction is set to ±10.0 mm / sec. 2 If this threshold is converted to units of interpolation period, it would look like this.
[0154] ±10.0 / 1000=±0.01[mm / msec 2 ]
[0155] The upper and lower limits of the corrected acceleration A” are determined as follows.
[0156] A - 0.01 ≤ A” ≤ A + 0.01
[0157] If A = 0.04 [mm / msec] 2 Substituting into the inequality above, the range of A” is 0.03≤A”≤0.05.
[0158] If we substitute the allowable speed Db at the corner of the next program block and the corrected movement Lc' (=Lc+R) into mathematical formula 9, then the result is as follows.
[0159] Lc'=2.71+0.49=0.5×nA”×(1+2+3+…+n)+0.15
[0160] In the above formula, if we substitute the lower limit value of 0.03 into A”, then n = 9. On the other hand, if we substitute the upper limit value of 0.05 into A”, then n = 13. Thus, it becomes 9 ≤ n ≤ 13, and the number of interpolation processes used near the deceleration section is 8, with n = 9. Therefore, if we substitute n = 9 into mathematical formula 9, then the following is true.
[0161] Lc'=2.71+0.49=0.5×9-A”×(1+2+3+…+9)+0.15
[0162] Based on the above formula, A” = 0.032222222 [mm / msec] 2 If this value is set to a speed of seconds, the corrected acceleration becomes 32.222222 mm / sec. 2 ].
[0163] As described above, when there is a corner between the current program block and the next program block, the numerical control device 100 calculates the corner allowable speed Db based on the machining program of the current program block and the next program block and the speed at the starting point of the current program block (in this disclosure, the corner allowable speed Da).
[0164] The numerical control device 100 calculates the number of pulse outputs for the acceleration section, the constant speed section, and the deceleration section to ensure that the corner speed Db is reached at the end of the current program block. Furthermore, it calculates the movement amount La of the acceleration section, the movement amount Lb of the constant speed section, the movement amount Lc of the deceleration section, and the remaining movement amount R.
[0165] The numerical control device 100 of this disclosure corrects the pre-interpolation acceleration A of the acceleration or deceleration unit and the commanded speed F of the constant speed unit, so that the remaining movement R is zero. In the first disclosure described above, the commanded speed F of the constant speed unit is corrected; in the second disclosure, the pre-interpolation acceleration A of the acceleration unit is corrected; and in the third disclosure, the pre-interpolation acceleration A of the deceleration unit is corrected. However, not only one correction method is used, but these correction methods can also be combined.
[0166] Furthermore, the first disclosure corrects the pre-interpolation acceleration of the acceleration section, the second disclosure corrects the pre-interpolation velocity of the constant velocity section, and the third disclosure corrects the pre-interpolation acceleration of the deceleration section. However, it is also possible to... Figure 10 As shown, by combining the second and third disclosures, the pre-interpolation acceleration of the acceleration section is corrected to A', and the pre-interpolation acceleration of the deceleration section is corrected to A''. Through this correction, the corrected movement of the acceleration section La' and the corrected movement of the deceleration section Lc' satisfy La' + Lc' = La + Lc + R. Therefore, the condition L = La' + Lb + Lc' holds, and the remaining movement R becomes zero.
[0167] Furthermore, examples of setting the remaining movement amount R to zero have been disclosed so far, but adjustments to the remaining movement amount R to values other than zero are also included in this disclosure. It is also possible to make the sum of the movement amount La of the acceleration unit, the movement amount Lb of the constant speed unit, and the movement amount Lc of the deceleration unit close to the program block instruction movement amount L, so as to minimize the remaining movement amount R.
[0168] In this disclosure, such as Figure 2As shown, the machining program parsed by the machining program parsing unit 12 is stored in the program block buffer 13. The parsing result stored in the program block buffer 13 is corrected by the command speed correction unit 14. However, the command speed correction unit 14 can also be configured after the interpolation pre-acceleration / deceleration processing unit 15, inside the interpolation processing unit 17, or after the interpolation processing unit 17, taking into account the speed ratio. Similarly, the acceleration correction unit 16 can also be configured after the interpolation pre-acceleration / deceleration processing unit 15, inside the interpolation processing unit 17, or after the interpolation processing unit 17.
[0169] Furthermore, in this disclosure, the acceleration / deceleration A before interpolation is a constant, accelerating (or decelerating) linearly at a constant speed. However, the acceleration / deceleration A before interpolation may not necessarily be a constant. The techniques of this disclosure can also be applied to the accelerating (or decelerating) parts of exponential functions and bell-shaped accelerating (or decelerating) parts.
[0170] The numerical control device 100 of this disclosure can generate instructions to pass through corners when a corner is formed between the current program block and the next program block. Therefore, the machine tool can be controlled using instructions identical to those in the machining program. In actual machining, errors occur due to inertia or overshoot, but by generating instructions that require passing through corners, machining with uniform quality and consistent error can be performed. Furthermore, in conventional program block overlap processing, there is a problem of unstable data obtained when adjusting the machine due to instruction deviations. The numerical control device of this disclosure outputs instructions with the same path, thus ensuring stable data for machine adjustment.
[0171] Explanation of reference numerals in the attached figures
[0172] 100 Numerical Control Device
[0173] 11. Processing program storage unit
[0174] 12. Machining Program Analysis Department
[0175] 13. Program Block Buffer
[0176] 14 Command Speed Correction Unit
[0177] 15. Pre-interpolation acceleration / deceleration processing unit
[0178] 16 Acceleration Correction Unit
[0179] 17 Interpolation Processing Department
[0180] 111 CPU
[0181] 112ROM
[0182] 113 RAM
[0183] 114 non-volatile memory.
Claims
1. A numerical control device that controls a relative speed of a tool and a work according to a machining program, characterized by, analyzing a first block included in the machining program as a movement instruction and a second block as a next movement instruction, calculating a corner portion allowable speed when passing through a corner portion when there is the corner portion between the first block and the second block, calculating a block instruction movement amount of a start point and an end point of the first block, calculating a movement amount in an acceleration portion that accelerates the pre-interpolation speed at the start point of the first block to an instruction speed of the machining program, a constant speed portion that maintains the instruction speed of the machining program, and a deceleration portion that decelerates from the instruction speed of the machining program to the corner portion allowable speed of the second block, based on the pre-interpolation speed at the start point of the first block, the corner portion allowable speed, and the block instruction movement amount of the first block, the numerical control device has: a machining program analysis portion that calculates a remaining movement amount of the first block from the movement amount of the acceleration portion, the constant speed portion, the deceleration portion, and the block instruction movement amount; a pre-interpolation speed correction portion that corrects the instruction speed of the constant speed portion; a pre-interpolation acceleration correction portion that corrects the pre-interpolation acceleration of the acceleration portion, correcting at least one of the pre-interpolation acceleration of the acceleration portion, the instruction speed of the constant speed portion, and the pre-interpolation acceleration of the deceleration portion, adjusting the movement amount of the acceleration portion, the movement amount of the constant speed portion, and the movement amount of the deceleration portion so that a sum of the movement amount of the acceleration portion, the movement amount of the constant speed portion, and the movement amount of the deceleration portion approaches the block instruction movement amount, in a case where a correction amount of the instruction speed of the constant speed portion exceeds a threshold value set in advance, the pre-interpolation speed correction portion increases a number of times of interpolation processing of the constant speed portion to adjust the correction amount of the instruction speed of the constant speed portion, in a case where a correction amount of the pre-interpolation acceleration of the acceleration portion exceeds a threshold value set in advance, the pre-interpolation acceleration correction portion increases or decreases a number of times of interpolation processing of the acceleration portion to adjust the pre-interpolation acceleration.
2. A numerical control device that controls a relative speed of a tool and a work according to a machining program, characterized by, analyzing a first block included in the machining program as a movement instruction and a second block as a next movement instruction, calculating a corner portion allowable speed when passing through a corner portion when there is the corner portion between the first block and the second block, calculating a block instruction movement amount of a start point and an end point of the first block, calculating a movement amount in an acceleration portion that accelerates the pre-interpolation speed at the start point of the first block to an instruction speed of the machining program, a constant speed portion that maintains the instruction speed of the machining program, and a deceleration portion that decelerates from the instruction speed of the machining program to the corner portion allowable speed of the second block, based on the pre-interpolation speed at the start point of the first block, the corner portion allowable speed, and the block instruction movement amount of the first block, The numerical control device has: a processing program analysis section that calculates a remaining movement amount of the first program block from movement amounts of the acceleration section, the constant speed section, and the deceleration section, and the program block command movement amount; an interpolation front speed correction section that corrects a command speed of the constant speed section; an interpolation front acceleration correction section that corrects an interpolation front acceleration of the deceleration section, at least one of the interpolation front acceleration of the acceleration section, the command speed of the constant speed section, and the interpolation front acceleration of the deceleration section is corrected, and movement amounts of the acceleration section, the constant speed section, and the deceleration section are adjusted so that a sum of the movement amounts of the acceleration section, the constant speed section, and the deceleration section approaches the program block command movement amount, in a case where a correction amount of the command speed of the constant speed section exceeds a threshold value set in advance, the interpolation front speed correction section increases a number of interpolation processes of the constant speed section to adjust the correction amount of the command speed of the constant speed section, in a case where a correction amount of the interpolation front acceleration of the deceleration section exceeds a threshold value set in advance, the interpolation front acceleration correction section increases or decreases a number of interpolation processes of the deceleration section to adjust the interpolation front acceleration.
3. A storage medium storing a command readable by a computer, characterized by the command is executed by one or more processors, whereby a first program block included in a processing program as a movement command and a second program block as a next movement command are analyzed, when there is a corner section between the first program block and the second program block, a corner section allowable speed at the time of passing through the corner section is calculated, a program block command movement amount of a distance between a start point and an end point of the first program block is calculated, based on an interpolation front speed at the start point of the first program block, the corner section allowable speed, and the program block command movement amount of the first program block, movement amounts of an acceleration section that accelerates the interpolation front speed at the start point of the first program block to a command speed of the processing program, a constant speed section that maintains the command speed of the processing program, and a deceleration section that decelerates from the command speed of the processing program to the corner section allowable speed of the second program block are calculated, a remaining movement amount of the first program block is calculated from movement amounts of the acceleration section, the constant speed section, and the deceleration section, and the program block command movement amount, at least one of the interpolation front acceleration of the acceleration section, the command speed of the constant speed section, and the interpolation front acceleration of the deceleration section is corrected, and movement amounts of the acceleration section, the constant speed section, and the deceleration section are adjusted so that a sum of the movement amounts of the acceleration section, the constant speed section, and the deceleration section approaches the program block command movement amount, in a case where a correction amount of the command speed of the constant speed section exceeds a threshold value, a number of interpolation processes of the constant speed section is increased to adjust the correction amount of the command speed of the constant speed section, in a case where a correction amount of the interpolation front acceleration of the acceleration section exceeds a threshold value, a number of interpolation processes of the acceleration section is increased or decreased to correct the interpolation front acceleration.
4. A storage medium storing a computer-readable command, characterized by the command being executed by one or more processors, whereby a first block of program included in a machining program as a movement instruction and a second block of program as a next movement instruction are parsed, when there is a corner portion between the first block of program and the second block of program, a corner portion allowable speed when passing through the corner portion is calculated, a distance between a start point and an end point of the first block of program, that is, a block of program instruction movement amount, is calculated, based on a pre-interpolation speed at the start point of the first block of program, the corner portion allowable speed, and the block of program instruction movement amount of the first block of program, a movement amount in an acceleration portion that accelerates the pre-interpolation speed at the start point of the first block of program to an instruction speed of the machining program, a constant speed portion that maintains the instruction speed of the machining program, and a deceleration portion that decelerates from the instruction speed of the machining program to the corner portion allowable speed of the second block of program is calculated, a remaining movement amount of the first block of program is calculated from the movement amounts of the acceleration portion, the constant speed portion, the deceleration portion, and the block of program instruction movement amount, at least one of a pre-interpolation acceleration of the acceleration portion, the instruction speed of the constant speed portion, and a pre-interpolation acceleration of the deceleration portion is corrected, the movement amount of the acceleration portion, the movement amount of the constant speed portion, and the movement amount of the deceleration portion are adjusted so that a sum of the movement amount of the acceleration portion, the movement amount of the constant speed portion, and the movement amount of the deceleration portion approaches the block of program instruction movement amount, in a case where a correction amount of the instruction speed of the constant speed portion exceeds a threshold value, a number of times of interpolation processing of the constant speed portion is increased to adjust the correction amount of the instruction speed of the constant speed portion, in a case where a correction amount of the pre-interpolation acceleration of the deceleration portion exceeds a threshold value, a number of times of interpolation processing of the deceleration portion is increased or decreased to correct the pre-interpolation acceleration.
Citation Information
Patent Citations
Block overlap system
JP1990040701A
Speed controller
JP1990137006A
Device and method for acceleration and deceleration pattern generation, and solution of inverse kinematical problem and time base correcting method used for the same
JP1994019528A