Control device and control method having an interlock function
The control device automatically enables interlocks during backward robot program execution, addressing the issue of interference between robots by ensuring correct interlock signal handling, thus preventing collisions.
Patent Information
- Application Number
- JP2023546601
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-09-07
- Publication Date
- 2025-06-11
- Estimated Expiration
- 2041-09-07
AI Technical Summary
In systems where multiple robots share a work area, the existing techniques for preventing interference through interlock signals are inadequate during backward execution of robot programs, leading to potential collisions.
A control device and method that automatically enable interlocks related to pre-registered interlock signals during backward execution of robot programs, ensuring that logic statements related to interlock signals are appropriately handled.
Prevents interference between robots by ensuring that interlock signals are correctly switched during backward program execution, eliminating the need for manual operator intervention and reducing the risk of collisions.
Smart Images

Figure 0007691507000001 
Figure 0007691507000002 
Figure 0007691507000003
Abstract
Description
Technical Field
[0001] The present invention relates to a control device and a control method having an interlock function for avoiding interference related to a robot.
Background Art
[0002] In a system in which a plurality of robots operate sharing a work area, a technique for setting an interlock using a robot program or the like that controls the operation of the robots so that the robots do not interfere or collide with each other is known (see, for example, Patent Documents 1 and 2). Further, a technique for performing forward execution processing of a robot operation program and backward execution processing based on execution history data related to forward execution is known (see, for example, Patent Document 3).
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Patent Document 2
Patent Document 3
Summary of the Invention
Problems to be Solved by the Invention
[0004] In the execution of a robot program, not only forward execution that executes the program from the smaller line number to the larger line number but also backward execution that executes the program from the larger line number to the smaller line number may be included. Further, during backward execution, there may be a setting to ignore the logic statements in the program. However, if the ignored logic statement includes processing related to an interlock signal, the interlock signal may not be appropriately switched, and problems such as robots colliding with each other may occur. Also, in order to avoid such problems, it is conceivable for an operator or the like to manually switch the interlock signal or modify the program, but both are time-consuming operations.
Means for Solving the Problem
[0005] One aspect of the present disclosure is a control device for preventing interference between a plurality of industrial machines including at least one industrial robot based on an interlock signal transmitted between the plurality of industrial machines. The control device executes a robot program for operating the robot and, while backward-executing the robot program, ignores at least one logic statement included in the robot program and related to the interlock signal Setting and switching process A program execution unit that ignores at least one logic statement included in the robot program and related to the interlock signal, and an interlock setting unit that automatically enables an interlock related to a pre-registered , regarding the process included in the logic statement ignored during the backward execution of the robot program interlock signal while backward-executing a robot program for operating the robot. , the interlock setting unit enables the interlock by internal processing automatically performed as the specification of the control device It is a control device for an industrial robot.
[0006] Another aspect of the present disclosure is a control method for preventing interference between a plurality of industrial machines including at least one industrial robot based on an interlock signal transmitted between the plurality of industrial machines. The control method executes a robot program for operating the robot and, while backward-executing the robot program, ignores at least one logic statement included in the robot program and related to the interlock signal Setting and switching process and, while backward-executing a robot program for operating the robot, enables a pre-registered , regarding the process included in the logic statement ignored during the backward execution of the robot programInterlock related to the interlock signal , by internal processing automatically performed as the specification of the control device for preventing interference between the plurality of industrial machines A control method for an industrial robot, including enabling the interlock related to the interlock signal.
Effect of the Invention
[0007] According to the present disclosure, when the robot program is executed in reverse, the interlock related to the pre-registered interlock signal is automatically enabled, so that the operator can surely prevent interference with the robot without performing troublesome operations such as program modification.
Brief Description of the Drawings
[0008]
Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Embodiments for Carrying Out the Invention
[0009] FIG. 1 shows a configuration example of a system 10 including a plurality of industrial machines including at least one robot controlled by a control device according to a preferred embodiment. Here, the system 10 has a first robot 12 and a second robot 14 as industrial robots, and the first robot 12 and the second robot 14 each have movable parts 16 and 18 such as robot arms. The operation of the first robot 12 is controlled by a first control device 20 connected to the first robot 12, and similarly, the operation of the second robot 14 is controlled by a second control device 22 connected to the second robot 14.
[0010] Since the working areas (the movable ranges of the robot arms) of the first robot 12 and the second robot 14 overlap or are close to each other, they are configured to prevent interference between the two robots based on signals (here, interlock signals) transmitted between the control devices of the two robots. Specifically, at least one of the first control device 20 and the second control device 22 (the first control device 20 in the illustrated example) executes a robot program (hereinafter simply referred to as a program) including at least one operation command for operating the corresponding robot and at least one signal output command, and while the program is being executed in reverse, a program execution unit 24 that ignores at least one of the logic sentences included in the program and related to the interlock signal, and an interlock setting unit 26 that enables the interlock related to the pre-registered interlock signal while the program for operating the robot is being executed in reverse.
[0011] Also, at least one of the first control device 20 and the second control device 22 (the first control device 20 in the illustrated example) may optionally have a storage unit 28 that stores the calculation results of the program execution unit 24 and the interlock setting unit 26, programs, etc., and an input unit 30 through which an operator can register and input various settings, etc. As an example, the program execution unit 24 and the interlock setting unit 26 are processors, the storage unit 28 is a memory such as a ROM or a RAM, and the input unit 30 is a numeric keypad, a touch panel, etc. Note that the first control device 20 and the second control device 22 can also be a substantially integrated control device.
[0012] Next, with reference to FIGS. 2-3, the interlock set for the first robot 12 and the second robot 14 will be described. Reference numeral 32 indicates a part of the first program for controlling the operation of the first robot 12, and reference numeral 34 indicates a part of the second program for controlling the operation of the second robot 14. Here, the first robot 12 is configured such that a representative point such as its hand (the tip of the arm 16) can move between positions P[1], P[2], and P[3] indicated by triangular marks in FIG. 3. By executing the first program 32 forward, after being positioned at position P[1], it linearly moves to position P[2], then linearly moves to position P[3], then linearly moves to position P[2] again, and then returns to position P[1].
[0013] On the other hand, the second robot 14 is configured such that a representative point such as its hand (the tip of the arm 18) can move between positions P[1], P[2], and P[3] indicated by circular marks in FIG. 3. By executing the second program 34 forward, after being positioned at position P[1], it linearly moves to position P[2], and then linearly moves to position P[3]. In the programs 32 and 34, the symbol "J" means an operation of rotating each axis of the robot to a target value, and "L" means an operation of linearly moving the hand of the robot or the like at a predetermined speed.
[0014] In the present disclosure, the forward execution of a program means executing each program from the smaller line number to the larger line number as indicated by arrows 36 and 38 in FIG. 2. Conversely, the backward execution of a program means executing the program from the larger line number to the smaller line number as indicated by arrow 40 in FIG. 4. Therefore, the forward / backward execution of a program has no relation to the forward / backward movement of the robot arm. For example, when an operation of the robot arm moving backward (i.e., the tip of the arm approaching the center of the robot) is taught, the robot arm moves backward by the forward execution of the program, while the robot arm moves forward (i.e., the tip of the arm moving away from the center of the robot) by the backward execution of the program.
[0015] The first program 32 and the second program 34 include settings regarding the interlock between the first robot 12 and the second robot 14. Here, as shown in FIG. 3, since the position P[3] (triangle mark) of the first robot 12 and the position P[3] (circle mark) of the second robot 14 are substantially the same or relatively close, if both robots are located at the position P[3] simultaneously, the two robots will contact and interfere with each other. Therefore, it is necessary to set the interlock so that both robots are not positioned or approaching the position P[3] simultaneously.
[0016] Specifically, in the first program 32, after the first robot 12 moves to the position P[2] (line number 2), the interlock signal DO[1] is set to "OFF" (line number 3). On the other hand, in the second program 34, after the second robot 14 moves to the position P[2] (line number 2), it waits until the interlock signal becomes "ON" (line number 3). At this point, the second robot 14 cannot move to the position P[3].
[0017] Next, as the forward execution of the first program 32 progresses, after the first robot 12 moves to the position P[3] and then returns to the position P[2] again (line number 5), the interlock signal DO[1] is switched to "ON" (line number 6). Then, the second robot 14 moves toward the position P[3] (line number 4). In this way, for example, interference between robots can be prevented by using the DO / DI signals transmitted between robots for interlock.
[0018] Here, in the present embodiment, it is assumed that the first program 32 is executed forward up to line number 7 and then executed backward from line number 7. However, during backward execution, at least a part of the logic statements such as signal switching processing is ignored and not executed, while on the contrary, the action statements for operating the robot are executed. The reason for such a setting is that it is difficult to determine whether the logic statements should also be executed during backward execution, and in many cases, the logic statements should not be processed. For example, when the logic statement is a process of counting the number of cycles, it is often inappropriate to change the number of cycles (register value) even during backward execution. Therefore, in many cases, all logic statements are set to be ignored during backward execution.
[0019] FIG. 4 shows an example of the process when the first program 32 is executed backward. As described above, since the logic statements are ignored during backward execution, the signal setting / switching processing (line numbers 3 and 6) is not executed. Then, when the first robot 12 moves to the position P[3] by the backward execution of the first program 32, DO[1] remains set to "ON" by the forward execution of the first program 32, so the second robot 14 is in a state where it can access the position P[3]. Therefore, during the backward execution of the first program 32, both the first robot 12 and the second robot 14 may move or approach the position P[3], and the two robots may interfere with each other.
[0020] Therefore, in the present embodiment, the processing illustrated in the flowchart of FIG. 5 is used to prevent the problems caused by ignoring the logic statements during the backward execution of the program. First, in step S1, the user or operator of the robot preliminarily sets and registers, via the input unit 30 or the like, among the interlock signals included in at least one of the logic statements of the programs 32 and 34, the interlock signals that should be inverted (switched) during the backward execution of the program in the first control device 20 or the second control device 22 or the like. For example, when it is expected that the interlock that should originally be valid remains invalid due to the logic statement being ignored during the backward execution of the program, the interlock signal related to this interlock is registered. The registered interlock signal is stored in the storage unit 28 or the like.
[0021] There are several ways to register the interlock signal. For example, an operator who is creating or editing a program according to instructions or the like can manually register the interlock signal in the program to be reversed during backward execution from the input unit 30 or the like. Alternatively, when the program is prepared in advance in the form of a template or the like, all the interlock signals in the program may be automatically registered when the control device reads the program. In that case, the operator can also delete the interlock signals that should not be reversed during backward execution from the registered interlock signals.
[0022] Next, the program execution unit 24 executes the first program 32 and determines whether the first program 32 is being executed backward (step S2). When the first program 32 is being executed backward, it is determined whether the execution line includes a logic statement related to the interlock signal (step S3). As described above, when the execution line during backward execution includes a logic statement, the logic statement is ignored.
[0023] Next, the interlock setting unit 26 determines whether the ignored logic statement includes the processing of the interlock signal registered (specifically, stored in the storage unit 28 or the like) in step S1 (step S4). When the ignored logic statement includes the processing of the registered interlock signal, the interlock signal related to the registered interlock signal is reversed (here, switched from ON to OFF) while the first program 32 is being executed backward (step S5). That is, the interlock setting unit 26 automatically enables the interlock that is related to the pre-registered interlock signal and is invalid during backward execution of the program. By such processing, the interlock between the first robot 12 and the second robot 14 is appropriately set even during backward execution of the program, and interference between the two robots is prevented. It should be noted that the processing of steps S2 - S5 can be automatically performed by the program execution unit 24 or the interlock setting unit 26 or the like.
[0024] Here, the process of enabling the interlock, specifically the switching (inversion) of the interlock signal, is not performed by the operator's instructions or the command statements described in the program, but is automatically performed by an internal process as a specification of the control device (such as a processor). The pre-registered interlock signal is switched (for example, inverted from ON to OFF, or from OFF to ON). Therefore, the operator only needs to preset and register the signal to be inverted during backward execution, and there is no need to perform troublesome operations such as instructions and program changes. Also, it is preferable that such internal processing cannot be modified by the operator as a specification of the control device. However, it is possible to provide a switch or the like in the control device so that the operator can select whether to perform the internal processing itself.
[0025] However, if the interlock signal is unconditionally inverted during backward execution, there may be an undesirable result such as disabling an interlock that should not actually be disabled. Therefore, in this embodiment, by registering in advance the interlock signal to be inverted by the operator or the like during backward execution, only the registered interlock signal can be switched during backward execution, and an appropriate interlock can be set.
[0026] In the above-described embodiment, the interlock between two robots has been described, but the present disclosure is also applicable to two industrial machines such as a robot and a machine tool. Also, the industrial machines are not limited to two, and may be three or more.
[0027] In the above-described embodiment, the program execution unit 24 has a function of forward-executing a program including at least one operation instruction and at least one signal output command, and a function of backward-executing the program. Further, the interlock setting unit 26 has a function as a signal processing unit that performs, for a pre-registered signal, a process opposite to the signal output command during forward execution during backward execution (for example, if it is ON→OFF during forward execution, it is OFF→ON during backward execution). Conventionally, the signal processing during backward execution was performed based on the history data of the target signal and the like, so it did not always perform a process opposite to forward execution. However, in this embodiment, regardless of the execution history regarding signal processing, a process opposite to the signal output command during forward execution (inversion process or the like) can be performed during backward execution. Therefore, in this embodiment, it is not necessary to save history data and perform arithmetic processing and the like.
Explanation of Signs
[0028] 10 Robot system 12 First robot 14 Second robot 16, 18 Movable parts 20 First control device 22 Second control device 24 Program execution unit 26 Interlock setting unit 28 Storage unit 30 Input unit 32 First robot program 34 Second robot program
Claims
1. A control device for preventing interference between a plurality of industrial machines, based on an interlock signal transmitted between the plurality of industrial machines including at least one industrial robot, comprising: A program execution unit that executes a robot program for operating the robot, and ignores at least one logic statement included in the robot program and related to the setting / switching process of the interlock signal while the robot program is being executed backward; An interlock setting unit that automatically enables an interlock related to the interlock signal for a process included in a logic statement that was ignored during the backward execution of the robot program and that was registered in advance while the robot program for operating the robot is being executed backward; Comprising: The interlock setting unit enables the interlock by internal processing automatically performed as a specification of the control device, a control device for an industrial robot.
2. A control method for preventing interference between a plurality of industrial machines, based on an interlock signal transmitted between the plurality of industrial machines including at least one industrial robot, comprising: Executing a robot program for operating the robot, and ignoring at least one logic statement included in the robot program and related to the setting / switching process of the interlock signal while the robot program is being executed backward; While the robot program for operating the robot is being executed backward, enabling an interlock related to the interlock signal for a process included in a logic statement that was ignored during the backward execution of the robot program and that was registered in advance, by internal processing automatically performed as a specification of a control device for preventing interference between the plurality of industrial machines; Including, a control method for an industrial robot.
3. A control device for processing an interlock signal transmitted between a plurality of industrial machines including at least one industrial robot, comprising: A program execution unit that performs forward execution and backward execution of a program including at least one operation command and at least one interlock signal output command; A signal processing unit that performs an inversion process of the interlock signal during the backward execution, regardless of whether the inversion process of the interlock signal registered in advance during the forward execution was performed or not. A control device.
Citation Information
Patent Citations
Numerical controller incorporating optional block skipping function
JP1982069312A
Reverse operation control system
JP1990250104A
Backward operation control method for numerical controller
JP1991025509A
Interference preventing system for working head
JP1992007709A
Robot controller
JP1996071979A