Numerical control

DE102015015954B4Inactive Publication Date: 2025-03-27FANUC LTD
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
DE102015015954
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2014-12-12
Filing Date
2015-12-08
Publication Date
2025-03-27
Estimated Expiration
Not applicable · inactive patent

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Numerical control (10) for controlling several machine control axes (30) of objects according to a machining program, wherein Priorities are assigned to the actions of the several machine control axes (30), and wherein the numerical control (10) has: a command analysis device (12) which analyzes the machining program and generates command data which control the multiple machine control axes (30); and a determination device (13) for a block execution start, which determines whether a collision would occur during the operation of the several machine control axes (30) according to the command data and which, if a collision risk is detected, sets the timing sequence according to which a command to control the operation of a machine control axis (30) of lower priority is started from the machine control axes (30) that are in danger of collision at a time when no collision occurs and the positioning takes place in the shortest possible time, so that the time at which an object to be controlled with a machine control axis (30) of higher priority leaves a collision area and the time at which an object to be controlled with the machine control axis (30) of lower priority reaches the collision area coincide.
Need to check novelty before this filing date? Find Prior Art

Description

Background of the invention 1. Field of the invention

[0001] The invention relates to numerical controllers and, more particularly, to those having a function for avoiding collisions by assigning priorities to control point commands when positioning a plurality of control points and by setting the movement start timing of a command having a lower priority. 2. State of the art

[0002] In the prior art, where there is a possibility of collisions (undesired interference), positioning commands for a plurality of control points were listed in different blocks, not in one block, and then executed (for example, Japanese Patent Application Publication 2006-075916).

[0003] For example, if according to the Fig. 8A and Fig. 8B, if a feeder 2 and a door 3 are controlled in a machine tool 1 having an L-axis and an A-axis, respectively, then commands for the L-axis and the A-axis are listed in different blocks because a collision may occur if commands for retracting the feeder 2 and closing the door 3 are listed in one block.

[0004] According to the prior art, when control point commands are executed in different blocks, objects to be controlled do not collide with each other because a control operation of a subsequent block is not started until the control operation of the preceding block is completed. Since the subsequent block cannot be started until the operation of the block with a preceding command is completed, the time from the execution of the preceding command until the state where no collision occurs becomes a useless wait time.

[0005] This useless waiting time in the current state of technology will now be examined in detail with regard to the Fig. 9A to 9E are described in more detail.

[0006] The Fig. 9A to 9E show the operation sequence of the control system, with which a workpiece is positioned with a feeder, the feeder is retracted, and machining is performed after a door is closed. In the machine tool 1 according to the figures, it is assumed that the position control of the feeder 2 is carried out with the L-axis and the opening and closing of the door 3 is carried out with the A-axis, wherein the feeder 2 and the door 3 are moved according to a machining program according to Fig. 9A can be controlled.

[0007] If the feeder 2 and the door 3 are moved according to the processing program Fig. 9A controlled, as in the Fig. As shown in Figures 9B to 9E, the closing of door 3 begins when the feeder 2 is retracted after the workpiece 4 is placed, and machining of the workpiece 4 with the tool 5 starts when the door 3 is completely closed. In the prior art, the retraction of the feeder 2 occurs in the N10 block of program O0001, but the execution of the N20 block does not start until the feeder 2 is completely retracted. If the feeder 2 operates slowly, a useless waiting time occurs before the door 3 starts to close.

[0008] A function related to the present invention is a "wait function by specifying the starting point." However, this function only allows coordination of one path with another path in a multi-path system and cannot be used for coordination within a single path. Furthermore, the coordinate values ​​on the basis of which the coordination is carried out must be specified in the machining program, which makes it difficult to obtain precise coordinate values ​​based on the movement distance and movement speed that can be used to avoid collisions. Brief description of the invention

[0009] Accordingly, an object of the present invention is to provide a numerical controller with which a collision (undesired interference) can be avoided and positioning can be carried out in a short time by assigning priorities to control point commands and setting the movement start timing to a command with a lower priority when a collision occurs in positioning a plurality of control points during execution of a machining program if positioning is started at the same time but it takes time to complete the positioning if the commands therefor are given in different blocks.

[0010] A numerical control according to the invention controls a plurality of machine control axes on the basis of a machining program in which priorities are assigned to the operating sequences of the plurality of machine control axes.The numerical controller comprises: a command analysis device that analyzes the machining program and generates command data that controls a plurality of machine control axes; and a block execution start determination device that determines whether a collision occurs in the operation of the plurality of machine control axes based on the command data, and then, when the occurrence of a collision is determined, sets the timing according to which a command that controls the operation of one machine control axis among a plurality of machine control axes that come into undesirable interference with each other is started at a timing at which the undesirable interference does not occur and positioning is executed in the shortest possible time.

[0011] The block execution start determining means may obtain a collision area, which is an area where collision of a plurality of machine control axes occurs, according to the movement paths of the plurality of machine control axes that come into collision, and set the timing according to which a command controlling the operation of the lower-priority machine control axis among the plurality of machine control axes that come into collision is started based on the time at which a higher-priority machine control axis belonging to the (otherwise) colliding control axes leaves the collision area and the time at which the lower-priority machine control axis among the plurality of machine control axes that would (otherwise) come into collision enters the collision area.

[0012] When setting the time sequence, the calculation can take into account the operating times of several machine control axes.

[0013] Furthermore, when setting the time sequence, the calculation can take into account the coordinate values ​​of the several machine control axes.

[0014] Furthermore, when adjusting the time sequence, the calculation can take into account the coordinate values ​​of the multiple machine control axes.

[0015] The numerical controller may further comprise a unit that determines, according to an external input to the numerical controller, a time at which a command that controls the operation of the low-priority machine control axis is started.

[0016] With the above structure, the present invention can perform positioning in a short time without collision (undesired interference) even when positioning commands of a plurality of control points at which collision would occur are specified in one block or different blocks, and thus the cycle time can be shortened. Short description of the characters

[0017] These and other objects and features of the invention will become even clearer from the following description of embodiments with reference to the figures: Fig. 1 shows the time difference in the start times of a feeder, a door, and a processing operation between the prior art and the present invention; Fig. 2 illustrates a movement path of an object to be controlled and a collision area according to the invention; Fig. 3 is a functional block diagram of a numerical controller according to an embodiment of the invention; Fig. 4A and Fig. 4B shows an example of a machining program of the invention; Fig. 5 explains a method for calculating the operation start time of a low priority object to be controlled according to the invention; Fig. 6A, Fig. 6B and Fig. 6C shows an example of an operating sequence for a feeder and a door controlled according to the invention; Fig. 7 is a schematic flow diagram for the start determination of block execution in one embodiment of the invention; Fig. 8A and Fig. 8B illustrate a problem in controlling a feeder and a door with a numerical control according to the prior art; and Fig. 9A, Fig. 9B, Fig. 9C, Fig. 9D and Fig. 9E show an example of an operation sequence with respect to a feeder and a door controlled by a conventional numerical control. Description of preferred embodiments in detail

[0018] First, a basic technical overview of the invention will be provided. According to the invention, priorities (rankings) are assigned to control point commands, and a numerical control automatically sets the motion start time of a lower-priority command, making it possible to avoid collisions and execute positioning in the shortest possible time.

[0019] As a method for setting the operation start time, the invention provides, on the one hand, a method with which a higher priority command and a lower priority command are given in one block and the movement start time is set in the block, and, on the other hand, a method with which a higher priority command and a lower priority command are given in different blocks and the block start time is set for the lower priority command. In both cases, according to Fig. 1, operation is started according to a time sequence that eliminates the possibility of a collision between control points. Such control makes it possible to avoid wasted time and shorten the overall operating time compared to the state of the art.

[0020] The detection of a possible collision is carried out according to the invention as follows. At the start of the block execution, assuming that each control point moves linearly, an imaginary line segment is drawn, which represents a start point and an end point of the control point, and a determination is made as to whether or not there is an intersection point of line segments in three planes: an XY plane, a YZ plane, and a ZX plane. If there is an intersection point in each plane and the coordinates of the intersection points in the planes coincide, there is a possibility of a collision depending on the movement time sequence. Since the object to be controlled has a shape, a shape corresponding to each control point is specified in advance using a parameter or the like, and a movement path according to Fig. 2 obtained by adding the shape to the coordinate values ​​of the control point, and a determination is made as to the presence or absence of a collision based on a collision area in which the movement paths overlap.

[0021] By adding the shape to the coordinate values ​​of the control point, the precise shape of the controlled object, obtained by setting the coordinate values ​​of the control point as a reference position, can be stored in advance, and a range through which the controlled object passes during movement can be specified as the movement path. On the other hand, if the shape of the controlled object is expressed by a simple polygonal shape (for example, a simple rectangular parallelepiped with extensions parallel to the X-axis, Y-axis, and Z-axis) that contains the shape of the controlled object, it is possible to easily obtain a movement path for each endpoint of the polygonal shape by adding the shape of the controlled object to the coordinate values ​​of the control point, as well as a collision area where the movement paths overlap.

[0022] If there is a possibility of a collision, the time (T Ain , T Bin ) that elapses until an object to be controlled reaches the collision space, and the time (T Aout , T Bout ), which elapses until each controlled object leaves the collision space, is calculated according to the movement speed of the controlled object and its distance from the collision space. If the above time period of one controlled object coincides with the time period of the other controlled object, both objects enter the collision space at the same time and collide. By making such a determination in a similar manner in three planes, a definitive determination can be made as to whether a collision will occur or not.

[0023] If a determination is made that a collision would occur, the operation start time of the object to be controlled with lower priority is set so that this object does not enter the collision space before the object to be controlled with higher priority has left the collision space. The time to be set corresponds to the difference between the time (T Aout ), which elapses until the object to be controlled with higher priority leaves the collision space, and the time (T Bin ), which elapses until the object to be controlled with lower priority enters the collision space; in the example according to Fig. 2, certain time periods shown there correspond to each other. As a result of this setting, the time at which the object to be controlled with higher priority leaves the collision zone and the time at which the object to be controlled with lower priority enters the collision zone coincide, thus avoiding a collision.

[0024] For time series setting, in addition to the setting based on time periods described above, a setting based on coordinate values ​​can be made. The coordinate values ​​that are determined after a time period T Aout - T Bin after the start of operation of the object to be controlled with higher priority can be calculated using the following equation (1). Coordinate values ​​= starting point − coordinate values ​​+ movement speed × [TAout − TBin]

[0025] The lower-priority object starts when the coordinate values ​​of the higher-priority object exceed the coordinate values ​​described above (or fall below these coordinate values, depending on the direction of movement), thus avoiding a collision. Setting based on the coordinate values ​​enables precise control even when the movement speed changes, e.g., due to a feedrate override or the like.

[0026] In both cases, i.e. when using time as the reference and when using coordinate values ​​as the reference, positioning can be carried out in the shortest possible time because the execution of a subsequent block is started when the operation of the lower priority control point is completed, even if the higher priority control point is still moving.

[0027] The technical structure of the invention is explained in more detail below using the figures. Fig. 3 is a block diagram of essential components according to an embodiment of a numerical controller according to the invention.

[0028] A numerical controller 10 according to this embodiment has a memory 11, a command analysis unit 12, a block execution start determination unit 13, an interpolation execution unit 14, a coordinate update unit 15, and an acceleration and deceleration processing unit 16.

[0029] The memory 11 consists of a RAM (random access memory) or the like and stores an NC program which controls a drive axis of a machine tool and machine control axes 30 of a feeder, a door, etc.

[0030] The command analysis device 12 reads the NC program (numerical control program) from the memory 11, analyzes the read NC program, and generates command data corresponding to movement commands for the drive axis of the machine tool and the machine control axes 30 of the feeder, the door, etc.

[0031] The block execution start determination unit 13 as a specific component of the present invention calculates the operation start timing of the machine control axes 30 based on a block that controls the machine control axes 30 of the feeder, the door, etc., through block execution start determination processing, which will be described in detail later, and adjusts the command data output from the command analysis device 12 based on the calculated timing so that the machine control axes 30 do not collide.

[0032] The interpolation processing unit 14 performs interpolation based on the command data set by the block execution start determination unit 13 and generates interpolation data. The coordinate updating unit 15 updates the coordinate values ​​of the machine control axes 30 based on the interpolation data generated by the interpolation processing unit 14 and obtains the mechanical coordinate values ​​of the machine control axes 30. The acceleration and deceleration processing unit 16 then executes these operations based on the mechanical coordinate values ​​updated by the coordinate updating unit 15 and controls the drive of each of the machine control axes 30 via a respective servo motor 20.

[0033] The determination of the block execution start by the determination device 13 is described in more detail below.

[0034] Fig. Figure 4 shows examples of such programs. In the embodiment, an address P is introduced to define the priority for the operation of the machine control axis 30, and a word "Pn" (n is an integer) is included in an instruction or block. The smaller the value of n, the higher the priority for execution of the instruction or block.

[0035] In Fig. 4A, a program O0002 shows a case where the invention is applied to a block and a command written after P1 has a higher priority (control command for a feed axis) and a command written after P2 has a lower priority (control command for a door axis).

[0036] In Fig. 4B, a program O0003 shows a case where the invention is applied to different blocks. An N10 block in which P1 is specified is a higher priority block, while an N20 block in which P2 is specified is a lower priority block. In the numerical controller 10 according to this embodiment, when the words Pn are specified in different blocks, the command analysis means 12 generates command data by reading all the adjacent blocks in which the words Pn are specified, that is, adjacent blocks in which the commands for controlling different axes are specified, and the block execution start determination means 13 makes a determination regarding the start of block execution based on the command data.

[0037] When determining the start of block execution, the presence or absence of a collision is first checked by adding the shape to the control point's movement path using the method described above. As a result, if the movement areas overlap, a collision occurs depending on the movement speed of each control point.

[0038] Then the time (T Aout ) is calculated, which elapses until the object to be controlled with higher priority leaves the collision area, and the time (T Bin ) is calculated, which elapses until the object to be controlled with lower priority comes into the collision area, whereby the information according to Fig. 5 are used, and a comparison is made between the time (T Aout ) and time (T Bin ).

[0039] If T Aout ≤ T Binis, no collision occurs even if the two control points start at the same time because the object to be controlled with lower priority enters the collision area after the object to be controlled with higher priority has left it. In this case, in program O0002, the retraction of the feeder axis and the closing of the door are started at the same time, and when the operation of the object to be controlled with lower priority (the door) is completed in N20, N30 is started as the next block, even if the object to be controlled with higher priority (the feeder) is still operating. In program O0003, blocks N10 and N20 start execution one after the other. When the operation of the object to be controlled with lower priority (door) in N20 is completed, the next block N30 is started, even if the object to be controlled with higher priority (the feeder) is still operating.

[0040] Applies T Aout > T BinIf both control points start simultaneously, a collision occurs between the object to be controlled with lower priority and the object to be controlled with higher priority, because the object to be controlled with lower priority reaches the collision zone before the object to be controlled with higher priority has left it. Then, in program O0002, the control is executed so that the door closing process is started after the time T has elapsed. Aout - T Bin After the feed axis has started to retract and the door has been closed with a lower priority, the next block N30 is started. In program O0003, the execution of block N20 starts after the time T has elapsed. Aout - T Bin After the N10 block has started and N20 has been executed, N30 is started.

[0041] In both programs O0002 and O0003, there is no collision between the feed axis and the door axis because the door reaches the collision area at the moment the feed axis leaves the collision area.

[0042] The Fig. 6A to 6C show the work sequence control for starting a processing by closing the door 3 when retracting the feeder 2 by executing a program according to Fig. 4 in the numerical control of this embodiment.

[0043] As the figures show, the feeder 2 is retracted after the workpiece 4 is placed. Unlike the prior art, the operation of the door 3 in the invention begins before the feeder 2 is fully retracted, with the timing being determined by the block execution start determination method described above. Since the start of the operation of the door 3 is calculated so that the door 3 and the feeder 2 do not collide, the control is carried out so that the door 3 enters the collision space at the moment the feeder 2 leaves the collision space, thus preventing unwanted interference between the door 3 and the feeder 2.

[0044] When the door 3 is then closed, the tool 5 begins machining the workpiece 4, even if the feeder 2 is still moving. This makes it possible to avoid ineffective times and to shorten the total working time compared to the prior art, because the start of operation of the feeder 2, the start of operation of the door 3 and the start of machining are carried out according to the time sequence according to Fig. 1 should be carried out.

[0045] Fig. 7 is a schematic flowchart of the block execution start determination process performed by the block execution start determination means 13 in the numerical controller 10 of this embodiment.

[0046] [Step SA01] A motion path is obtained by adding the shape to a control point for each object to be controlled. A check is made for the possibility of a collision between the objects to be controlled, and if a collision is possible, the time T Aout , which elapses until the higher priority object to be controlled leaves the collision space, and the time T Bin , which elapses until a lower priority object to be controlled enters the collision space, is calculated and compared with each other and a determination is made as to whether a collision would actually occur.

[0047] [Step SA02] If it is determined in step SA01 that a collision occurs, the timing according to which the operation of an object to be controlled with lower priority is started is calculated based on the time T Aout , which elapses until the object to be controlled with higher priority leaves the collision space, and the time TBin which elapses until the object to be controlled with lower priority enters the collision space.

[0048] [Step SA03] According to the command data output from the command analyzer 12, the operation of a higher priority command is started.

[0049] [Step SA04] According to the timing calculated in step SA02, the start time for the execution of the lower priority command is set.

[0050] [Step SA05] According to the command data output from the command analyzer 12, the operation of the lower priority command is started after the corresponding time setting is performed in step SA04.

[0051] Embodiments of the invention have been described above, but the invention is not limited to the embodiments and can be implemented in other ways after appropriate modification.

[0052] For example, in the above embodiment, a feeder and a door are used as examples of objects to be controlled, but the term "object to be controlled" is not limited to such feeders and doors. The invention can be applied to any object to be controlled as long as there is a possibility of collision.

[0053] In the above embodiment of the invention, two objects to be controlled are provided, but the invention can also be applied to three or more objects to be controlled. Then, it is necessary to simply apply the block execution start determination method to any combination of the objects to be controlled and perform the operation of each object to be controlled according to a timing sequence in which no collision occurs.

[0054] In the above embodiment, the timing at which a command for controlling the operation of a lower-priority machine control axis is started is determined by the block execution start determination method by the block execution start determination device 13. Additionally, a unit may be provided that sets the timing at which a command for executing the operation of a lower-priority machine control axis is started based on an input signal from outside the numerical controller.With such a structure, an operator can initiate an operation start for a lower-priority machine control axis by operating an operation panel or the like before the operation start time of the lower-priority machine control axis set by the block execution start determining means 13, and the operation of a lower-priority machine control axis can be started based on a signal generated from a sensor or the like arranged in the machine tool or the work environment, or a signal generated from a step program generated by a PMC (or the like), whereby it is possible to perform adaptive operation control depending on the circumstances.

Claims

[1] Numerical control (10) for controlling a plurality of machine control axes (30) of objects according to a machining program, wherein priorities are assigned to the operations of the plurality of machine control axes (30), and wherein the numerical control (10) comprises: a command analysis device (12) which analyzes the machining program and generates command data which control the plurality of machine control axes (30); and a block execution start determination device (13) which determines whether a collision would occur during the operation of the plurality of machine control axes (30) in accordance with the command data and which, when a danger of collision is determined, sets the timing according to which a command for controlling the operation of a lower-priority machine control axis (30) from among the machine control axes (30) at risk of collision is started at a time point at which no collision occurs and positioning is carried out in the shortest possible time, so that the time point at which an object to be controlled by a higher-priority machine control axis (30) leaves a collision area and the time point at which an object to be controlled by the lower-priority machine control axis (30) reaches the collision area coincide. [2] The numerical controller according to claim 1, wherein the block execution start determining means (13) determines a collision area in which the plurality of machine control axes (30) collide, based on the movement paths of the plurality of machine control axes (30) that may collide with each other, and sets the timing according to which the command to operate a lower-priority machine control axis (30) among the plurality of colliding machine control axes (30) is started according to a time at which a higher-priority machine control axis (30) among the colliding plurality of machine control axes (30) leaves the collision space, and the timing according to which the lower-priority machine control axis (30) among the colliding machine control axes (30) enters the collision space. [3] Numerical controller according to claim 1 or 2, wherein, in setting the timing sequence, a calculation is carried out with respect to the operating times of the plurality of machine control axes (30). [4] Numerical controller according to claim 1 or 2, wherein, in setting the timing sequence, a calculation is carried out with respect to the coordinate values ​​of the plurality of machine control axes (30). [5] Numerical control according to one of claims 1 to 4, further comprising: a unit which, based on an input signal from outside the numerical controller, sets a timing sequence according to which a command for controlling the operation of the lower priority machine control axis (30) is started.

Citation Information

Patent Citations

  • Numerical control methods and equipment for them

    DE112008003800T5

  • METHOD AND DEVICE TO PREVENT COLLISION OF TOOLS. technical field

    DE3786753T2

  • Method for evading interference of plural robots and method for determining order and partial charge of operation

    JP1996166809A

  • Interference evading method for nc machine tool

    JP1996263115A

  • Protective cover opening / closing device for machine tool

    JP2006075916A