MANAGEMENT DEVICE FOR MANAGING ROBOT OPERATION PROGRAM, NETWORK SYSTEM, AND METHOD

20240278429 ยท 2024-08-22

Assignee

Inventors

Cpc classification

International classification

Abstract

A management device includes: a data acquisition unit for acquiring modification information indicating a modification that has been applied to an operation program, and execution information indicating that the operation program has been executed in order to operate a robot; an input receiving unit for receiving an input for authorizing the modification information acquired by the data acquisition unit; an authorization determination unit for determining, when the data acquisition unit has acquired the execution information, whether the modification information for the operation program being executed has been authorized; and a process execution unit for executing a predetermined accident prevention process if the authorization determination unit 66 has determined that the modification information has not been authorized.

Claims

1. A management device configured to manage an operation program of a robot, the management device comprising: a data acquiring unit configured to acquire change information indicating a change made to the operation program, and execution information indicating that the operation program is executed to operate the robot; an input receiving unit configured to receive an input to authorize the change information acquired by the data acquiring unit; an authorization determination unit configured to determine whether or not the change information of the operation program under execution is authorized, when the data acquiring unit acquires the execution information; and a process execution unit configured to execute a predetermined accident-prevention process, when the authorization determination unit determines that the change information is not authorized.

2. The management device of claim 1, wherein the process execution unit is configured to generate an alarm signal as the accident-prevention process.

3. The management device of claim 1, further comprising: a storage configured to store, as change history data, a plurality of pieces of change information acquired by the data acquiring unit each time the change is repeatedly made; and a program restoration unit configured to restore the operation program after a second change which is made before a first change, based on the change history data.

4. The management device of claim 3, wherein the input receiving unit is configured to further receive an input to select the change information indicating the second change from the change history data, and wherein the program restoration unit is configured to restore the operation program after the second change, in response to the input to select the change information, which is received by the input receiving unit.

5. A network system comprising: the management device of claim 1; the robot; and a communication apparatus communicatively connected to the robot and the management device, the communication apparatus being configured to store the operation program and supply the change information and the execution information to the management device.

6. The network system of claim 5, wherein the communication apparatus includes: a control device configured to operate the robot in accordance with the operation program, and supply the execution information to the management device; and a teaching device configured to receive an input for the change and make the change to the operation program to teach an operation of the robot, the teaching device being configured to supply the change information to the management device.

7. A method of managing an operation program of a robot, the method comprising: acquiring change information indicating a change made to the operation program, and execution information indicating that the operation program is executed to operate the robot; receiving an input to authorize the acquired change information; determining whether or not the change information of the operation program under execution is authorized, when acquiring the execution information; and executing a predetermined accident-prevention process, when determining that the change information is not authorized.

Description

BRIEF DESCRIPTION OF DRAWINGS

[0009] FIG. 1 is a block diagram of a network system according to an embodiment.

[0010] FIG. 2 is a view of a robot system according to the embodiment.

[0011] FIG. 3 is a flowchart illustrating an example of a method of managing an operation program of a robot.

[0012] FIG. 4 is a block diagram of a network system according to another embodiment.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

[0013] Hereinafter, embodiments of the present disclosure will be described in detail based on the drawings. In the various embodiments described below, the same reference numerals are given to the same elements and redundant description is omitted. First, a network system 10 according to an embodiment will be described with reference to FIG. 1. The network system 10 includes a robot system 12, a preventive maintenance device 14, an external apparatus 16, and a communication network 18.

[0014] The robot system 12 is an industrial robot system that performs predetermined work on a workpiece. The preventive maintenance device 14 obtains, from the robot system 12, operation condition data OD representing the operation condition of the robot system 12 or an abnormality identification code CD indicating an abnormality of the robot system 12 and monitors abnormalities occurring in the robot system 12 based on the operation condition data OD or the abnormality identification code CD.

[0015] The external apparatus 16 is, for example, a desktop or portable PC or a computer such as a server. The communication network 18 is, for example, a LAN (such as an Intranet) or the Internet and communicatively connects the robot system 12, the preventive maintenance device 14, and the external apparatus 16 to each other. In an example, the robot system 12 can be installed in a first building provided with a work line, the preventive maintenance device 14 can be installed in a second building separate from the first building, and the external apparatus 16 can be installed in a third building separate from the first and second buildings.

[0016] FIG. 2 illustrates an example of the robot system 12. The robot system 12 includes a robot 20, a sensor 22 (FIG. 1), a control device 24, and a teaching device 26. In the example illustrated in FIG. 2, the robot 20 is a vertical articulated robot and includes a robot base 28, a swivel body 30, a lower arm 32, an upper arm 34, a wrist 36, and an end effector 38.

[0017] The robot base 28 is fixed on the floor of the work line. The swivel body 30 is provided at the robot base 28 such that it is swingable about a vertical axis. The lower arm 32 is provided at the swivel body 30 such that it is rotatable about a horizontal axis, and the upper arm 34 is rotatably provided at a distal end of the lower arm 32.

[0018] The wrist 36 is provided at a distal end of the upper arm 34 such that it is rotatable about two axes perpendicular to each other. The end effector 38 is detachably attached to the distal end of the wrist 36 (a so-called wrist flange). The end effector 38 is, for example, a robot hand, a cutting tool, or a welding torch and performs predetermined work (such as workpiece handling, cutting, or welding) on the workpiece.

[0019] Each of the components of the robot 20 (the robot base 28, the swivel body 30, the lower arm 32, the upper arm 34, and the wrist 36) is provided with a servomotor 40 (FIG. 1). The servomotors 40 drive the movable components of the robot 20 (the swivel body 30, the lower arm 32, the upper arm 34, and the wrist 36) in response to commands from the control device 24.

[0020] The sensor 22 detects operation condition data OD of the robot system 12. The operation condition data OD includes, for example, the rotational position, rotational speed, rotational acceleration, current value, and load torque of the servomotor 40, an external force applied to the robot 20, and the voltage of a battery for operating the control device 24 (or encoders provided at the servomotors 40). The sensor 22 supplies the detected operation condition data OD to the control device 24.

[0021] The control device 24 controls the operation of the robot 20. Specifically, the control device 24 is a computer including a processor (such as a CPU or a GPU) and a storage (such as a ROM or a RAM) and generates a command for each servomotor 40 of the robot 20 in accordance with a pre-created operation program OP and operates each movable component of the robot 20 in accordance with the command such that the end effector 38 moves to a plurality of teaching points TP.sub.k (where k=1, 2, 3, . . . ) defined in the operation program OP in order. In this way, the control device 24 operates the robot 20 in accordance with the operation program OP such that the robot 20 performs predetermined work on the workpiece with the end effector 38 while moving the end effector 38 to the teaching point TP.sub.k.

[0022] A command statement CM for causing the robot 20 to perform a predetermined operation is defined in the operation program OP together with operation parameters PR of the robot 20. The operation parameters PR include, for example, position data (specifically, coordinates of the robot coordinate system) of a plurality of teaching points TP.sub.k and a movement trajectory and movement speed between two teaching points TP.sub.k and TP.sub.k+1.

[0023] The control device 24 is communicatively connected to the preventive maintenance device 14 via the communication network 18. The control device 24 (specifically, the processor) supplies execution information EI to the preventive maintenance device 14 upon executing the operation program OP to operate the robot 20. The execution information EI includes, for example, information such as a program name NM, a start time t1 and an end time t2 of the executed operation program OP. The program name NM consists of, for example, an arbitrary character string and is given by an operator A1 of the robot system 12.

[0024] The control device 24 also detects an abnormality of the robot system 12 based on operation condition data OD that the sensor 22 acquires while the robot 20 is operating in accordance with the operation program OP. For example, the control device 24 (specifically, the processor) determines that an abnormality has occurred in the robot system 12 when a value of the operation condition data OD acquired from the sensor 22 (such as the rotational position, rotational speed, rotational acceleration, current value, load torque, external force, or voltage) is greater than a predetermined reference value.

[0025] Upon detecting that an abnormality has occurred in the robot system 12, the control device 24 transmits an abnormality identification code CD identifying the abnormality to the preventive maintenance device 14 via the communication network 18. The abnormality identification code CD consists of, for example, a character string (a so-called error code) and is given individually for each of a plurality of types of abnormalities that may occur in the robot system 12 (such as malfunction of the sensor 22, interference between the robot 20 and surrounding environmental objects, and a voltage drop of the battery).

[0026] The teaching device 26 teaches an operation of the robot 20. Specifically, the teaching device 26 is, for example, a portable computer such as a teach pendant or a tablet terminal device and includes a processor (such as a CPU or a GPU), a storage (a ROM or a RAM), a display part (such as an LCD or an organic EL display), and an operating part (such as a push button or a touch sensor).

[0027] The teaching device 26 is communicatively connected to the control device 24 and can jog the robot 20 via the control device 24 in response to an input to the operating part. The operator A1 operates the operating part of the teaching device 26 to jog the robot 20 to teach the robot 20 a predetermined operation, thereby creating an operation program OP.sub.0 for causing the robot 20 to perform the predetermined operation. Thus, the initial operation program OP.sub.0 is created.

[0028] The teaching device 26 gives initial version information VER.sub.0 to the created operation program OP.sub.0. The version information VER.sub.0 consists of, for example, a character string VER.000. The teaching device 26 supplies the created operation program OP.sub.0 to the control device 24 together with accompanying information such as the program name NM, the program creation time t3, and the version information VER.sub.0 and also supplies them to the preventive maintenance device 14 via the communication network 18.

[0029] On the other hand, the operator A1 can operate the teaching device 26 to repeatedly make a change CH.sub.n to the created operation program OP.sub.0. The change CH.sub.n made to the operation program OP.sub.0 may include, for example, changing the characters or lines of the command sentence CM, changing the numerical values of the operation parameters PR (such as position data and movement speed), or adding a new command sentence CM or operation parameter PR.

[0030] Each time a first change CH.sub.1, a second change CH.sub.2, . . . , or an n-th change CH.sub.n is made using the teaching device 26, the operation program OP is updated from an initial operation program OP.sub.0 to an operation program OP.sub.1 to which the first change CH.sub.1 has been made, to an operation program OP.sub.2 to which the second change CH.sub.2 has been made, . . . , and to an operation program OP.sub.n to which the n-th change CH.sub.n has been made.

[0031] More specifically, upon receiving an input IP.sub.Cn for the n-th change CH.sub.n from the operator, the teaching device 26 (the processor) makes the change CH.sub.n to an operation program OP.sub.n-1 currently stored in the storage of the teaching device 26 to update it to an operation program OP.sub.n in response to the input IP.sub.Cn. At this time, the teaching device 26 automatically assigns new version information VER.sub.n (e.g., a character string VER.003 if n=3) to the changed operation program OP.sub.n and stores it in the storage of the teaching device 26.

[0032] The teaching device 26 then supplies change information CHI.sub.n indicating the change CH.sub.n that has been made to the preventive maintenance device 14. The change information CHI.sub.n includes, for example, accompanying information such as the program name NM, the change time t4, and the version information VER.sub.n of the changed operation program OP.sub.n, and change content data CHD.sub.n indicating the content of the change CH.sub.n made.

[0033] In an example, the change content data CHD.sub.6 may include only a changed (or added) portion (i.e., a changed or added command sentence CM or operation parameter PR) in the changed operation program OP.sub.n. In another example, the change content data CHD.sub.n may include the changed operation program OP.sub.n itself (i.e., the entire command statement CM and operating parameters PR).

[0034] In this manner, the teaching device 26 makes a change CH.sub.n to an operation program OP.sub.n-1 to update it to an operation program OP.sub.n, thereby teaching an operation of the robot 20. The teaching device 26 transmits change information CHI.sub.n to the control device 24 together with a changed operation program OP.sub.n each time a change CH.sub.n is repeatedly made. The control device 24 stores the received operation program OP.sub.n in the storage and transmits the change information CHI.sub.n to the preventive maintenance device 14 via the communication network 18.

[0035] In the present embodiment, the control device 24 and the teaching device 26 are directly or indirectly connected to the robot 20 and the preventive maintenance device 14, communicate with each other, and supply the execution information EI and the change information CHI.sub.n to the preventive maintenance device 14 as described above. Thus, the control device 24 and the teaching device 26 constitute a communication apparatus 42 (FIG. 1) that supplies the execution information EI and the change information CHI.sub.n to the preventive maintenance device 14.

[0036] The preventive maintenance device 14 is a computer (such as a PC or a server) including a processor 50, a storage 52, an I/O interface 54, an input device 56, a display device 58, and the like. The processor 50 includes a CPU, GPU, or the like and is communicatively connected to the storage 52, the I/O interface 54, the input device 56, and the display device 58 via a bus 60.

[0037] The storage 52 includes a RAM, a ROM, or the like and temporarily or permanently stores various data used in arithmetic processing executed by the processor 50 and various data generated during the arithmetic processing. The I/O interface 54 has, for example, an Ethernet (trade name) port, a USB port, an optical fiber connector, or an HDMI (trade name) terminal and communicates data with other devices under commands from the processor 50 by wire or wirelessly. The I/O interface 54 is connected to the communication network 18.

[0038] The input device 56 includes a keyboard, a mouse, a touch panel, or the like and receives data input from the operator. The display device 58 includes a liquid crystal display, an organic EL display, or the like and displays various data. The input device 56 and the display device 58 may be provided separately from the housing of the preventive maintenance device 14 or may be integrated into the housing of the preventive maintenance device 14.

[0039] The processor 50 obtains operation condition data OD or an abnormality identification code CD from the communication apparatus 42 (specifically, the control device 24) through the communication network 18 and detects an abnormality of the robot system 12 based on the operation condition data OD or the abnormality identification code CD.

[0040] In an example, upon receiving an abnormality identification code CD from the control device 24, the processor 50 can detect that an abnormality identified by the abnormality identification code CD has occurred in the robot system 12. In another example, upon acquiring operation condition data OD, the processor 50 can detect an abnormality based on the operation condition data OD through the same abnormality detection method as that of the control device 24 described above.

[0041] In still another example, the processor 50 can also apply acquired operation condition data OD to a learning model LM constructed by machine learning to detect an abnormality of the robot system 12. This learning model LM indicates the correlation between operation condition data OD (e.g., an external force) and an abnormality occurring in the robot system 12 (e.g., interference between the robot 20 and surrounding environmental objects) and can be constructed by repeatedly giving a machine learning device a learning data set of operation condition data OD and determination data representing the presence or absence of an abnormality (e.g., by supervised learning).

[0042] The processor 50 sequentially inputs the operation condition data OD continuously obtained from the robot system 12 to the learning model LM. When there is an abnormality highly correlated with a change in operation condition data OD that has been input during a predetermined period, the learning model LM identifies and outputs the abnormality. In this manner, the processor 50 can detect an abnormality that has occurred in the robot system 12 using the learning model LM.

[0043] Using this learning model LM, the processor 50 can predict that a component of the robot system 12 will fail due to the occurrence of an abnormality. The processor 50 may also be configured to perform the functions of the machine learning device described above. Thus, the processor 50 detects an abnormality of the robot system 12 based on the operation condition data OD or the abnormality identification code CD.

[0044] On the other hand, upon obtaining the initial operation program OP.sub.0 created by the teaching device 26 through the communication network 18, the processor 50 generates an authorization image AIM.sub.0 for authorizing the operation program OP.sub.0 and causes the display device 58 to display the authorization image AIM.sub.0. For example, the authorization image AIM.sub.0 includes an authorization button image.

[0045] An operator A2 (e.g., a work line designer) of the preventive maintenance device 14 can operate the input device 56 and click the authorization button image in the authorization image AIM.sub.0 on the image to give the processor 50 an input IPa.sub.0 to authorize the operation program OP.sub.0. In response to the input IPa.sub.0, the processor 50 assigns an authorization flag F1 indicating that authorization has been approved to the operation program OP.sub.0 as accompanying information. Details of the authorization flag F1 will be described later.

[0046] The processor 50 manages the operation program OP. A method of managing the operation program OP will be described below with reference to FIG. 3. The process illustrated in FIG. 3 starts when the processor 50 has received an operation start command from the operator A2, a host controller, or a computer program.

[0047] In step S1, the processor 50 determines whether or not change information CHI.sub.n has been acquired. Specifically, the processor 50 acquires change information CHI.sub.n from the communication apparatus 42 through the communication network 18 when a change CH.sub.n has been made to the operation program OP.sub.n-1 as described above. The processor 50 sequentially stores a plurality of pieces of change information CHI.sub.n acquired each time a change CH.sub.n is made in the storage 52 as change history data HIS. Details of the change history data HIS will be described later.

[0048] Thus, in the present embodiment, the processor 50 functions as a data acquiring unit 62 (FIG. 1) that acquires the change information CHI.sub.n. If the change information CHI.sub.n has been acquired, the processor 50 determines YES and proceeds to step S2. If no change information CHI.sub.n has been acquired, the processor 50 determines NO and proceeds to step S5.

[0049] In step S2, the processor 50 generates an authorization image AIM.sub.n for authorizing the most recently acquired change information CHI.sub.n and causes the display device 58 to display the authorization image AIM.sub.n. For example, the authorization image AIM.sub.n includes an authorization button image, similar to the authorization image AIM.sub.0 described above. The operator A2 can operate the input device 56 and click the authorization button image in the authorization image AIM.sub.n on the image to give the processor 50 an input IPa.sub.n to authorize the change information CHI.sub.n.

[0050] In step S3, the processor 50 determines whether or not an input IPa.sub.n to authorize the change information CHI.sub.n has been received. If the input IPa.sub.n has been received through the input device 56, the processor 50 determines YES and proceeds to step S4. If no input IPa.sub.n has been received, the processor 50 determines NO and proceeds to step S5. Thus, in the present embodiment, the processor 50 functions as an input receiving unit 64 (FIG. 1) that receives the input IPa.sub.n to authorize the change information CHI.sub.n.

[0051] In step S4, the processor 50 executes a process of authorizing the most recently acquired change information CHI.sub.n. For example, the processor 50 assigns an authorization flag F1 indicating that authorization has been approved as accompanying information about the most recent change information CHI.sub.n which is stored in the storage 52 as the change history data HIS. An example of the change history data HIS stored in the storage 52 is shown in Table 1 below.

TABLE-US-00001 TABLE 1 Version Stored Authorization Program Name Information Time Data Flag PRG-XYZ001 VER.003 2021 Oct. 5 CHD.sub.3 x PRG-XYZ001 VER.002 2021 Aug. 30 CHD.sub.2 ? PRG-XYZ001 VER.001 2021 Aug. 15 CHD.sub.1 ? PRG-XYZ001 VER.000 2021 Jun. 1 OP.sub.0 ?

[0052] Table 1 schematically shows a data structure of the change history data HIS. The example shown in Table 1 shows the change history data HIS of the operation program OP.sub.n with a program name NM of PRG-XYZ001, in which version information, time, stored data, and authorization flag are stored in association with each other.

[0053] For example, a row with version information being VER.000 corresponds to the initial operation program OP.sub.0, in which the creation time t3 of the initial operation program OP.sub.0 is recorded as time and the operation program OP.sub.0 itself (i.e., the entire command statement CM and operating parameters PR) is stored as stored data.

[0054] On the other hand, a row with version information being VER.001 corresponds to change information CHI.sub.1 indicating the first change CH.sub.1, in which the change time t4 at which the change CH.sub.1 was made is recorded as time and change content data CHD.sub.1 (a changed portion or the changed operation program OP.sub.1) is stored as stored data.

[0055] O shown in the authorization flag column indicates that an authorization flag F1 indicating that authorization has been approved is assigned, whereas x in the authorization flag column indicates that no authorization flag F1 is assigned (or a flag indicating that authorization has not been approved is assigned). For example, in the example of Table 1, an authorization flag F1 (authorization flag=o) is assigned to the change information CHI.sub.1 indicating the first change CH.sub.1 corresponding to VER.001, thereby indicating that the change information CHI.sub.1 has been authorized by the operator A2.

[0056] On the other hand, an authorization flag F1 (authorization flag=x) is not assigned to change information CHI.sub.3 indicating the third change CH.sub.3 corresponding to VER.003, thus indicting that the change information CHI.sub.3 has not been authorized by the operator A2. The processor 50 can refer to the presence or absence of an authorization flag F1 (o or x) for each piece of change information CHI.sub.n (and the initial operation program OP.sub.0) stored in the change history data HIS to determine whether or not each piece of change information CHI.sub.n (and the initial operation program OP.sub.0) has been authorized.

[0057] In step S5, the processor 50 determines whether or not execution information EI has been acquired. Specifically, when the control device 24 has executed the operation program OP, the processor 50 functions as a data acquiring unit 62 to acquire execution information EI from the control device 24 through the communication network 18 as described above. If the execution information EI has been acquired, the processor 50 determines YES and proceeds to step S6. If no execution information EI has been acquired, the processor 50 determines NO and proceeds to step S8.

[0058] In step S6, the processor 50 determines whether or not the change information CHI.sub.n of the operation program OP.sub.n under execution has been authorized. Specifically, the processor 50 refers to a program name NM of the operation program OP.sub.n included in the most recently acquired execution information EI and acquires change history data HIS of the operation program OP.sub.n having the program name NM from the storage 52.

[0059] Then, the processor 50 retrieves the most recent change information CHI.sub.n from the change history data HIS. For example, the processor 50 can retrieve the most recent change information CHI.sub.n from the version information VER.sub.n or the change time t4 stored in the change history data HIS. For example, in the case of the example of Table 1, the processor 50 can retrieve the change information CHI.sub.3 indicating the third change CH.sub.3 with version information being VER.003 and time being Oct. 5, 2021 as the most recently acquired one.

[0060] Then, the processor 50 refers to the authorization flag of the most recent change information CHI.sub.3 that has been retrieved and determines whether or not the change information CHI.sub.3 has been authorized. In the example of Table 1, the authorization flag of the change information CHI.sub.3 is x and thus the processor 50 determines NO in step S6. On the other hand, the processor 50 determines YES when the authorization flag of the change information CHI.sub.3 is o. The processor 50 proceeds to step S7 upon determining NO in step S6 and proceeds to step S8 upon determining YES.

[0061] In this manner, the processor 50 identifies that an operation program OP.sub.n is under execution by the execution information EI and determines whether or not change information CHI.sub.n of the operation program OP.sub.n under execution has been authorized. Thus, in the present embodiment, the processor 50 functions as an authorization determination unit 66 (FIG. 1) that determines whether or not the change information CHI.sub.n of the operation program OP.sub.n under execution has been authorized.

[0062] In step S7, the processor 50 executes an accident-prevention process AP. The processor 50 generates an alarm signal AL as an example of the accident-prevention process AP. For example, the processor 50 generates an alarm signal AL with an image displaying text An unauthorized operation program is under execution in the robot system of the work line. Please check for the authorization as soon as possible. The processor 50 then causes the display device 58 to display the generated alarm signal AL. This allows the operator A2 to intuitively identify that an unauthorized operation program OP.sub.n is under execution in the robot system 12.

[0063] The processor 50 may supply the generated alarm signal AL to the communication apparatus 42 through the communication network 18. In this case, the control device 24 or the teaching device 26 may display the acquired alarm signal AL on a display device provided at the control device 24 or the teaching device 26. In this case, the operator A1 of the work line can also be notified that an unauthorized operation program OP.sub.n is under execution.

[0064] The processor 50 may also transmit the generated alarm signal AL, for example in the form of e-mail, to the external apparatus 16 through the communication network 18. In this case, an operator A3 of the external apparatus 16 (e.g., a manager of the work line) can also be notified that an unauthorized operation program OP.sub.n is under execution.

[0065] The processor 50 may also repeatedly notify the operator A1, A2 or A3 by repeatedly outputting the generated alarm signal AL to the display device 58, the communication apparatus 42, or the external apparatus 16. The operator A2 may arbitrarily set the timing of outputting the alarm signal AL to the display device 58, the communication apparatus 42, or the external apparatus 16 (such that it is output, for example, every hour). According to this configuration, it is possible to reliably notify the operator A1, A2 or A3 that an unauthorized operation program OP.sub.n is under execution.

[0066] The preventive maintenance device 14 may also be configured to allow the operator A2 to arbitrarily set whether or not to output the alarm signal AL to the communication apparatus 42 or the external apparatus 16. According to this configuration, the function of notifying of the alarm signal AL can be arbitrarily turned on/off according to the situation. Here, the processor 50 may generate the alarm signal AL as audio data. In this case, the processor 50 may output the alarm signal AL as a sound through a speaker (not illustrated) provided at the preventive maintenance device 14, the communication apparatus 42, or the external apparatus 16.

[0067] The processor 50 may stop the operation of the robot 20 as another example of the accident-prevention process AP. Specifically, the processor 50 transmits an emergency stop command to stop the robot 20 to the control device 24 through the communication network 18. In response to the emergency stop command, the control device 24 stops the servomotors 40 of the robot 20, thereby stopping the operation of the robot 20.

[0068] The processor 50 may cause the robot 20 to perform a retraction action as still another example of the accident-prevention process AP. Specifically, the processor 50 transmits a retraction command to retract the robot 20 to the control device 24 via the communication network 18. In response to the retraction command, the control device 24 causes the robot 20 to retract to a predetermined retraction position along a predetermined retraction path.

[0069] The processor 50 executes the accident-prevention process AP (such as generation of the alarm signal AL or an emergency stop or a retraction action of the robot 20) in step S7 upon determining that the change information CHI.sub.n has not been authorized (i.e., determining NO in step S6) as described above. Thus, in the present embodiment, the processor 50 functions as a process execution unit 68 (FIG. 1) that executes the accident-prevention process AP. After step S7, the processor 50 proceeds to step S8.

[0070] In step S8, the processor 50 determines whether or not an operation end command has been received from the operator A2, the host controller, or the computer program. The processor 50 determines YES and terminates the process illustrated in FIG. 3 when an operation end command has been received and determines NO and returns to step S1 when no operation end command has been received.

[0071] In the present embodiment, the processor 50 functions as the data acquiring unit 62, the input receiving unit 64, the authorization determination unit 66, and the process execution unit 68 and manages the operation program OP.sub.n in cooperation with the storage 52 that stores the change history data HIS of the change information CHI.sub.n as described above.

[0072] Thus, in the present embodiment, the processor 50 (the data acquiring unit 62, the input receiving unit 64, the authorization determination unit 66, and the process execution unit 68) and the storage 52 constitute a management device 70 (FIG. 1) that manages the operation program OP.sub.n. That is, in the present embodiment, the management device 70 is implemented in the preventive maintenance device 14.

[0073] In the management device 70, the data acquiring unit 62 acquires change information CHI.sub.n and execution information EI, the input receiving unit 64 receives an input IPa.sub.n to authorize the change information CHI.sub.n, the authorization determination unit 66 determines whether or not the change information CHI.sub.n of the operation program OP.sub.n under execution has been authorized, and the process execution unit 68 executes the accident-prevention process AP upon determining that the change information CHI.sub.n has not been authorized.

[0074] According to this configuration, it is possible to quickly discover that an unauthorized operation program OP.sub.n is under execution and prevent the unauthorized operation program OP.sub.n from causing an unexpected accident (e.g., an accident in which the work line stops due to malfunction of the robot 20, interference between the robot 20 and surrounding environmental objects, or the like). As a result, working efficiency can be improved.

[0075] In the management device 70, the process execution unit 68 generates an alarm signal AL as an example of the accident-prevention process AP. According to this configuration, it is possible to reliably notify the operator A2 that an unauthorized operation program OP.sub.n is under execution in the robot system 12.

[0076] The execution information EI may further include version information VER.sub.n or time t1 or t4 as information identifying the operation program OP.sub.n under execution. In this case, the processor 50 may compare the version information VER.sub.n or the time t1 or t4 included in the most recently acquired execution information EI with the change history data HIS (Table 1) stored in the storage 52 in step S6 described above and retrieve change information CHI.sub.n corresponding to the version information VER.sub.n or the time t1 or t4 from the change history data HIS. The processor 50 can refer to an authorization flag F1 of the change information CHI.sub.n thus retrieved to determine whether or not the change information CHI.sub.n has been authorized.

[0077] Next, another function of the preventive maintenance device 14 will be described with reference to FIG. 4. The processor 50 detects an abnormality of the robot system 12 based on the operation condition data OD or the abnormality identification code CD supplied during execution of the operation program OP.sub.n as described above. Such an abnormality can occur because the executed operation program OP.sub.n is inappropriate.

[0078] Thus, when an abnormality is detected, the operators A1 and A2 may desire to discard the operation program OP.sub.n to which the most recent change CH.sub.n has been made and restore an operation program OP.sub.m subjected to a change CH.sub.m (m<n), which has been made before the most recent change CH.sub.n, stored in the change history data HIS described above. Thus, in the present embodiment, the processor 50 further functions as a program restoration unit 72 to restore the past operation program OP.sub.m.

[0079] In an example, upon detecting an abnormality, the processor 50 generates a selection image SIM for selecting one of the plurality of pieces of change information CHI.sub.n stored in the change history data HIS and causes the display device 58 to display the selection image SIM. The selection image SIM includes an image of the change history data HIS as shown in Table 1 and the operator A2 can operate the input device 56 to click and select a piece of change information CHI.sub.m (specifically, version information, time, or stored data) from the change history data HIS displayed in the selection image SIM on the image.

[0080] The processor 50 functions as the input receiving unit 64 to receive an input IPs to select change information CHI.sub.m indicating a change CH.sub.m from the change history data HIS through the input device 56. For example, in the case of Table 1, operation programs OP.sub.m before the most recent change CH.sub.3 include the initial operation program OP.sub.0, the operation program OP.sub.1 to which the first change CH.sub.1 has been made, and the operation program OP.sub.2 to which the second change CH.sub.2 has been made.

[0081] In this case, if the operator A2 selects change information CHI.sub.2 (i.e., version information VER.002) indicating the second change CH.sub.2 from the change history data HIS, the processor 50 restores the operation program OP.sub.2 to which the change CH.sub.2 has been made, based on the change history data HIS.

[0082] In an example, if the change content data CHD.sub.n included in the change information CHI.sub.n has only a changed portion (i.e., a changed or added command sentence CM or operation parameter PR), the processor 50 can restore the operation program OP.sub.2 to which the change CH.sub.2 has been made, from the operation program OP.sub.0 stored as stored data of VER.000 in Table 1, the change content data CHD.sub.1 stored as stored data of VER.001 (i.e., the changed portion of the change CH.sub.1), and the change content data CHD.sub.2 stored as stored data of VER.002 (i.e., the changed portion of the change CH.sub.2).

[0083] In another example, when the change content data CHD.sub.n includes the changed operation program OP.sub.n itself (i.e., the entire command statement CM and operation parameters PR), the processor 50 can restore the operation program OP.sub.2 by reading the operation program OP.sub.2 stored as stored data of VER.002.

[0084] In this way, the processor 50 restores the operation program OP.sub.m to which a change CH.sub.m made before the most recent change CH.sub.n has been made, based on the change history data HIS. Thus, in the present embodiment, the processor 50 functions as the program restoration unit 72 that restores the operation program OP.sub.m. The processor 50 then supplies the restored operation program OP.sub.m to the communication apparatus 42 (e.g., the control device 24) via the communication network 18.

[0085] It is to be understood that when the operator A2 has selected the initial operation program OP.sub.0 of VER.000, the processor 50 can restore it by reading the operation program OP.sub.0 stored as stored data of VER.000. In the present embodiment, the processor 50 (the data acquiring unit 62, the input receiving unit 64, the authorization determination unit 66, the process execution unit 68, and the program restoration unit 72) and the storage 52 constitute a management device 80 (FIG. 1) that manages the operation program OP.sub.n as described above.

[0086] In the management device 80, the storage 52 stores a plurality of pieces of change information CHI.sub.n, acquired by the data acquiring unit 62 each time a change CH.sub.n is repeatedly made, as change history data HST (Table 1) (step S1 described above) and the program restoration unit 72 restores an operation program OP.sub.m, to which a change CH.sub.m made before the most recent change CH.sub.n has been made, based on the change history data HST.

[0087] According to this configuration, when an abnormality has occurred in the robot system 12 due to execution of the operation program OP.sub.n to which the most recent change CH.sub.n has been made, a past operation program OP.sub.m can be restored and the robot 20 can be operated in accordance with the restored operation program OP.sub.m, for example, to test whether or not the abnormality can be resolved. As a result, it is possible to increase the possibility of continuing work on the work line, which can lead to an improvement in work efficiency.

[0088] In the management device 80, the input receiving unit 64 receives an input IPs to select a piece of change information CHI.sub.2 from the change history data HST and the program restoration unit 72 restores the operation program OP.sub.2 to which the change CH.sub.2 has been made, in response to the input IPs received by the input receiving unit 64. According to this configuration, the operator A2 can arbitrarily select an operation program OP.sub.m to be restored.

[0089] The processor 50 may display only authorized change information CHI.sub.m (or an authorized initial operation program OP.sub.0) in the selection image SIM described above. Specifically, upon detecting an abnormality, the processor 50 refers to an authorization flag F1 of each of the pieces of change information CHI.sub.m indicating changes CH.sub.m made before the most recent change CH.sub.n in the change history data HIS stored in the storage 52.

[0090] Then, the processor 50 generates a selection image SIM displaying only pieces of change information CHI.sub.m (and the initial operation program OP.sub.0), which are assigned the authorization flag F1. For example, in the case of the example of Table 1, the processor 50 generates a selection image SIM displaying only the initial operation program OP.sub.0 (with version information of VER.000), the change information CHI.sub.1 (with version information of VER.001), and the change information CHI.sub.2 (with version information of VER.002), to which the authorization flag F1 are assigned.

[0091] Then, the processor 50 functions as the input receiving unit 64 to receive the input IPs to select the operation program OP.sub.0, the change information CHI.sub.1, or the change information CHI.sub.2 displayed in the selection image SIM. According to this configuration, the operator A2 can immediately identify pieces of change information CHI.sub.m (or the initial operation program OP.sub.0) authorized in the past and can select one to be restored from the pieces of authorized change information CHI.sub.m (or the initial operation program OP.sub.0).

[0092] The processor 50 may display only pieces of change information CHI.sub.m (or the initial operation program OP.sub.0) for which no abnormality has been detected in the past in the selection image SIM described above. Specifically, upon detecting an abnormality during execution of an operation program OP.sub.n, the processor 50 assigns an abnormality flag F2 indicating that an abnormality has been detected as accompanying information about the change information CHI.sub.n corresponding to the executed operation program OP.sub.n in the change history data HIS stored in the storage 52. An example of such change history data HIS is shown in Table 2 below.

TABLE-US-00002 TABLE 2 Program Version Stored Authorization Abnormality Name Information Time Data Flag Flag PRG-XYZ001 VER.003 2021 Oct. 5 CHD.sub.3 x ? PRG-XYZ001 VER.002 2021 Aug. 30 CHD.sub.2 x x PRG-XYZ001 VER.001 2021 Aug. 15 CHD.sub.1 ? x PRG-XYZ001 VER.000 2021 Jun. 1 OP.sub.0 ? ?

[0093] In the example shown in Table 2, o shown in the abnormality flag column indicates that an abnormality flag F2 indicating that an abnormality has been detected is assigned, whereas x in the abnormality flag column indicates that no abnormality flag F2 is assigned (or a flag indicating that no abnormality has been detected is assigned).

[0094] For example, in the example of Table 2, an abnormality flag F2 (i.e., abnormality flag is o) is assigned to the change information CHI.sub.3 indicating the third change CH.sub.3 corresponding to VER.003, thereby indicating that an abnormality has been detected during execution of an operation program OP.sub.3 to which the change CH.sub.3 has been made.

[0095] On the other hand, an abnormality flag F2 (i.e., abnormality flag is x) is assigned to the change information CHI.sub.1 indicating the first change CH.sub.1, thereby indicating that no abnormality has been detected during execution of the operation program OP.sub.1 subjected to the change CH.sub.1. The processor 50 can refer to the presence or absence of an abnormality flag F2 (o or x) for each piece of the change information CHI.sub.n (and the initial operation program OP.sub.0) stored in the change history data HIS to determine whether or not an abnormality has been detected for the operation program OP.sub.n corresponding to each piece of the change information CHI.sub.n.

[0096] Upon detecting an abnormality during execution of the operation program OP.sub.n, the processor 50 assigns an abnormality flag F2 as accompanying information about the change information CHI.sub.n of the operation program OP.sub.n under execution (or about the initial operation program OP.sub.0). For example, in the case where the execution information EI includes version information VER.sub.n, the processor 50 may refer to, upon detecting an abnormality during execution of the operation program OP.sub.n, the version information VER.sub.n included in execution information EI of the operation program OP.sub.n and assign an abnormality flag F2 as accompanying information about change information CHI.sub.n corresponding to the version information VER.sub.n (or about the initial operation program OP.sub.0). In this manner, the processor 50 can create change history data HIS as shown in Table 2.

[0097] Then, the processor 50 displays only pieces of change information CHI.sub.m (or the initial operation program OP.sub.0) for which no abnormality has been detected in the selection image SIM described above. Specifically, the processor 50 refers to the abnormality flag F2 of each of the pieces of change information CHI.sub.m indicating changes CH.sub.m made before the most recent change CH.sub.n in the change history data HIS stored in the storage 52.

[0098] Then, the processor 50 generates a selection image SIM displaying only pieces of change information CHI.sub.m (and the initial operation program OP.sub.0), which are assigned no abnormality flag F2. For example, in the case of the example of Table 2, the processor 50 detects an abnormality during execution of the operation program OP.sub.3 to which the most recent change CH.sub.3 has been made and assigns an abnormality flag F2 to the change information CHI.sub.3 indicating the third change CH.sub.3 corresponding to VER. 003 in the change history data HIS.

[0099] In this case, the processor 50 refers to the abnormality flag F2 of each of the initial operation program OP.sub.0 (version information VER.000), the change information CHI.sub.1 indicating the first change CH.sub.1 (version information VER.001), and the change information CHI.sub.2 indicating the second change CH.sub.2 (version information VER.002) which are prior to the most recent change CH.sub.3 in the change history data HIS.

[0100] In the example of Table 2, because no abnormality flag F2 is assigned to the change information CHI.sub.1 and CHI.sub.2, the processor 50 generates a selection image SIM displaying only the change information CHI.sub.1 and CHI.sub.2. The processor 50 then functions as the input receiving unit 64 to receive an input IPs for selecting the change information CHI.sub.1 or CHI.sub.2 displayed in the selection image SIM.

[0101] According to this configuration, the operator A2 can immediately identify pieces of change information CHI.sub.m (or an initial operation program OP.sub.0) for which an abnormality has been detected in the past and can select one to be restored from the pieces of change information CHI.sub.m (or the initial operation program OP.sub.0) for which no abnormality has been detected.

[0102] The processor 50 may combine the authorization flag F1 and the abnormality flag F2 to extract change information CHI.sub.m (or the initial operation program OP.sub.0) to be displayed in the selection image SIM from the change history data HIS. For example, the processor 50 extracts change information CHI.sub.m (or the initial operation program OP.sub.0) satisfying a condition that an authorization flag F1 be assigned and no abnormality flag F2 be assigned (i.e., authorization flag=o AND abnormality flag=x) from the change history data HIS.

[0103] For example, in the case of the example of Table 2, the processor 50 extracts the change information CHI.sub.1 (with version information of VER.001) as change information satisfying the condition. The processor 50 generates a selection image SIM displaying only the change information CHI.sub.1 extracted in this way. According to this configuration, the operator A2 can selectively restore an operation program OP.sub.m that satisfies a plurality of conditions such as the presence/absence of authorization and the presence/absence of abnormality detection.

[0104] The processor 50 may automatically restore an operation program OP.sub.m in accordance with a predetermined condition CT without receiving an input IPs to the selection image SIM from the operator A2. For example, a condition such as the latest one of the pieces of change information CHI.sub.m, which indicate changes CH.sub.m made before the most recent change CH.sub.n and to which an authorization flag F1 is assigned and no abnormality flag F2 is assigned, can be set as the condition CT.

[0105] Upon detecting an abnormality, the processor 50 extracts change information CHI.sub.m that satisfies the condition CT from the change history data HIS in accordance with the condition CT without generating the selection image SIM. Then, the processor 50 may automatically restore an operation program OP.sub.m corresponding to the extracted change information CHI.sub.m based on the change history data HIS and supply the restored operation program OP.sub.m to the communication apparatus 42 (e.g., the control device 24) through the communication network 18.

[0106] In the embodiments described above, the teaching device 26 may send an authorization request to the preventive maintenance device 14 together with the change information CHI.sub.n described above. This authorization request is for prompting the operator A2 of the preventive maintenance device 14 to authorize the change information CHI.sub.n and includes, for example, image (or sound) data displaying text A change has been made to the operation program. Please authorize this change.

[0107] Upon receiving the authorization request, the processor 50 of the preventive maintenance device 14 displays the image (or sound) included in the authorization request on the display device 58 (or outputs it through a speaker). According to this configuration, the operator A2 of the preventive maintenance device 14 can reliably identify that a change CH.sub.n has been made to the operation program OP.sub.n, which is to be checked for the authorization.

[0108] The change information CHI.sub.n described above may further include, as accompanying information, identification information (such as an ID number) of the operator A1 who has made the change CH.sub.n, the reason for change, and an identification number (such as a product number) of the teaching device 26 used for the change CH.sub.n. In this case, the processor 50 of the preventive maintenance device 14 may store such identification information and reason for change in the change history data HIS.

[0109] The above embodiments have been described with respect to the case where the teaching device 26 gives the version information VER.sub.n to the operation program OP.sub.n. However, the present disclosure is not limited to this and the processor 50 of the preventive maintenance device 14 may give the version information VER.sub.n to the operation program OP.sub.n.

[0110] Specifically, when an initial operation program OP.sub.0 is created, the teaching device 26 supplies the created operation program OP.sub.0 to the preventive maintenance device 14, via the communication network 18, together with accompanying information including a program name NM, a program creation time t3, and the like. The processor 50 of the preventive maintenance device 14 gives initial version information VER.sub.0 (e.g., VER.000) to the acquired operation program OP.sub.0 and stores it in the storage 52 as the change history data HIS described above.

[0111] Upon making a change CH.sub.n to an operation program OP.sub.n-1 and updating it to an operation program OP.sub.n, the teaching device 26 generates change information CHI.sub.n that includes accompanying information such as a program name NM and a change time t4 and change content data CHD.sub.n to the preventive maintenance device 14. Upon acquiring the change information CHI.sub.n, the processor 50 of the preventive maintenance device 14 gives new version information VER.sub.n to the operation program OP.sub.n to which the change CH.sub.n indicated by the change information CHI.sub.n has been made and stores it in the storage 52 as the change history data HIS.

[0112] Tables 1 and 2 described above are examples, and any number of rows of change information CHI.sub.n may be stored in the change history data HIS and any parameters (e.g., the reason for the change described above) may be stored in the change history data HIS in addition to (or instead of) version information, time, stored data, and authorization flag.

[0113] The above embodiments have also been described with respect to the case where the processor 50 refers to the version information VER.sub.n or the change time t4 accompanying the change information CHI.sub.n to retrieve the most recently acquired change information CHI.sub.n from the change history data HIS for (step S6). However, the present disclosure is not limited to this, and instead of (or in addition to) the version information VER.sub.n or the change time t4, any information capable of identifying the chronological order in which the change CH.sub.n has been made may accompany the change information CHI.sub.n. For example, the processor 50 may assign a number to change information CHI.sub.n in the order in which it has been acquired and retrieve the most recent change information CHI.sub.n using the number.

[0114] The above embodiments have also been described with respect to the case where the processor 50 assigns an authorization flag F1 to the accompanying information about change information CHI.sub.n as a process of authorizing the change information CHI.sub.n in step S4. However, the present disclosure is not limited to this and the processor 50 may perform any data processing capable of identifying that change information CHI.sub.n has been authorized as a process of authorizing the change information CHI.sub.n.

[0115] For example, the processor 50 may add characters or symbols indicating that authorization has been approved to the version information VER.sub.n of the change information CHI.sub.n (e.g., may change VER.002 to VER.002.AP) such that it can be identified that the change information CHI.sub.n has been authorized.

[0116] In this case, the processor 50 can refer to data processing executed in the authorization process of step S4 to determine in step S6 whether or not the change information CHI.sub.n has been authorized. The change information CHI.sub.n or the execution information EI is not limited to the information exemplified in the above embodiments and may include any other information.

[0117] The above embodiments have also been described with respect to the case where the management devices 70 and 80 are implemented in the preventive maintenance device 14. However, the present disclosure is not limited to this and the management device 70 or 80 may be implemented in the communication apparatus 42. For example, when the management device 70 or 80 is implemented in the control device 24, the processor and storage of the control device 24 constitute the management device 70 or 80. The processor of the control device 24 manages the operation program OP by executing the process illustrated in FIG. 3. In this case, upon executing the operation program OP, the processor of the control device 24 generates the execution information EI and determines YES in step S5.

[0118] On the other hand, when the management device 70 or 80 is implemented in the teaching device 26, the processor and storage of the teaching device 26 constitute the management device 70 or 80. The processor of the teaching device 26 manages the operation program OP by executing the process illustrated in FIG. 3. In this case, upon making the change CH.sub.n to the operation program OP.sub.n-1 in response to the input IP.sub.Cn from the operator A1, the processor of the teaching device 26 generates the change information CHI.sub.n and determines YES in step S1. The present disclosure has been described above with reference to the embodiments, but the above embodiments do not limit the invention according to the claims.

REFERENCE SIGNS LIST

[0119] 10 Network system [0120] 12 Robot system [0121] 14 Preventive maintenance device [0122] 16 External apparatus [0123] 18 Communication network [0124] 20 Robot [0125] 24 Control device [0126] 26 Teaching device [0127] 50 Processor [0128] 62 Data acquiring unit [0129] 64 Input receiving unit [0130] 66 Authorization determination unit [0131] 68 Process execution unit [0132] 70, 80 Management device [0133] 72 Program restoration unit