Control system and control method

The control system enhances production accuracy by integrating real and virtual spaces to identify and adapt to production deviations, improving task management and resource allocation in dynamic environments.

JP7624369B2Active Publication Date: 2025-01-30YASKAWA DENKI KK
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
JP2021155480
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-06-08
Filing Date
2021-09-24
Publication Date
2025-01-30
Estimated Expiration
2040-08-21

AI Technical Summary

Technical Problem

Existing production systems face challenges in accurately identifying and adapting to deviations in production pace and quality due to complex conditions, making it difficult to flexibly adjust to changes in production plans and environments.

Method used

A control system that integrates real and virtual spaces to collect and compare execution status information, allowing for the identification of divergent tasks and enabling autonomous adaptation of local devices to changes in production plans and environments through synchronized communication and task management.

Benefits of technology

Improves the accuracy of production planning by facilitating the identification of production status deviations and enabling flexible adaptation to changes, ensuring efficient task execution and resource allocation.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007624369000001
    Figure 0007624369000001
  • Figure 0007624369000002
    Figure 0007624369000002
  • Figure 0007624369000003
    Figure 0007624369000003
Patent Text Reader

Abstract

To provide a device effective for improvement in accuracy of a production plan.SOLUTION: A control system 3 comprises: a local controller 100 that causes robots 2B, 2C, 10 to perform a plurality of tasks included in a process with respect to a workpiece 9 in a real space; a virtual local controller 400 that causes a virtual robot to perform the plurality of tasks in a virtual space; a real information collection unit 312 that collects real performance status information representing a performance status of each of the plurality of tasks performed by the local controller 100; a virtual information collection unit 314 that collects virtual performance status information representing a performance status of each of the plurality of tasks performed by the virtual local controller 400; and a task comparison unit 316 that extracts from the plurality of tasks at least one divergent task in which the real performance status information and the virtual performance status information diverge from each other.SELECTED DRAWING: Figure 15
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to a control system and a control method. [Background technology]

[0002] Patent Document 1 discloses a machining system including a machining device that machines a workpiece and a robot that transports the workpiece. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] JP 2019-209454 A Summary of the Invention [Problem to be solved by the invention]

[0004] The present disclosure provides an apparatus that is effective in improving the accuracy of production planning. [Means for solving the problem]

[0005] A control system according to one aspect of the present disclosure includes a robot controller that causes a robot to execute multiple tasks included in a process for a workpiece in a real space, a virtual robot controller that causes a virtual robot to execute multiple tasks in a virtual space, a real information collection unit that collects real execution status information representing the execution status of each of the multiple tasks by the robot controller, a virtual information collection unit that collects virtual execution status information representing the execution status of each of the multiple tasks by the virtual robot controller, and a task comparison unit that extracts one or more divergent tasks from the multiple tasks where the real execution status information and virtual execution status information diverge.

[0006] A control system according to another aspect of the present disclosure includes a real controller that causes industrial machinery to execute a plurality of tasks included in a process for a workpiece in a real space, a virtual controller that causes the industrial machinery to execute a plurality of tasks in a virtual space, a real information collection unit that collects real execution status information representing the execution status of each of the plurality of tasks by the real controller, a virtual information collection unit that collects virtual execution status information representing the execution status of each of the plurality of tasks by the virtual controller, and a task comparison unit that extracts one or more divergent tasks from the plurality of tasks where the real execution status information and virtual execution status information diverge.

[0007] A control method according to yet another aspect of the present disclosure includes having a robot controller execute a plurality of tasks included in a process for a workpiece in a real space, having a virtual robot controller execute a plurality of tasks in a virtual space, collecting real execution status information representing the execution status of each of the plurality of tasks by the robot controller, collecting virtual execution status information representing the execution status of each of the plurality of tasks by the virtual robot controller, and extracting one or more divergent tasks from the plurality of tasks, where the real execution status information diverges from the virtual execution status information. Effect of the Invention

[0008] According to the present disclosure, it is possible to provide an apparatus that is effective in improving the accuracy of production planning. [Brief description of the drawings]

[0009] [Figure 1] FIG. 1 is a schematic diagram illustrating a configuration of a production system. [Diagram 2] FIG. 2 is a schematic diagram illustrating a configuration of a robot. [Diagram 3] FIG. 2 is a block diagram showing the functional configuration of a higher-level controller and a local controller. [Figure 4]11 is a table illustrating an example of a result of allocation of processes to work. [Diagram 5] 11 is a table illustrating example device information. [Figure 6] 11 is a table illustrating example work information. [Figure 7] 11 is a table illustrating execution conditions. [Figure 8] 1 is a table illustrating the contents of a command buffer. [Figure 9] FIG. 13 is a schematic diagram illustrating selection of a next task. [Figure 10] FIG. 13 is a schematic diagram illustrating selection of a next task. [Figure 11] FIG. 13 is a schematic diagram illustrating selection of a next task. [Figure 12] FIG. 13 is a schematic diagram showing a modified example of the selection of the next task. [Figure 13] FIG. 13 is a schematic diagram showing another modified example of the selection of the next task. [Figure 14] FIG. 2 is a block diagram showing a functional configuration of a data management device. [Figure 15] FIG. 2 is a block diagram showing a functional configuration of a data management device. [Figure 16] 11 is a table illustrating an example of a comparative display of execution status. [Figure 17] 1 is a timing chart illustrating a comparative display of control signals. [Figure 18] 11 is a chart showing an example of a display of tasks being executed. [Figure 19] FIG. 13 is a block diagram showing a modified example of the data management device. [Figure 20] FIG. 13 is a block diagram showing a modified example of the data management device. [Figure 21] FIG. 13 is a block diagram showing a modified example of the data management device. [Figure 22] FIG. 2 is a diagram illustrating an example of a hardware configuration of the control system. [Figure 23] 13 is a flowchart illustrating a progress management procedure by a higher-level controller. [Figure 24]11 is a flowchart illustrating a control procedure by a local controller. [Diagram 25] 13 is a flowchart showing a modified example of the control procedure. [Figure 26] 13 is a flowchart showing another modified example of the control procedure. [Figure 27] 11 is a flowchart illustrating a real information collection procedure. [Figure 28] 1 is a flow chart illustrating a virtual information gathering procedure. [Figure 29] 11 is a flowchart illustrating a procedure for extracting a deviation task. [Diagram 30] 11 is a flowchart illustrating a procedure for comparatively displaying execution statuses. [Diagram 31] 11 is a flowchart illustrating a procedure for extracting a control signal. [Diagram 32] 11 is a flowchart illustrating a procedure for comparatively displaying control signals. [Diagram 33] 1 is a flowchart illustrating a program generation procedure. [Diagram 34] 11 is a flowchart illustrating a procedure for generating an execution condition; [Diagram 35] 13 is a flowchart illustrating a procedure for generating a priority level. [Diagram 36] 11 is a flowchart illustrating an adjustment procedure. [Figure 37] 11 is a flowchart illustrating an example of a procedure for adjusting model parameters. [Figure 38] 11 is a flowchart illustrating an example of a procedure for adjusting a control parameter. [Figure 39] 13 is a flowchart showing a modified example of the procedure for adjusting the control parameters. [Diagram 40] 11 is a flowchart illustrating a reproduction display procedure. [Diagram 41] 11 is a flowchart illustrating an example of an environment information update procedure. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Hereinafter, the embodiments will be described in detail with reference to the drawings. In the description, the same elements or elements having the same functions are denoted by the same reference numerals, and duplicated description will be omitted.

[0011] [Production System] The production system 1 shown in Fig. 1 is a system that produces workpieces through the cooperative operation of multiple local devices. Hereinafter, all objects that are the targets of work performed by each local device in the work production process will be referred to as "workpieces." For example, "workpieces" include the final product in the production system 1, parts of the final product, and units combining multiple parts.

[0012] The cooperative operation means that a plurality of local devices operate to share a plurality of steps for obtaining at least one of the final products. The plurality of local devices may operate to share a plurality of steps for obtaining one final product on a step-by-step basis, or may operate to share a plurality of steps for obtaining a plurality of final products on a final product-by-final product basis.

[0013] The production system 1 includes a plurality of local devices 2 and a control system 3. The local devices 2 are devices that directly execute operations on the workpieces 9 at the production site of the workpieces 9. Direct work is work that imparts some kind of energy, such as thermal energy, kinetic energy, or potential energy, to the workpiece 9.

[0014] Each of the multiple local devices 2 is, for example, an industrial machine. The multiple local devices 2 include at least a robot (at least one local device 2 is a robot). The multiple local devices 2 also include an industrial machine that cooperates with a robot. Specific examples of industrial machines that cooperate with a robot include other robots and NC machine tools. The multiple local devices 2 shown in FIG. 1 include, but are not limited to, a conveying device 2A, robots 2B and 2C, and a mobile robot 2D. The number and type of the local devices 2 can be changed as appropriate as long as at least one robot is included.

[0015] The transport device 2A transports the workpiece 9 using, for example, an electric motor or the like as a power source. Specific examples of the transport device 2A include a belt conveyor and a roller conveyor. The robots 2B, 2C, and the mobile robot 2D perform work on the workpiece 9 transported by the transport device 2A. Specific examples of the work on the workpiece 9 include assembling another workpiece 9 (for example, a subpart) to a workpiece 9 (for example, a base part) transported by the transport device 2A, fastening (for example, bolt fastening) and joining (for example, welding) parts of the workpiece 9 transported by the transport device 2A, carrying the workpiece 9 into an NC machine tool installed around the transport device 2A, carrying the workpiece 9 out of the NC machine tool, etc.

[0016] For example, the robots 2B and 2C are six-axis vertical articulated robots, and as shown in FIG. 2, they have a base 11, a swivel 12, a first arm 13, a second arm 14, a third arm 17, a tip 18, and actuators 41, 42, 43, 44, 45, and 46. The base 11 is installed around the transport device 2A. The swivel 12 is provided on the base 11 so as to swivel around a vertical axis 21. The first arm 13 is connected to the swivel 12 so as to swing around an axis 22 that intersects (for example, perpendicular to) the axis 21. The intersection also includes a case where the two arms are in a twisted relationship, such as a so-called three-dimensional intersection. The second arm 14 is connected to the tip of the first arm 13 so as to swing around an axis 23 that is substantially parallel to the axis 22. The second arm 14 includes an arm base 15 and an arm end 16. The arm base 15 is connected to the tip of the first arm 13 and extends along an axis 24 that intersects (e.g., perpendicular to) the axis 23. The arm end 16 is connected to the tip of the arm base 15 so as to rotate about the axis 24. The third arm 17 is connected to the tip of the arm end 16 so as to swing about an axis 25 that intersects (e.g., perpendicular to) the axis 24. The tip 18 is connected to the tip of the third arm 17 so as to rotate about an axis 26 that intersects (e.g., perpendicular to) the axis 25. A work tool such as a hand, a suction nozzle, or a welding torch is attached to the tip 18.

[0017] Thus, the robot 10 has a joint 31 connecting the base 11 and the swivel 12, a joint 32 connecting the swivel 12 and the first arm 13, a joint 33 connecting the first arm 13 and the second arm 14, a joint 34 connecting the arm base 15 and the arm end 16 in the second arm 14, a joint 35 connecting the arm end 16 and the third arm 17, and a joint 36 connecting the third arm 17 and the tip 18.

[0018] The actuators 41, 42, 43, 44, 45, and 46 include, for example, electric motors and reducers, and drive the joints 31, 32, 33, 34, 35, and 36, respectively. For example, the actuator 41 rotates the rotating part 12 about the axis 21, swings the first arm 13 about the axis 22, swings the second arm 14 about the axis 23, rotates the arm end 16 about the axis 24, swings the third arm 17 about the axis 25, and rotates the tip part 18 about the axis 26.

[0019] The specific configuration of the robots 2B and 2C can be changed as appropriate. For example, the robots 2B and 2C may be a seven-axis redundant robot in which one more joint is added to the six-axis vertical articulated robot, or may be a so-called SCARA type articulated robot.

[0020] Returning to FIG. 1, the mobile robot 2D is a robot capable of autonomous travel. The mobile robot 2D has a robot 10 configured similarly to the robots 2B and 2C, and an automated guided vehicle 50. The automated guided vehicle 50 travels autonomously to transport the robot 10. A specific example of the automated guided vehicle 50 is an electric so-called AGV (Automated Guided Vehcle).

[0021] The production system 1 may further include an external sensor 5. The external sensor 5 detects the state of the work environment of the multiple local devices 2 (hereinafter referred to as the "environmental state"). A specific example of the external sensor 5 is a camera that captures the work environment of the multiple local devices 2. The external sensor 5 may be a sensor that detects the presence or absence of a workpiece 9 at a predetermined position by laser light or the like, or may be a sensor that detects the size of the workpiece 9 or the like. The production system 1 may be provided with multiple external sensors 5.

[0022] The control system 3 controls a plurality of local devices 2. An example of the configuration of the control system 3 will be described in detail below.

[0023] [Control System] In the production system 1, a discrepancy may occur between the target production pace of the work 9 and the actual production pace of the work 9. Also, a discrepancy may occur between the target quality of the work 9 and the actual quality of the work 9. Hereinafter, such discrepancies are referred to as "discrepancies in production status." When the process for the work 9 includes multiple tasks, it is difficult to identify the cause of the discrepancy in production status based on the discrepancy in the production pace or the discrepancy in the quality of the work 9.

[0024] The control system 3 includes a local controller (real controller) that causes the local device 2 to execute multiple tasks included in the process for the work in the real space, a virtual local controller (virtual controller) that causes the virtual local device to execute multiple tasks in the virtual space, a real information collection unit that collects real execution status information that represents the execution status of each of the multiple tasks by the local controller, a virtual information collection unit that collects virtual execution status information that represents the execution status of each of the multiple tasks by the virtual local controller, and a task comparison unit that extracts one or more divergent tasks, among the multiple tasks, whose real execution status information and virtual execution status information diverge. This makes it possible to check the divergence of the execution status for each of the multiple tasks, making it easy to identify the cause of the divergence in the production status.

[0025] In the production system 1, flexible adaptation to changes in the production plan, including changes in the production target, may be required. In addition, flexible adaptation to changes in the production environment, such as changes in the type, number, and arrangement of the local devices 2, may also be required. In response to this, it is effective to realize autonomous adaptation of the local devices 2 to changes in the production plan and the production environment. However, complex condition settings are required to allow the local controller to specify the tasks to be executed and the appropriate execution timing. In a system in which autonomy is given by complex condition settings, further adaptation to new production plans or production environments that were not initially envisaged becomes difficult.

[0026] In response to this, the control system 3 may include a command output unit that outputs an execution command for the next task based on a process including a plurality of tasks for a workpiece and progress information of the process, an environmental information storage unit that stores environmental information, a local controller that causes the local device 2 to execute the next task based on the execution command output from the command output unit and the environmental information in the environmental information storage unit, and an environmental update unit that updates the environmental information in the environmental information storage unit according to the operation of the local device 2. By providing the local controller with an execution command for the next task in addition to the environmental information, it becomes unnecessary to specify the next task to be executed in the local controller based on the environmental information, and therefore the condition setting for giving autonomy to the local device 2 is simplified. This makes it possible to easily realize the autonomous execution of each task by the local device 2. Therefore, by a simple process of outputting an execution command for the next task based on the progress of the plurality of tasks and updating the environmental information according to the operation of the local device 2, it is possible to easily execute the plurality of tasks in an appropriate order. Therefore, it is possible to easily rearrange the plurality of tasks to be executed by each local device 2 according to a change in the production plan or a change in the production environment.

[0027] 1, the control system 3 includes a plurality of local controllers 100, a higher level controller 200 (cell controller), and a data management device 300. The plurality of local controllers 100 control a plurality of local devices 2, respectively.

[0028] Each of the local controllers 100 causes a local device 2 to be controlled (hereinafter, referred to as a "local device 2 under its jurisdiction") to execute a plurality of tasks included in a process for a work 9 in the real space. The real space is a space in which the local device 2 under its jurisdiction actually exists.

[0029] Each of the multiple local controllers 100 may adjust the execution timing for each of the multiple tasks based on the environmental information in the environmental information storage unit. Also, the local controller 100 may cause the local device 2 under its jurisdiction to execute the next task corresponding to the execution command from the command output unit. For example, each of the multiple local controllers 100 causes the local device 2 under its jurisdiction to execute the next task based on the execution command and the environmental information. For example, the local controller 100 causes the local device 2 to execute the next task corresponding to the execution command from the command output unit while adjusting the execution timing based on the environmental information in the environmental information storage unit.

[0030] In the figure, the control system 3 has four local controllers 100A, 100B, 100C, and 100D. The local controller 100A controls the transport device 2A, the local controller 100B is a robot controller that controls the robot 2B, the local controller 100C is a robot controller that controls the robot 2C, and the local controller 100D is a robot controller that controls the mobile robot 2D. The number of local controllers 100 and the configuration of each local controller 100 can be changed as appropriate depending on the number and type of the local devices 2.

[0031] The host controller 200 includes the command output unit, the environment information storage unit, and the environment update unit, and performs synchronous communication with the multiple local controllers 100. Synchronous communication means performing communication with the multiple local controllers 100 for each period in synchronization with a synchronization frame of a fixed period (the communication period). The host controller 200 outputs an execution command for the next task to each of the multiple local controllers 100 based on the process for the work 9 and progress information of the process, and updates the environment information according to the operation of the multiple local devices 2. The host controller 200 also updates the progress information of the process for the work 9 according to the execution status of the task by the multiple local devices 2.

[0032] The data management device 300 includes the virtual local controller, the real information collection unit, the virtual information collection unit, and the task comparison unit, and performs synchronous or asynchronous communication with the host controller 200. The data management device 300 collects the real execution status information from the local controllers 100 via the host controller 200. The data management device 300 includes a plurality of virtual local controllers corresponding to the local controllers 100, respectively, and collects the virtual execution status information from the virtual local controllers. The configurations of the local controller 100, the host controller 200, and the data management device 300 will be specifically illustrated below.

[0033] As shown in FIG. 3, the upper controller 200 has, as functional configurations (hereinafter referred to as "functional blocks"), a process database 211, an order acquisition unit 212, a process allocation unit 213, a process storage unit 214, a command output unit 215, a progress update unit 216, an environmental information storage unit 221, and an environmental update unit 222.

[0034] The process database 211 stores a plurality of processes for each of a plurality of types of workpieces 9 targeted by the production system 1. Each process includes identification information of each of a plurality of tasks for the workpiece 9, an execution order of the plurality of tasks, and identification information of the local devices 2 that execute each of the plurality of tasks.

[0035] The multiple tasks may include tasks executed by different local devices 2. For example, the multiple tasks may include multiple tasks executed by the robots 2B, 2C or the mobile robot 2D, and one or more tasks executed by other local devices 2. A task is a unit of work executed by one local device 2.

[0036] The order acquisition unit 212 acquires a production order for the workpiece 9 from the production management controller 4. The production order includes the type of workpiece 9 to be produced and the production quantity for each type. The production management controller 4 is a controller that allocates the production order for the workpiece 9 according to a production plan to multiple factory cells in, for example, a manufacturing execution system (MES) of a factory, and performs synchronous or asynchronous communication with the upper controller 200.

[0037] The process allocation unit 213 allocates a process to a work 9 specified by a production order. For example, the process allocation unit 213 allocates a process to a work 9 specified by a production order based on the process database 211. When a production order specifies multiple work pieces 9, the process allocation unit 213 allocates a process to each of the multiple work pieces 9 based on the process database 211. The multiple work pieces 9 may include work pieces 9 of different types.

[0038] The process storage unit 214 stores the process allocation results by the process allocation unit 213 and progress information for each process (progress information in real space). Fig. 4 is a table showing an example of the process allocation results for multiple works 9. In this table, the order of execution of multiple tasks in each process is shown by the order from left to right.

[0039] In Figure 4, work A is assigned a process including three-step tasks a1, a2, and a3. Work B is assigned a process including five-step tasks b1, b2, b3, b4, and b5. Work C is assigned a process including two-step tasks c1 and c2. Work D is assigned a process including three-step tasks d1, d2, and d3. Work E is assigned a process including four-step tasks e1, e2, e3, and e4.

[0040] The progress information for each process is, for example, information indicating whether each task of the process is not started, is running, or is completed. The progress information may be a flag indicating not started, is running, or is completed, or may be a start time and a completion time. When the progress information is a start time and a completion time, if neither the start time nor the completion time is stamped, it is not started, if the start time is stamped but the completion time is not, it is running, and if the completion time is stamped, it is completed.

[0041] Returning to Fig. 3, the command output unit 215 outputs a command to execute the next task based on the process stored in the process storage unit 214 and progress information of the process. A next task among a plurality of tasks is a task that has not yet been started, and has no previous task or has been completed. The command output unit 215 outputs a command to execute the next task to one of the plurality of local controllers 100 based on the process database 211. For example, the command output unit 215 outputs a command to execute the next task to the local controller 100 of the local device 2 associated with the next task in the process database 211.

[0042] When multiple processes are assigned to multiple works 9 in the process storage unit 214, the command output unit 215 may output multiple execution commands for the next tasks for each of the multiple processes based on multiple pieces of progress information for each of the multiple processes. The command output unit 215 may output execution commands for the multiple next tasks to the same local controller 100.

[0043] For example, in the process storage unit 214, when a first process is assigned to a first work 9 and a second process is assigned to a second work 9, the command output unit 215 may output an execution command for the next task of the first process and an execution command for the next task of the second process to the same local controller 100. In this case, the command output unit 215 may output an execution command for the next task of the second process prior to the execution of the next task after outputting the execution command for the next task of the first process. In addition, the command output unit 215 may output an execution command for the next task of the first process prior to the execution of the next task after outputting the execution command for the next task of the second process. Furthermore, the command output unit 215 may simultaneously output an execution command for the next task of the first process and an execution command for the next task of the second process. Here, the simultaneous output means that the period in which the execution command for the next task of the first process is output and the period in which the execution command for the next task of the second process is output overlap at least partially.

[0044] The command output unit 215 may output an execution command for the next task in response to a request from the local controller 100 in the above-mentioned synchronous communication, or may output an execution command regardless of the presence or absence of a request from the local controller 100.

[0045] The progress update unit 216 updates the progress information in the process storage unit 214 in accordance with the execution status of the next task by the multiple local devices 2. For example, the progress update unit 216 updates the progress information in the process storage unit 214 based on status information (to be described later) output by the local controller 100.

[0046] The environment information storage unit 221 stores the environment information. The environment information includes, for example, information about the local device 2 (hereinafter referred to as "device information") and information about the workpiece 9 (hereinafter referred to as "workpiece information"). A specific example of the device information is the position and orientation information of the local device 2. A specific example of the position and orientation information of the local device 2 is the orientation information of the robots 2B and 2C and the position and orientation information of the mobile robot 2D. The orientation information of the robots 2B and 2C may be the operation angle information of the joints 31, 32, 33, 34, 35, and 36, or may be the position and orientation information of the tip 18. The position and orientation information of the mobile robot 2D includes, for example, the position and orientation information of the automatic guided vehicle 50 and the orientation information of the robot 10. The orientation information of the robot 10 may be the operation angle information of the joints 31, 32, 33, 34, 35, and 36, or may be the position and orientation information of the tip 18 (the position and orientation based on the automatic guided vehicle 50).

[0047] The device information includes information on a control signal (hereinafter referred to as a "real control signal") generated between the local controller 100 and the local device 2 under its jurisdiction. The real control signal may be an internal signal generated by the local controller 100 for controlling the local device 2 under its jurisdiction, an output signal output from the local controller 100 to the local device 2 under its jurisdiction, or a feedback signal output from the local device 2 under its jurisdiction to the local controller 100. A specific example of the internal signal is a command value for the position and orientation of the local device 2 under its jurisdiction. A specific example of the output signal is an output current value to an actuator of the local device 2 under its jurisdiction. A specific example of the feedback signal is a detection value of the position, orientation, speed, etc. of the local device 2.

[0048] 5 is a table illustrating an example of device information, in which identification information of the local device 2 is associated with at least one status parameter indicating information about the local device 2.

[0049] A specific example of the work information is the position information of each work 9. Fig. 6 is a table illustrating the work information. In Fig. 6, the identification information of the work 9 (e.g., type and serial number) and the position information of the work 9 are associated with each other.

[0050] The environment updating unit 222 updates the environment information in the environment information storage unit 221 in response to the operations of the multiple local devices 2. For example, the environment updating unit 222 acquires status information of the local devices 2 from each of the multiple local controllers 100, and updates the device information based on the status information. The environment updating unit 222 may further update the work information based on the status information of the local devices 2. For example, the environment updating unit 222 may update the position information of each workpiece 9 based on the status information of the transport device 2A acquired from the local controller 100A. The environment updating unit 222 may further update the environment information based on the detection result of the external sensor 5.

[0051] As shown in FIG. 3, the local controller 100 has, as functional blocks, a task program storage unit 111, a parameter holding unit 112, a command buffer 113, an environmental information acquisition unit 114, a selection unit 115, a control unit 116, and a status output unit 117.

[0052] The task program storage unit 111 (condition storage unit) stores one or more execution conditions that are predetermined for one or more tasks among the multiple tasks. For example, the task program storage unit 111 stores multiple task programs 130 that respectively define operations in the multiple tasks. The multiple tasks here may include tasks in which the workpiece 9 to be worked on is different from one another. Hereinafter, the workpiece 9 to be worked on is referred to as the "target workpiece 9."

[0053] The task program 130 includes a condition header 131 and an operation program 132. The operation program 132 represents the operation of the responsible local device 2. For example, the operation program 132 includes a plurality of movement commands arranged in time series to cause the responsible local device 2 to execute a set of operations. When the responsible local device 2 is the robot 2B, 2C or the mobile robot 2D, the movement command in the operation program 132 includes a target position and a target posture of the tip portion 18.

[0054] The condition header 131 indicates the execution conditions of the operation program 132. The execution conditions are conditions for determining the execution timing of the operation program 132. Fig. 7 is a table showing an example of the condition header 131. The execution conditions include an execution possibility condition for determining whether the operation program 132 (corresponding task) can be executed, and a priority of the operation program 132. The priority indicates the order of priority among the multiple task programs 130 stored in the task program storage unit 111. When the priority is a numerical value representing the priority itself, the smaller the value, the higher the priority.

[0055] As shown in FIG. 7, specific examples of execution conditions include the following: Example 1) There are no obstacles to the operation of local device 2 within the operating range of local device 2 under its jurisdiction. Example 2) The target workpiece 9 is in the specified position. Example 3) There is no other work 9 at the destination of the target work 9. Example 4) The destination for the target work 9 is open.

[0056] Specific examples of obstacles include other local devices 2, a workpiece 9 held by the other local devices 2, or a person. A specific example of a destination of the target workpiece 9 is an NC machine tool, which is an example of the other local devices 2. A specific example of the destination being open is the door of the NC machine tool being open.

[0057] As described above, a process for one target workpiece 9 may include a task performed by another local device 2 of the responsible local device 2. A specific example of a task performed by another local device 2 is a machine task executed by an industrial machine (e.g., an NC machine tool). When the responsible local device 2 is a robot 2B, 2C, or a mobile robot 2D, the multiple tasks executed by the responsible local device 2 may include a task executed before the machine task and a task executed after the machine task. In addition, the multiple tasks executed by the responsible local device 2 may include a task for cooperating with another local device 2 (a first industrial machine) and a task for cooperating with yet another local device 2 (a second industrial machine).

[0058] When the responsible local device 2 is a robot 2B, 2C, or a mobile robot 2D, the multiple tasks executed by the responsible local device 2 may include one or more interpolation tasks in addition to the multiple tasks for the target workpiece 9. Hereinafter, the multiple tasks for the workpiece 9 are referred to as "working tasks", and the interpolation task is referred to as an "air cut task".

[0059] An air cut task represents an operation of the local device 2 between two working tasks among a plurality of working tasks. For convenience of explanation, the two working tasks are hereinafter referred to as a "first working task" and a "second working task." A specific example of an air cut task is shown below. Example 1) The tip portion 18 is moved in a predetermined trajectory from the position and posture at the completion of a first working task to the position and posture at the start of a second working task. Example 2) The tip portion 18 is moved in a predetermined trajectory from the position and posture at the start of a first working task to the position and posture at the start of a second working task. Example 3) The tip portion 18 is moved in a predetermined trajectory from the position and posture at the completion of the second working task to the position and posture at the start of the first working task. Example 4) The tip portion 18 is moved in a predetermined trajectory from the position and posture at the start of the second working task to the position and posture at the start of the first working task.

[0060] These air cut tasks may be provided between two or more pairs of working tasks. In the process database 211 and the process storage unit 214, a process associated with a workpiece 9 may include a plurality of working tasks, and may not include an air cut task.

[0061] The parameter storage unit 112 stores one or more control parameters for controlling the jurisdiction local device 2. Specific examples of the one or more control parameters include a position control gain, a speed control gain, and a current control gain.

[0062] The command buffer 113 stores the execution command for the next task acquired from the upper controller 200. As described above, the command output unit 215 may output execution commands for a plurality of next tasks to the same local controller 100. For this reason, the command buffer 113 may be configured to store a plurality of execution commands.

[0063] Figure 8 is a table illustrating the contents of the command buffer, showing the state in which execution commands for multiple next tasks are stored, including an execution command for task a1 for work A, an execution command for task b2 for work B, and an execution command for task e3 for work E.

[0064] 3, the environmental information acquiring unit 114 acquires the environmental information stored in the environmental information storage unit 221. The environmental information acquiring unit 114 may request the upper controller 200 to output the environmental information and acquire the environmental information output in response to the request, or may acquire the environmental information output from the upper controller 200 in, for example, the above-mentioned synchronous communication regardless of the presence or absence of a request.

[0065] The selection unit 115 selects one of the multiple next tasks in the command buffer 113 based on the execution conditions (condition header 131) of each of the multiple next tasks in the task program storage unit 111 and the environmental information in the environmental information storage unit 221. For example, the selection unit 115 checks whether each of the multiple next tasks is executable. For example, the selection unit 115 checks whether the environmental information satisfies the execution condition of each of the multiple next tasks. Furthermore, the selection unit 115 selects one of the one or more executable next tasks based on the priority. If there is only one executable next task, the selection unit 115 selects that next task. If two or more next tasks are executable, the selection unit 115 selects the next task with the highest priority.

[0066] There are cases where an air cut task needs to be executed prior to execution of the next task. For example, when the current position and posture of the tip portion 18 are different from the start position and posture of the next task, an air cut task from the current position and posture to the start position and posture is required. In this case, the selection unit 115 may include an air cut task at the beginning of the next task. Hereinafter, a next task including an air cut task at the beginning is referred to as a "next task with air cut". When checking whether or not the environment information satisfies the execution possibility condition of the next task with an air cut, the selection unit 115 may also check whether or not the environment information satisfies the execution possibility condition of the air cut task.

[0067] The control unit 116 causes the local device 2 in charge of the task to execute the next task based on the execution conditions of the next task in the task program storage unit 111 and the environmental information in the environmental information storage unit 221. For example, the control unit 116 causes the local device 2 in charge of the task to execute the next task selected by the selection unit 115. When the selection unit 115 selects a next task with an air cut, the control unit 116 executes the air cut task included at the beginning of the next task, and then executes the next task.

[0068] The status output unit 117 outputs the status information of the local device 2 under its jurisdiction to the upper controller 200. The status information includes at least position and orientation information of the local device 2 under its jurisdiction. When the execution of the task program 130 is completed, the status output unit 117 may output a task completion notification by including the task completion notification in the status information.

[0069] The status output unit 117 may output the status information in response to a request from the upper controller 200 in the above-mentioned synchronous communication, or may output the status information regardless of the presence or absence of a request from the upper controller 200.

[0070] 9, a specific example of control executed by the local controller 100B in a case where the command buffer 113 of the local controller 100B stores a plurality of next tasks will be described below. In this example, the plurality of local devices 2 further includes an NC machine tool 2F. The robot 2B is installed between the NC machine tool 2F and the transport device 2A. In addition to the NC machine tool 2F and the transport device 2A, work tables 91 and 92 for temporarily placing a workpiece 9 are provided around the robot 2B.

[0071] The command buffer 113 of the local controller 100B stores an execution command for a first working task, an execution command for a second working task, and an execution command for a third working task as follows. First working task: The first workpiece 9A is removed from the NC machine tool 2F and transferred to the workpiece table 91. Second working task: The second workpiece 9B is transported from the workpiece table 92 and carried into the NC machine tool 2F. Third working task: Transport the third workpiece 9C from the workpiece table 91 to the transport device 2A.

[0072] In the task program storage unit 111, the priority of the first working task is higher than the priority of the second working task, which is higher than the priority of the third working task.

[0073] 9(a) shows a state in which the first working task and the third working task are executable. In this case, the selection unit 115 selects the first working task, which has a higher priority than the third working task. In response to this, the control unit 116 causes the robot 2B to execute the first working task (see FIG. 9(b)).

[0074] When the first working task is executed and the workpiece 9 is no longer present in the NC machine tool 2F, the second working task and the third working task become executable (see FIG. 10(a)). In this case, the selection unit 115 selects the second working task, which has a higher priority than the third working task. In response, the control unit 116 causes the robot 2B to execute the second working task (see FIG. 10(b)).

[0075] By executing the first working task and the second working task, the only task remaining in the command buffer 113 is the third working task. Since the third working task is still executable, the selection unit 115 selects the third working task. In response, the control unit 116 causes the robot 2B to execute the third working task (see (a) and (b) of FIG. 11).

[0076] The environmental information stored in the environmental information storage unit 221 may include a waiting time corresponding to the completion time of the machine task. The environmental information may include the waiting time in any format as long as it indicates the time until the completion time of the machine task. For example, the environmental information may include a combination of the scheduled completion time of the machine task and the current time, or may include the time length from the current time to the scheduled completion time.

[0077] The local controller 100 may further include a selection timing adjustment unit 121. When the multiple next tasks in the command buffer 113 include a first task that becomes executable when the machine task is completed and a second task that is already executable, the selection timing adjustment unit 121 adjusts the selection timing of the next task by the selection unit 115 based on the priorities of the first task and the second task and the waiting time. For example, when the priority of the first task is higher than the priority of the second task and the waiting time is equal to or less than a predetermined threshold, the selection timing adjustment unit 121 sets the selection timing of the next task by the selection unit 115 to after the waiting time has elapsed.

[0078] 12, a process of the selection timing adjustment unit 121 is illustrated when the command buffer 113 of the local controller 100B stores an execution command for the first working task, an execution command for the second working task, and an execution command for the third working task. In this example, the machining performed by the NC machine tool 2F on the first workpiece 9A corresponds to the machine task. During the execution of the machine task (see (a) of FIG. 12), only the third working task (second task) is executable, and the first working task (first task) and the second working task are not executable.

[0079] When the waiting time of the machine task being executed by the NC machine tool 2F on the first workpiece 9A is equal to or less than a predetermined threshold, the selection timing adjustment unit 121 sets the timing for the selection unit 115 to select the next task after the waiting time has elapsed. Therefore, even if the third working task is already executable, the control unit 116 waits for the waiting time to elapse without causing the robot 2B to execute the third working task.

[0080] At the timing when the selection timing adjustment unit 121 causes the selection unit 115 to select the next task, the first working task and the third working task become executable due to the lapse of the above-mentioned waiting time. Therefore, the selection unit 115 executes the first working task, which has a higher priority than the third working task. In response to this, the control unit 116 causes the robot 2B to execute the first working task (see FIG. 12(b)).

[0081] The local controller 100 may further include an interrupting unit 122. When the multiple next tasks in the command buffer 113 include a first task and a second task having a lower priority than the first task, and the first task becomes executable while the jurisdiction local device 2 is executing the second task, the interrupting unit 122 causes the control unit 116 to interrupt the second task and causes the selection unit 115 to select the first task. In addition, the interrupting unit 122 returns an execution command for the second task to the command buffer 113.

[0082] When the target work 9 cannot be released during the execution of the second task, the interruption unit 122 may cause the control unit 116 to return the jurisdiction local device 2 to a state before the start of the second task, and then cause the selection unit 115 to select the first task. For example, when the first task includes the transportation of the first work and the second task includes the transportation of the second work, if the first task becomes executable during the execution of the second task by the jurisdiction local device 2, the interruption unit 122 causes the control unit 116 to return the jurisdiction local device 2 to a state before the start of the transportation of the second work, and then causes the selection unit 115 to select the first task and returns an execution command for the second task to the command buffer 113.

[0083] Referring to FIG. 13, a process of the interruption unit 122 in a case where the first working task (first task) becomes executable while the robot 2B is executing the third working task (second task) will be illustrated.

[0084] 13(a) shows a state in which the control unit 116 is causing the robot 2B to execute the third working task in a situation in which the first working task cannot be executed because the NC machine tool 2F is executing a machine task on the first workpiece 9A. The robot 2B is transporting the third workpiece 9C from the workpiece table 91 to the transport device 2A.

[0085] In this state, when the first working task becomes executable, the interruption unit 122 causes the control unit 116 to interrupt the third working task. When the third workpiece 9C has left the work table 91 and has not yet reached the transport device 2A, the third workpiece 9C cannot be released, so the control unit 116 causes the robot 2B to return to the state before the start of the third working task. As a result, the third workpiece 9C is returned onto the work table 91 (see (b) of FIG. 13). Thereafter, the interruption unit 122 causes the selection unit 115 to select the first working task. The control unit 116 causes the robot 2B to execute an air cutting task of moving the tip 18 in a predetermined trajectory from the position and posture at the start of the third working task to the position and posture at the start of the first working task, and then causes the robot 2B to execute the first working task.

[0086] Interruption unit 122 may not cause control unit 116 to suspend the second task if having selection unit 115 select the first task after the second task is completed shortens the execution time of a plurality of processes compared to having control unit 116 suspend the execution of the second task and having selection unit 115 select the first task. For example, interruption unit 122 may not cause control unit 116 to suspend the second task if the remaining time of the second task is equal to or less than a predetermined threshold at the timing when the first task becomes executable.

[0087] In response to the local controller 100 and the upper level controller 200 being configured as described above, the data management device 300 may have a virtual command output unit that outputs an execution command for the next task based on a process and progress information of the process in the virtual space, a virtual environment information storage unit that stores virtual environment information, a virtual local controller that causes a virtual local device to execute the next task in the virtual space based on the execution command output from the virtual command output unit and the virtual environment information in the virtual environment information storage unit, and a virtual environment update unit that updates the virtual environment information in the virtual environment information storage unit in accordance with the operation of the virtual local device.

[0088] For example, as shown in FIG. 14, a data management device 300 has a model storage unit 311, a plurality of virtual local controllers 400, and a virtual upper controller 500 as functional blocks.

[0089] The model storage unit 311 stores models of a plurality of virtual local devices. The models of the virtual local devices include parameters such as the arrangement, structure, dimensions of each part, and mass of each part of the corresponding local devices 2 in real space. The model storage unit 311 also stores models of the surrounding environment of the plurality of virtual local devices in virtual space. The models of the surrounding environment include parameters such as the arrangement, three-dimensional shape, dimensions, etc. of the surrounding objects of the plurality of local devices 2 in real space. The model storage unit 311 may include a standard time that represents the responsiveness of the virtual local device to a control command in terms of time. A specific example of the standard time is, for example, an operation time length according to the control command. The operation time length is, for example, a time length from the start time of outputting the control command to the operation completion time of the virtual local device according to the control command.

[0090] The multiple virtual local controllers 400 respectively correspond to the multiple local controllers 100. For example, the data management device 300 has a virtual local controller 400A corresponding to the local controller 100A, a virtual local controller 400B corresponding to the local controller 100B, a virtual local controller 400C corresponding to the local controller 100C, and a virtual local controller 400D corresponding to the local controller 100D.

[0091] The virtual local controllers 400B, 400C, and 400D corresponding to the local controllers 100B, 100C, and 100D, which are robot controllers, are virtual robot controllers. The virtual local devices controlled by the virtual local controllers 400B and 400C are virtual robots, and the virtual local device controlled by the virtual local controller 400D is a virtual mobile robot.

[0092] The multiple virtual local controllers 400 control, in the virtual space, multiple virtual local devices respectively corresponding to the multiple local devices 2. Each of the multiple virtual local controllers 400 causes the virtual local device to execute, in the virtual space, multiple tasks included in the process for the target work 9.

[0093] Hereinafter, a virtual local device that is the control target of the virtual local controller 400 is referred to as a “responsible virtual local device”, and a local device 2 corresponding to the responsible virtual local device is referred to as a “responsible local device 2”. The responsible local device 2 is a local device 2 that is the control target of the local controller 100 corresponding to the virtual local controller 400.

[0094] The virtual space is a simulated virtual space in which there does not exist the responsible local device 2. In the virtual space, making the responsible virtual local device execute a task means simulating the operation of the responsible local device 2 in the real space when executing the task, based on the model information of the responsible local device 2 stored in the model storage unit 311.

[0095] Each of the multiple virtual local controllers 400 may adjust the execution timing for each of the multiple tasks based on the virtual environment information of the virtual environment information storage unit. Also, the virtual local controller 400 may cause the virtual local device under its jurisdiction to execute the next task corresponding to the execution command from the virtual command output unit. For example, each of the multiple virtual local controllers 400 causes the virtual local device under its jurisdiction to execute the next task based on the execution command and the virtual environment information. For example, the virtual local controller 400 causes the virtual local device under its jurisdiction to execute the next task corresponding to the execution command from the virtual command output unit while adjusting the execution timing based on the virtual environment information of the virtual environment information storage unit.

[0096] The virtual upper controller 500 has, as more detailed functional blocks, a process database 511, an order acquisition unit 512, a process allocation unit 513, a process storage unit 514, a command output unit 515, a progress update unit 516, an environmental information storage unit 521, and an environmental update unit 522 which correspond respectively to the process database 211, the order acquisition unit 212, the process allocation unit 213, the process storage unit 214, the command output unit 215, the progress update unit 216, the environmental information storage unit 221, and the environmental update unit 222.

[0097] Similar to the process database 211, the process database 511 stores a plurality of processes for each of a plurality of types of workpieces 9 targeted by the production system 1. The order acquisition unit 512 acquires a production order for simulation, for example, from an input device 396 described later.

[0098] The process allocation unit 513 allocates a process to a work 9 specified by a production order, similar to the process allocation unit 213. For example, the process allocation unit 513 allocates a process to a work 9 specified by a production order based on the process database 511. Similar to the process storage unit 214, the process storage unit 514 stores the process allocation results by the process allocation unit 513 and progress information for each process (progress information in the virtual space).

[0099] The command output unit 515 (virtual command output unit), like the command output unit 215, outputs an execution command for the next task based on the process stored in the process storage unit 514 and progress information of the process in the virtual space. The command output unit 515 outputs an execution command for the next task to one of the multiple virtual local controllers 400 based on the process database 511. For example, the command output unit 515 outputs an execution command for the next task to the virtual local controller 400 of the virtual local device of the local device 2 associated with the next task in the process database 511.

[0100] The progress update unit 516, like the progress update unit 216, updates the progress information in the process storage unit 514 according to the execution status of the next task by the multiple virtual local devices. For example, the progress update unit 516 updates the progress information in the process storage unit 514 based on status information (to be described later) output by the virtual local controller 400.

[0101] The environment information storage unit 521 (virtual environment information storage unit) stores virtual environment information. The configuration of the virtual environment information is the same as the configuration of the environment information. The virtual environment information includes device information in the virtual space and work information in the virtual space.

[0102] A specific example of device information in the virtual space is position and orientation information of a virtual local device in the virtual space. The device information in the virtual space includes information of a control signal (hereinafter, referred to as a "virtual control signal") generated between the virtual local controller 400 and the virtual local device under its jurisdiction.

[0103] The virtual control signal may be an internal signal generated by the virtual local controller 400 for controlling the jurisdiction virtual local device, an output signal output from the virtual local controller 400 to the jurisdiction virtual local device, or a feedback signal output from the jurisdiction virtual local device to the virtual local controller 400. A specific example of the internal signal is a command value for the position and orientation of the jurisdiction virtual local device. A specific example of the output signal is an output current value to an actuator of the jurisdiction virtual local device. A specific example of the feedback signal is a simulation result of the operation of the jurisdiction local device 2 based on the output signal and the model information stored in the model storage unit 311.

[0104] A specific example of the workpiece information in the virtual space is the position information of each workpiece 9 in the virtual space.

[0105] The environment update unit 522 (virtual environment update unit) updates the virtual environment information in the environment information storage unit 521 in response to the operations of a plurality of virtual local devices.

[0106] The virtual local controller 400 has, as more detailed functional blocks, a task program storage unit 411, a parameter storage unit 412, a command buffer 413, an environmental information acquisition unit 414, a selection unit 415, a control unit 416, a status output unit 417, a selection timing adjustment unit 421, and an interruption unit 422 which correspond respectively to the task program storage unit 111, the parameter storage unit 112, the command buffer 113, the environmental information acquisition unit 114, the selection unit 115, the control unit 116, the status output unit 117, the selection timing adjustment unit 121, and the interruption unit 122.

[0107] The task program storage unit 411, like the task program storage unit 111, stores one or more execution conditions that are predetermined for one or more tasks among the multiple tasks. For example, the task program storage unit 411 stores the multiple task programs 130. The parameter storage unit 412, like the parameter storage unit 112, stores one or more control parameters for controlling the virtual local devices under its jurisdiction.

[0108] The command buffer 413, like the command buffer 113, stores an execution command for the next task acquired from the virtual upper controller 500. The environment information acquisition unit 414, like the environment information acquisition unit 114, acquires environment information stored in the environment information storage unit 521. The selection unit 415, like the selection unit 115, selects one of the multiple next tasks in the command buffer 413 based on the execution conditions (condition headers 131) of each of the multiple next tasks in the task program storage unit 411 and the environment information in the environment information storage unit 521.

[0109] The control unit 416 causes the responsible virtual local device to execute the next task based on the execution conditions of the next task in the task program storage unit 411 and the environmental information in the environmental information storage unit 521. For example, the control unit 416 causes the responsible virtual local device to execute the next task selected by the selection unit 415. Hereinafter, the task selected by the selection unit 415 is referred to as a "selected task." Specifically, the control unit 416 simulates the operation of the responsible local device 2 in the real space when executing the selected task based on the model information of the responsible local device 2 stored in the model storage unit 311. The status output unit 417 outputs the above-mentioned status information of the responsible virtual local device to the virtual upper controller 500, similar to the status output unit 117.

[0110] Similar to the selection timing adjustment unit 121, the selection timing adjustment unit 421 adjusts the selection timing of the next task by the selection unit 415. For example, when the multiple next tasks in the command buffer 413 include a first task that becomes executable when a machine task is completed and a second task that is already executable, the selection timing adjustment unit 421 adjusts the selection timing of the next task by the selection unit 415 based on the priorities of the first task and the second task and the waiting time.

[0111] Similar to the interruption unit 122, when the multiple next tasks in the command buffer 413 include a first task and a second task having a lower priority than the first task, and the first task becomes executable while the virtual local device having jurisdiction is executing the second task, the interruption unit 422 causes the control unit 416 to interrupt the second task and causes the selection unit 415 to select the first task.

[0112] As shown in FIG. 15, the data management device 300 further has, as functional blocks, a real information collection unit 312, a real information database 313, a virtual information collection unit 314, a virtual information database 315, a task comparison unit 316, a situation comparison display unit 317, a display form change unit 318, a real signal extraction unit 321, a virtual signal extraction unit 322, and a signal comparison display unit 323.

[0113] The real information collecting unit 312 collects real execution status information representing the execution status of each of the multiple tasks by the local controller 100. The real execution status information includes the execution time of the corresponding task. The execution time may be a start time, a completion time, or a time length from the start time to the completion time. For example, the real information collecting unit 312 collects real execution status information including the execution start time and execution completion time of each of the multiple tasks in the first timeline. The first timeline is, for example, a time axis based on a timer in the upper controller 200. The real execution status information may include state information of the target workpiece 9 after the corresponding task is executed. An example of the state information of the target workpiece 9 is the position and posture of the target workpiece 9 after transportation.

[0114] The real information collecting unit 312 acquires real execution status information from the process storage unit 214 of the upper controller 200. The real information collecting unit 312 may further acquire the real control signal from the environment information storage unit 221 of the upper controller 200. The real information collecting unit 312 may acquire environment information including the real control signal from the environment information storage unit 221 in association with a time on the first timeline. The real information collecting unit 312 may request the upper controller 200 to output real execution status information and a real control signal, and acquire the real execution status information and real control signal output in response to the request, or may acquire the real execution status information and real control signal output from the upper controller 200 regardless of the presence or absence of a request.

[0115] The real information database 313 accumulates the real execution status information and the real control signal collected by the real information collecting unit 312. The real information database 313 may accumulate the real control signal in association with a time along the first timeline. The real information database 313 may accumulate environmental information including the real control signal in association with a time along the first timeline.

[0116] The virtual information collecting unit 314 collects virtual execution status information that indicates the execution status of each of the multiple tasks by the virtual local controller 400. The virtual execution status information includes the execution time of the corresponding task. The execution time may be a start time, a completion time, or a time length from the start time to the completion time. For example, the virtual information collecting unit 314 collects virtual execution status information including the execution start time and execution completion time of the multiple tasks in the second timeline. The second timeline is, for example, a time axis based on a timer in the data management device 300. The virtual execution status information may include state information of the target work 9 after the execution of the corresponding task. An example of the state information of the target work 9 is the position and posture of the target work 9 after transportation.

[0117] The virtual information collecting unit 314 acquires the virtual execution status information from the process storage unit 514. The virtual information collecting unit 314 may further acquire the virtual control signal from the environment information storage unit 521. The virtual information collecting unit 314 may acquire virtual environment information including the virtual control signal from the environment information storage unit 521 in association with a time on the second timeline.

[0118] The virtual information database 315 accumulates the virtual execution status information and the virtual control signal collected by the virtual information collection unit 314. The virtual information database 315 may accumulate the virtual control signal in association with a time along the second timeline. The virtual information database 315 may accumulate virtual environment information including the virtual control signal in association with a time along the second timeline.

[0119] The task comparison unit 316 extracts one or more divergent tasks, among the multiple tasks, in which the real execution status information and the virtual execution status information diverge. Divergence here means that the difference between the real execution status information and the virtual execution status information exceeds a predetermined level. The task comparison unit 316 only needs to compare the real execution status information and the virtual execution status information for at least one task among the multiple tasks, and does not necessarily need to compare the real execution status information and the virtual execution status information for all of the multiple tasks. A specific example of extraction of divergent tasks by the task comparison unit 316 is shown below. Example 1) Extract one or more deviation tasks whose difference between the execution time length (length of time from start to completion) based on real execution status information and the execution time length based on virtual execution status information exceeds a predetermined level. Example 2) Extract one or more deviation tasks for which the difference between the above-mentioned status information of the target work 9 based on real execution status information and the above-mentioned status information of the target work 9 based on virtual execution status information exceeds a predetermined level.

[0120] The status comparison display unit 317 displays on a display unit (e.g., a display device 395 described below) real execution status information for each of the multiple tasks collected by the real information collection unit 312 and virtual execution status information for each of the multiple tasks collected by the virtual information collection unit 314, comparing them for each task.

[0121] Fig. 16 is a table showing an example of a comparative display of real execution status information and virtual execution status information. This table displays the execution time length based on the real execution status information and the execution time length based on the virtual execution status information for each of a plurality of tasks. This table also displays the status information of the target work 9 based on the real execution status information and the status information of the target work 9 based on the virtual execution status information for each of a plurality of tasks.

[0122] The display form change unit 318 displays one or more divergent tasks on the display unit in a display form different from that of other tasks. The display form change unit 318 highlights rows corresponding to the divergent tasks in the table illustrated in FIG. 16 by changing the style, such as by coloring.

[0123] The real signal extraction unit 321 extracts real control signals corresponding to one or more deviated tasks from the real information database 313. For example, the real signal extraction unit 321 extracts real control signals corresponding to one or more deviated tasks from the real information database 313 based on the execution start time and the execution completion time on the first timeline. More specifically, the real signal extraction unit 321 extracts from the real information database 313 real control signals accumulated in association with the times from the execution start time to the execution completion time of the deviated task on the first timeline.

[0124] The virtual signal extraction unit 322 extracts virtual control signals corresponding to one or more deviation tasks from the virtual information database 315. For example, the virtual signal extraction unit 322 extracts virtual control signals corresponding to one or more deviation tasks from the virtual information database 315 based on the execution start time and the execution completion time in the second timeline. More specifically, the virtual signal extraction unit 322 extracts from the virtual information database 315 virtual control signals accumulated in association with the times from the execution start time to the execution completion time of the deviation task in the second timeline.

[0125] The signal comparison display unit 323 displays on a display unit (for example, a display device 395 described later) a comparison of the real control signal extracted by the real signal extraction unit 321 and the virtual control signal extracted by the virtual signal extraction unit 322. For example, the signal comparison display unit 323 displays a comparison of the timing chart of the real control signal and the timing chart of the virtual control signal with the start times of the deviation tasks aligned for each type of control signal.

[0126] FIG. 17 is a chart illustrating a comparative display of a real control signal and a virtual control signal. This chart includes a comparative display of signal types A and B. Signal type A is a control signal for a first actuator of the jurisdiction local device 2, and signal type B is a control signal for a second actuator of the jurisdiction local device 2. The first actuator and the second actuator cooperate with each other. (a) of FIG. 17 is a timing chart of a real control signal A1 for the signal type A, and (b) of FIG. 17 is a timing chart of a virtual control signal A2 corresponding to the signal type A. (c) of FIG. 17 is a timing chart of a real control signal B1 for the signal type B, and (d) of FIG. 17 is a timing chart of a virtual control signal B2 corresponding to the signal type B.

[0127] Comparing the chart of Fig. 17(a) with the chart of Fig. 17(b), it can be seen that there is a difference between the period T1 during which the real control signal A1 is at a low level and the period T2 during which the virtual control signal A2 is at a low level. Comparing the chart of Fig. 17(a) with the chart of Fig. 17(c), it can be seen that the period T1 during which the real control signal A1 is at a low level corresponds to the period T11 during which the real control signal B1 is at a high level. Comparing the chart of Fig. 17(b) with the chart of Fig. 17(d), it can be seen that the period T2 during which the virtual control signal A2 is at a low level corresponds to the period T12 during which the virtual control signal B2 is at a high level.

[0128] From these charts, it is estimated that the deviation between the real control signal B1 and the virtual control signal B2 is the cause of the deviation between the real execution status information and the virtual execution status information in the deviation task. For example, it is estimated that the difference between the operation of the second actuator in the real space and the operation of the second actuator in the virtual space is the cause of the deviation. More specifically, it is estimated that the difference between the part driven by the second actuator in the local device 2 under jurisdiction and the model information of the part in the model storage unit 311 is the cause of the deviation.

[0129] The data management device 300 may further include a progress display unit 324. The progress display unit 324 displays the progress of a plurality of processes for each of a plurality of works 9 in real space on a display unit (e.g., a display device 395 described later). For example, the progress display unit 324 displays a task being executed by the production system 1 on the display unit based on real execution status information collected by the real information collection unit 312.

[0130] Fig. 18 is a diagram showing an example of displaying the progress of multiple processes. For example, the progress display unit 324 displays the process for each of multiple works as a flowchart, and in each flowchart, highlights the task being executed by the production system 1. The chart in Fig. 18 shows, from the left, a flowchart of the process for work A, a flowchart of the process for work B, a flowchart of the process for work C, a flowchart of the process for work D, and a flowchart of the process for work E.

[0131] As shown in FIG. 19, the data management device 300 may further include a program acquisition unit 331, a parameter acquisition unit 332, a program generation unit 333, and a program distribution unit 335 as functional blocks.

[0132] The program acquisition unit 331 acquires the task program 130 of the working task registered by teaching in each local controller 100, and stores it in the task program storage unit 411 of the virtual local controller 400. After teaching of the working task, the execution condition of the working task may be undetermined. For example, the condition header 131 in the task program 130 may be blank.

[0133] The parameter acquisition section 332 acquires one or more control parameters stored in the parameter storage section 112 in each local controller 100 , and stores them in the parameter storage section 412 of the virtual local controller 400 .

[0134] The program generation unit 333 generates the one or more air cut tasks based on the working task acquired by the program acquisition unit 331 and the model information stored in the model storage unit 311, and stores the air cut tasks in the task program storage unit 411. The program generation unit 333 generates the air cut tasks by repeating the process of adding waypoints between the start point and end point of the air cut task, which can avoid collisions with surrounding objects, until collisions with surrounding objects can be avoided over the entire area from the start point to the end point. The program generation unit 333 may generate the air cut tasks for all combinations of two working tasks that are expected to be executed in sequence in the multiple working tasks stored in the task program storage unit 411.

[0135] The program generating unit 333 (execution condition generating unit) generates at least a part of the one or more execution conditions based on the operations of the multiple virtual local devices in the virtual space. For example, the program generating unit 333 generates the execution condition based on the environmental information accumulated in the virtual information database 315.

[0136] For example, the program generation unit 333 generates an execution possibility condition for a task of a first virtual local device and an execution possibility condition for a second virtual local device so as to avoid a collision in the virtual space between any one of the virtual local devices (a first virtual local device) and another virtual local device (a second virtual local device) based on the environmental information accumulated in the virtual information database 315. For example, when the multiple tasks include a first robot task executed by a robot (e.g., the robots 2B, 2C or the mobile robot 2D) and a second robot task executed by a second robot (e.g., the robots 2B, 2C or the mobile robot 2D), the program generation unit 333 generates an execution possibility condition for the first robot task and an execution possibility condition for the second robot task so as to avoid a collision in the virtual space between a virtual robot corresponding to the robot and a second virtual robot corresponding to the second robot.

[0137] As an example, the program generation unit 333 derives an overlapping area between the motion area of ​​the virtual robot executing the first robot task and the motion area of ​​the second virtual robot executing the second robot task, generates an execution condition for the first robot task that includes a condition that the second virtual robot is not located within the overlapping area, and generates an execution condition for the second robot task that includes a condition that the first virtual robot is not located within the overlapping area. The program generation unit 333 registers the generated execution condition in the condition header 131 of the task program 130 of the corresponding task.

[0138] The program generation unit 333 may change at least a part of the execution conditions so as to shorten the execution time of a plurality of processes in the virtual space when a plurality of virtual local devices operate based on the generated execution conditions. For example, the program generation unit 333 randomly changes the priority combination that determines the priority of each of a plurality of tasks, and repeats the process of registering each of the priority combinations in the condition header 131 of the corresponding task program 130 and evaluating the execution time of the plurality of processes in the changed priority combination. The program generation unit 333 adopts the priority combination that minimizes the execution time of the plurality of processes, and registers each of the adopted priority combinations in the condition header 131 of the corresponding task program 130.

[0139] As described above, the program stored in task program storage unit 411 after program generation unit 333 adds the air cut task and the execution conditions are added is hereinafter referred to as the “generated program.”

[0140] The program distribution unit 335 outputs the generated program in the task program storage unit 411 to the corresponding local controller 100, and stores it in the task program storage unit 111 of the local controller 100. For example, the program distribution unit 335 outputs the generated program to the corresponding local controller 100 via the upper controller 200.

[0141] As shown in FIG. 20, the data management device 300 may further include a virtual adjustment unit 341, a real adjustment unit 342, a state change detection unit 343, a reproduction unit 344, and an abnormality detection unit 345.

[0142] The virtual adjustment unit 341 adjusts parameters of models of multiple virtual local devices stored in the model storage unit 311, based on at least one of the real control signal extracted by the real signal extraction unit 321 and the virtual control signal extracted by the virtual signal extraction unit 322. Hereinafter, the real control signal extracted by the real signal extraction unit 321 will be referred to as the "extracted real control signal", and the virtual control signal extracted by the virtual signal extraction unit 322 will be referred to as the "extracted virtual control signal".

[0143] For example, the virtual adjustment unit 341 changes the parameters of the model of the corresponding virtual local device so that the control signal of the virtual local controller 400 approaches the extracted real control signal. As an example, the virtual adjustment unit 341 changes the parameters of the model of the corresponding virtual local device so as to reduce the difference between the extracted real control signal and the extracted virtual control signal. A specific example of changing the parameters of the model of the virtual local device is shown below. Example 1) Change object information such as the above-mentioned layout, structure, dimensions of each part, and mass of each part. Example 2) The above standard time is changed according to the operation time length of local device 2 in response to a control command.

[0144] The real adjustment unit 342 adjusts the control parameters (parameters of the parameter storage unit 112) of the multiple local controllers 100 based on at least one of the extracted real control signal and the extracted virtual control signal. For example, the real adjustment unit 342 changes the parameters of the corresponding local controllers 100 so as to bring the control signal of the local controller 100 closer to the extracted virtual control signal. For example, the real adjustment unit 342 changes parameters such as the position control gain, the speed control gain, or the current control gain so as to reduce the difference between the extracted real control signal and the extracted virtual control signal. When the real adjustment unit 342 changes the parameters of the parameter storage unit 112, the parameter acquisition unit 332 may acquire the changed parameters from the parameter storage unit 112 and register them in the parameter storage unit 412.

[0145] In the case where the difference between the extracted real control signal and the extracted virtual control signal has been reduced by the real adjustment unit 342 changing the parameters in the parameter storage unit 112, there is a possibility that the difference between the extracted real control signal and the extracted virtual control signal will be increased again when the changed parameters are overwritten in the parameter storage unit 412. In this case, the virtual adjustment unit 341 may further change the parameters of the virtual local device model so as to reduce the difference that has been increased again. As a result, the change in the local device 2 is reflected in the parameters of the corresponding virtual local device model.

[0146] The state change detection unit 343 detects a state change of at least one of the virtual local device 2 and the device with which the virtual local device 2 cooperates, based on at least one of the extracted real control signal and the extracted virtual control signal. Specific examples of state changes include a change in responsiveness to a control command, a change in tracking accuracy to a control command, etc. A cause of a change in responsiveness is an increase in internal stress due to an increase in friction, etc. A cause of a change in tracking accuracy is an increase in rattling of a moving part, etc.

[0147] When the state change detection unit 343 detects a state change, the reproducing unit 344 causes the responsible virtual robot to reproduce the operation of the responsible local device 2 executing the task, based on at least a real control signal corresponding to the task in which the state change has occurred. Hereinafter, the task in which a state change has occurred is referred to as a "change occurring task." For example, the reproducing unit 344 generates a reproduced video of the operation of the local device 2 executing the change occurring task, based on the model of the virtual local device stored in the model storage unit 311 and the real control signal corresponding to the change occurring task, and displays it on a display unit (for example, a display device 395 described later) or the like. The reproducing unit 344 may also cause the responsible virtual local device to reproduce the operation of the responsible local device 2 for tasks before and after the change occurring task, based on the real control signal.

[0148] The data management device 300 may further include an abnormality detection unit 345. The abnormality detection unit 345 detects an abnormality in at least one of the responsible local device 2 and a device with which the responsible local device 2 cooperates, based on an alarm signal or the like generated by the upper controller 200. When the abnormality detection unit 345 detects an abnormality, the reproduction unit 344 may cause the responsible virtual local device to reproduce, based on a real control signal, the operation of at least one of the responsible local devices 2 before and after the occurrence of the abnormality.

[0149] 21, the data management device 300 may further include a sensor information processing unit 351 and an information update unit 352. The sensor information processing unit 351 performs a predetermined process on the sensor information acquired from the external sensor 5. A specific example of the predetermined process is a process of extracting work information such as the type, position, and posture of the work 9, device information such as the position of the local device 2 and the operating state of the local device 2, and the approach state of the local device 2 to the work 9 (composite information of work information and device information), based on image information acquired from a camera, which is an example of the external sensor 5.

[0150] The information update unit 352 updates the latest environmental information in the real information database 313 based on the processing result of the sensor information processing unit 351. When the latest environmental information in the real information database 313 is updated by the information update unit 352, the real information collection unit 312 updates the environmental information in the environmental information storage unit 221 of the host controller 200 in accordance with the update result. This reduces the information processing load in the host controller 200 and makes it possible to save synchronous communication resources in the host controller 200.

[0151] FIG. 22 is a block diagram illustrating a hardware configuration of the control system 3. As shown in FIG. 22, the upper controller 200 has a circuit 290. The circuit 290 includes one or more processors 291, a memory 292, a storage 293, communication ports 294, 295, and an input / output port 296. The storage 293 has a computer-readable storage medium, such as a non-volatile semiconductor memory. The storage 293 stores a program for causing the upper controller 200 to execute the following operations based on a process including a plurality of tasks for the work 9 and progress information of the process: sending an execution command for the next task to the local controller 100; storing environmental information in the environmental information storage unit 221; and updating the environmental information according to the operation that the local controller 100 causes the local device 2 to execute based on the execution command and the environmental information in the environmental information storage unit 221. For example, the storage 293 stores a program for causing the upper controller 200 to configure each of the above-mentioned functional blocks.

[0152] The memory 292 temporarily stores the programs loaded from the storage medium of the storage 293 and the results of calculations by the processor 291. The processor 291 configures each functional block of the upper controller 200 by executing the above programs in cooperation with the memory 292. The communication port 294 communicates with the local controller 100 via the first network line NW1 in accordance with instructions from the processor 291. The communication port 295 communicates with the data management device 300 via the second network line NW2 in accordance with instructions from the processor 291. The input / output port 296 inputs and outputs information to and from the external sensor 5 in accordance with instructions from the processor 291.

[0153] The local controller 100 has a circuit 190. The circuit 190 includes one or more processors 191, a memory 192, a storage 193, a communication port 194, and a driver circuit 195. The storage 193 has a computer-readable storage medium, such as a non-volatile semiconductor memory. The storage 193 stores a program for causing the local controller 100 to execute the following: storing in the command buffer 113 an execution command for a next task transmitted by the upper controller 200 based on a process including a plurality of tasks for the work 9 and progress information of the process; causing the local device 2 to execute the next task based on the execution command and environmental information updated by the upper controller 200 in response to the execution of the task by the local device 2; and transmitting the execution status of the next task to the upper controller 200. For example, the storage 193 stores a program for causing the local controller 100 to configure each of the above-mentioned functional blocks.

[0154] The memory 192 temporarily stores the programs loaded from the storage medium of the storage 193 and the results of calculations by the processor 191. The processor 191 configures each functional block of the local controller 100 by executing the programs in cooperation with the memory 192. The communication port 194 communicates with the upper controller 200 via the first network line NW1 in accordance with a command from the processor 191. The driver circuit 195 outputs driving power to the local device 2 in accordance with a command from the processor 191.

[0155] The data management device 300 has a circuit 390. The circuit 390 includes one or more processors 391, a memory 392, a storage 393, a communication port 394, a display device 395, and an input device 396. The storage 393 has a computer-readable storage medium such as a non-volatile semiconductor memory. The storage 393 stores a program for causing the data management device 300 to execute the following: collecting real execution status information representing the execution status of each of the multiple tasks by the local controller 100; collecting virtual execution status information representing the execution status of each of the multiple tasks by the virtual local controller 400; and extracting one or more divergent tasks in which the real execution status information and the virtual execution status information diverge from each other among the multiple tasks. For example, the storage 393 stores a program for causing the data management device 300 to configure each of the above-mentioned functional blocks.

[0156] The memory 392 temporarily stores the program loaded from the storage medium of the storage 393 and the calculation result by the processor 391. The processor 391 configures each functional block of the data management device 300 by executing the above program in cooperation with the memory 392. The communication port 394 communicates with the upper controller 200 via the second network line NW2 according to a command from the processor 391. The display device 395 and the input device 396 function as a user interface of the data management device 300. The display device 395 includes, for example, a liquid crystal monitor, and is used to display information to the user. The input device 396 is, for example, a keypad, and acquires information input by the user. The display device 395 and the input device 396 may be integrated like a so-called touch panel. The display device 395 and the input device 396 may be provided in an external device connected to the data management device 300, or may be incorporated in the data management device 300.

[0157] In addition, the circuits 190, 290, and 390 are not necessarily limited to those that configure each function by a program. For example, the circuits 290, 390, and 490 may configure at least some of the functions by a dedicated logic circuit or an ASIC (Application Specific Integrated Circuit) that integrates the dedicated logic circuit. Each of the local controller 100, the upper controller 200, and the data management device 300 may be configured by multiple computers that can communicate with each other, and each computer may have a circuit. For example, the data management device 300 may be configured by multiple computers including a data collection device and a simulation device. In this case, each functional block of the data management device 300 described above may be distributed and configured on multiple computers. As an example, the virtual local controller 400, the virtual upper controller 500, the model storage unit 311, the program acquisition unit 331, the program distribution unit 335, the program generation unit 333, and the parameter acquisition unit 332 may be configured in a simulation device, and the real information collection unit 312, the real information database 313, the virtual information collection unit 314, the virtual information database 315, the task comparison unit 316, the situation comparison display unit 317, the display form change unit 318, the real signal extraction unit 321, the virtual signal extraction unit 322, the signal comparison display unit 323, the progress display unit 324, the virtual adjustment unit 341, the real adjustment unit 342, the state change detection unit 343, the reproduction unit 344, the abnormality detection unit 345, the sensor information processing unit 351, and the information update unit 352 may be configured in a data collection device. The data collection device may further collect and store the task program 130 and control parameters of each local controller 100, and distribute the task program 130 to each local controller 100. In this case, the program acquisition unit 331 may acquire the task program 130 from the local controller 100 via the data collection device. The parameter acquisition unit 332 may acquire the control parameters from the local controller 100 via the data collection device. The program distribution unit 335 may output the generated program to the local controller 100 via the data collection device.In addition, a simulation device may be configured in one computer by a program that consolidates the functions of the simulation device, and a data collection device may be configured in the same computer by a program that consolidates the functions of the data collection device.

[0158] [Control Procedure] As an example of a control method, a control procedure performed by the control system 3 is shown. This control procedure includes transmitting an execution command for the next task to the local controller 100 based on a process including a plurality of tasks for the work 9 and progress information of the process, storing environmental information in the environmental information storage unit 221, and updating the environmental information according to an operation that the local controller 100 causes the local device 2 to execute based on the execution command and the environmental information in the environmental information storage unit 221.

[0159] The control procedure also includes storing in a command buffer an execution command for the next task transmitted by the host controller 200 based on a process including a plurality of tasks for the work 9 and progress information of the process, causing the local device 2 to execute the next task based on the execution command and environmental information updated by the host controller 200 in response to execution of the task by the local device 2, and transmitting the execution status of the next task to the host controller 200.

[0160] From another perspective, this control procedure includes having the local device 2 execute a plurality of tasks included in the process for the work 9 in the real space, having the virtual local device execute a plurality of tasks in the virtual space, collecting real execution status information representing the execution status of each of the plurality of tasks by the local controller 100, collecting virtual execution status information representing the execution status of each of the plurality of tasks by the virtual local controller 400, and extracting one or more divergent tasks from the plurality of tasks, the real execution status information of which diverges from the virtual execution status information.

[0161] The control procedures are exemplified in detail below, being divided into a progress management procedure executed by the upper controller 200, a control procedure executed by the local controller 100, and a data management procedure executed by the data management device 300. At least the progress management procedure executed by the upper controller 200 and the control procedure executed by the local controller 100 are executed in parallel.

[0162] (Progress management procedure) 23, the upper controller 200 executes steps S01, S02, S03, S04, S05, and S06 in order. In step S01, the order acquisition unit 212 waits for acquisition of a production order from the production management controller 4. In step S02, the process allocation unit 213 allocates a process to a work 9 specified by the production order and stores it in the process storage unit 214.

[0163] In step S03, the command output unit 215 outputs an execution command for the next task based on the process stored in the process storage unit 214 and the progress information of the process. When a plurality of processes are respectively assigned to a plurality of works 9 in the process storage unit 214, the command output unit 215 outputs execution commands for a plurality of next tasks for each of the plurality of processes.

[0164] In step S04, the environment update unit 222 acquires status information of the local devices 2 from each of the multiple local controllers 100, acquires the detection results of the external sensors 5, and updates the environment information based on the status information and the detection results. In step S05, the progress update unit 216 updates the progress information in the process storage unit 214 in response to the task completion notification included in the status information acquired in step S04. If the status information does not include the task completion notification, the progress information is not changed.

[0165] In step S06, the command output unit 215 checks whether the process assigned to the work 9 in the process storage unit 214 has been completed. For example, the command output unit 215 checks whether all tasks in the process storage unit 214 have been completed.

[0166] If it is determined in step S06 that an incomplete task remains, the upper controller 200 returns the process to step S03. Thereafter, the upper controller 200 repeats steps S03 to S06, for example, in a synchronous communication cycle of a predetermined period, until all tasks in the process storage unit 214 are completed. If it is determined in step S06 that all tasks are completed, the upper controller 200 returns the process to step S01. The upper controller 200 repeatedly executes the above process.

[0167] (Control Procedure) 24, the local controller 100 first executes steps S11, S12, S13, and S14. In step S11, the selection unit 115 waits for one or more execution commands for the next task to be accumulated in the command buffer 113. In step S12, the environment information acquisition unit 114 acquires the environment information stored in the environment information storage unit 221.

[0168] In step S13, the selection unit 115 checks whether each of the one or more next tasks can be executed based on the execution conditions of each of the one or more next tasks and the environmental information in the environmental information storage unit 221. For example, the selection unit 115 checks whether the environmental information satisfies the execution condition of each of the one or more next tasks. In step S14, the selection unit 115 checks whether there is an executable next task.

[0169] If it is determined in step S14 that there is no next task that can be executed, the local controller 100 returns the process to step S11. Thereafter, steps S11 to S14 are repeated at a predetermined communication cycle until any next task becomes executable. The communication cycle may be synchronized with the synchronous communication cycle.

[0170] If it is determined in step S14 that there is a next executable task, the local controller 100 executes steps S15, S16, S17, and S18. In step S15, the selection unit 115 selects the next task with the highest priority from among the next executable tasks. Hereinafter, the next task selected by the selection unit 115 is referred to as the "selected task."

[0171] In step S16, the control unit 116 causes the responsible local device 2 to execute one control cycle of the selected task. In step S17, the status output unit 117 outputs status information of the responsible local device 2 to the upper controller 200. In step S18, the control unit 116 checks whether or not the execution of the selected task has been completed.

[0172] If it is determined in step S18 that the execution of the selected task is not completed, the local controller 100 returns the process to step S16. Thereafter, the local controller 100 repeats steps S16 to S18 in a control cycle with a predetermined period until the execution of the selected task is completed. The control cycle may be synchronized with the synchronous communication cycle.

[0173] If it is determined in step S18 that the execution of the selected task is completed, the local controller 100 executes step S19. In step S19, the status output unit 117 outputs a completion notification of the selected task to the upper controller 200 by including it in the status information. After that, the local controller 100 returns the process to step S11. The local controller 100 repeats the above process.

[0174] The control procedure may further include adjusting the selection timing of the next task based on the waiting time. FIG. 25 is a flowchart illustrating a control procedure including adjusting the selection timing of the next task based on the waiting time. As shown in FIG. 25, the local controller 100 first executes steps S21 to S24 similar to steps S11 to S14. In step S21, the selection unit 115 waits for one or more execution commands for the next task to be accumulated in the command buffer 113. In step S22, the environment information acquisition unit 114 acquires the environment information stored in the environment information storage unit 221.

[0175] In step S23, the selection unit 115 checks whether each of the one or more next tasks can be executed based on the execution conditions of each of the one or more next tasks and the environmental information in the environmental information storage unit 221. For example, the selection unit 115 checks whether the environmental information satisfies the execution condition of each of the one or more next tasks. In step S24, the selection unit 115 checks whether there is an executable next task.

[0176] If it is determined in step S24 that there is no executable next task, the local controller 100 returns the process to step S21. If it is determined in step S24 that there is an executable next task, the local controller 100 executes step S25. In step S25, the selection timing adjustment unit 121 checks whether there is a task that is currently not executable but has a higher priority than the executable next task (hereinafter, this is referred to as a "selection candidate task").

[0177] If it is determined in step S25 that a selection candidate task exists, the local controller 100 executes step S26. In step S26, the selection timing adjustment unit 121 checks whether the waiting time until the selection candidate task becomes executable exceeds a predetermined threshold. A specific example of the waiting time is the waiting time until the machine task executed by another local device 2 before the selection candidate task is completed.

[0178] If it is determined in step S26 that the waiting time until the selection candidate task becomes executable does not exceed the predetermined threshold, the local controller 100 returns the process to step S22 without selecting a next executable task. This causes the selection of the next task to occur after the waiting time has elapsed. After the waiting time has elapsed, the selection candidate task will be included in the next executable tasks.

[0179] If it is determined in step S26 that the waiting time until the selection candidate task becomes executable exceeds a predetermined threshold, the local controller 100 executes step S27. If it is determined in step S25 that there is no selection candidate task, the local controller 100 executes step S27 without executing step S26. In step S27, the selection unit 115 selects the next task with the highest priority from among the executable next tasks. Hereinafter, the next task selected by the selection unit 115 is referred to as the "selected task."

[0180] Next, the local controller 100 executes steps S28, S29, and S31. In step S28, the control unit 116 causes the local device 2 to execute one control cycle of the selected task. In step S29, the status output unit 117 outputs status information of the local device 2 to the upper controller 200. In step S31, the control unit 116 checks whether the execution of the selected task has been completed.

[0181] If it is determined in step S31 that the execution of the selected task is not completed, the local controller 100 returns the process to step S28. After that, the local controller 100 repeats steps S28 to S31 in a control cycle with a predetermined period until the execution of the selected task is completed. The control cycle may be synchronized with the synchronous communication cycle.

[0182] If it is determined in step S31 that the execution of the selected task is completed, the local controller 100 executes step S32. In step S32, the status output unit 117 outputs a completion notification of the selected task to the upper controller 200 by including it in the status information. After that, the local controller 100 returns the process to step S21. The local controller 100 repeats the above process.

[0183] The control procedure may further include, when a first task having a higher priority than the second task becomes executable during execution of the second task by the jurisdiction local device 2, interrupting the execution of the second task and selecting the first task. Fig. 26 is a flowchart illustrating an example of a control procedure including interrupting a task being executed. Fig. 26 shows the procedure from the start of execution of the selected task to outputting a task completion notification, among the control procedures.

[0184] 26, the local controller 100 first executes steps S41, S42, and S43. In step S41, the control unit 116 causes the local device 2 under its jurisdiction to execute one control cycle of the selected task, similar to step S16. In step S42, the status output unit 117 outputs status information of the local device 2 under its jurisdiction to the upper controller 200. In step S43, the control unit 116 checks whether the execution of the selected task has been completed.

[0185] If it is determined in step S43 that the execution of the selected task is not completed, the local controller 100 executes steps S44, S45, and S46. In step S44, the environment information acquisition unit 114 acquires the environment information stored in the environment information storage unit 221. In step S45, the selection unit 115 checks whether each of the one or more next tasks can be executed based on the execution conditions of each of the one or more next tasks and the environment information in the environment information storage unit 221. For example, the selection unit 115 checks whether the environment information satisfies the execution condition of each of the one or more next tasks. In step S46, the selection unit 115 checks whether there is an executable next task. Hereinafter, the executable next task is referred to as a "replacement candidate task."

[0186] If it is determined in step S46 that a next executable task exists, the local controller 100 executes step S47. In step S47, the selection unit 115 checks whether the priority of the replacement candidate task is higher than the priority of the task being executed.

[0187] If it is determined in step S47 that the priority of the replacement candidate task is higher than the priority of the task being executed, the local controller 100 executes step S48. In step S48, the selection unit 115 suspends the execution of the selected task and causes the selection unit 115 to select a replacement candidate task, thereby checking whether the execution times of the multiple processes can be shortened compared to when the selection unit 115 selects a replacement candidate task after the selected task is completed. Hereinafter, the case where the execution of the selected task is suspended and the selection unit 115 selects a replacement candidate task is referred to as a "first case." The case where the selection unit 115 selects a replacement candidate task after the selected task is completed is referred to as a "second case." According to the first case, as a simple checking method for whether the execution times of the multiple processes can be shortened compared to the second case, the selection unit 115 may check whether the remaining time of the selected task exceeds a predetermined threshold.

[0188] If it is determined in step S48 that the execution times of the multiple processes cannot be shortened by the first case as compared to the second case, the local controller 100 returns the process to step S42. For example, if the remaining time of the selected task is equal to or less than a predetermined threshold, the local controller 100 returns the process to step S42. If it is determined in step S46 that there is no executable next task, and if it is determined in step S47 that the priority of the replacement candidate task is not higher than the priority of the task being executed, the local controller 100 also returns the process to step S42. Thereafter, the selected task is performed until completion unless a next task with a higher priority becomes executable.

[0189] If it is determined in step S43 that the execution of the selected task is completed, the local controller 100 executes step S49. In step S49, the status output unit 117 outputs a completion notification of the selected task to the upper controller 200 in the status information.

[0190] In step S48, when it is determined that the execution times of the multiple processes can be shortened according to the first case compared to the second case, the local controller 100 executes steps S51, S52, S53, S54, and S55. In step S51, the interruption unit 122 causes the control unit 116 to interrupt the task being executed. The interruption unit 122 may cause the control unit 116 to return the local device 2 under its jurisdiction to a state before the start of the interrupted task. In step S52, the interruption unit 122 causes the selection unit 115 to select a replacement candidate task. Hereinafter, the replacement candidate task will be referred to as a "replaced task."

[0191] In step S53, the control unit 116 causes the responsible local device 2 to execute one control cycle of the replaced task. In step S54, the status output unit 117 outputs status information of the responsible local device 2 to the upper controller 200. In step S55, the control unit 116 checks whether or not the execution of the replaced task has been completed.

[0192] If it is determined in step S55 that the execution of the replaced task is not completed, the local controller 100 returns the process to step S53. After that, the local controller 100 repeats steps S53 to S55 in a control cycle with a predetermined period until the execution of the selected task is completed. The control cycle may be synchronized with the synchronous communication cycle.

[0193] If it is determined in step S55 that the execution of the replaced task is completed, the local controller 100 executes step S56. In step S56, the status output unit 117 outputs a completion notification of the replaced task to the upper controller 200 by including it in the status information. This completes the procedure up to the task completion notification.

[0194] (Data Management Procedures) The data management procedure executed by the data management device 300 is roughly divided into a comparison procedure, a program generation procedure, an adjustment procedure, and an environment information update procedure. The comparison procedure, the program generation procedure, and the adjustment procedure will be exemplified in detail below.

[0195] (Comparison procedure) The comparison procedure includes a procedure for collecting real information, a procedure for collecting virtual information, and a procedure for extracting deviation tasks. Fig. 27 is a flowchart illustrating the procedure for collecting real information. As shown in Fig. 27, the data management device 300 executes steps S61, S62, S63, and S64 in order. In step S61, the real information collection unit 312 waits for the upper controller 200 to start executing a process according to the production order.

[0196] In step S62, the real information collecting unit 312 acquires real execution status information representing the execution status of each of the multiple tasks by the local controller 100 from the process storage unit 214, and accumulates the information in the real information database 313. For example, the real information collecting unit 312 collects real execution status information including the execution start time and execution completion time of each of the multiple tasks in the first timeline. In addition, the real information collecting unit 312 acquires environmental information including the real control signal from the environmental information storage unit 221, and accumulates the information in the real information database 313.

[0197] In step S63, the progress display unit 324 displays on the display unit the tasks being executed by the production system 1 based on the real execution status information acquired by the real information collection unit 312. In step S64, the real information collection unit 312 checks whether the execution of the process by the upper controller 200 has been completed.

[0198] If it is determined in step S64 that the process execution by the upper controller 200 is not complete, the data management device 300 returns the process to step S62. Thereafter, the data management device 300 repeats the acquisition and accumulation of real execution status information and environmental information and the display of the task being executed until the process execution by the upper controller 200 is complete. If it is determined in step S64 that the process execution by the upper controller 200 is complete, the procedure for collecting real information is completed.

[0199] 28 is a flowchart illustrating a procedure for collecting virtual information. The data management device 300 executes steps S71, S72, and S73 in order. In step S71, the virtual information collection unit 314 waits for the virtual upper controller 500 to start executing a process according to a production order.

[0200] In step S72, the virtual information collecting unit 314 acquires virtual execution status information representing the execution status of each of the multiple tasks by the virtual local controller 400 from the process storage unit 514, and accumulates it in the virtual information database 315. For example, the virtual information collecting unit 314 collects virtual execution status information including the execution start time and execution completion time of each of the multiple tasks in the second timeline. In addition, the virtual information collecting unit 314 acquires virtual environment information including the above-mentioned virtual control signal from the environment information storage unit 521, and accumulates it in the virtual information database 315. In step S73, the virtual information collecting unit 314 checks whether the execution of the process by the virtual upper controller 500 has been completed.

[0201] If it is determined in step S73 that the process execution by the virtual upper controller 500 is not completed, the data management device 300 returns the process to step S72. Thereafter, the data management device 300 repeats acquisition and accumulation of the virtual execution status information and the virtual environment information until the process execution by the virtual upper controller 500 is completed. If it is determined in step S73 that the process execution by the virtual upper controller 500 is completed, the virtual information collection procedure is completed.

[0202] FIG. 29 is a flow chart illustrating an example of the procedure for extracting a divergent task. The data management device 300 first executes steps S81, S82, and S83. In step S81, the task comparison unit 316 selects the first task in the process. Hereinafter, the task selected by the task comparison unit 316 is referred to as a "comparison target task." In step S82, the task comparison unit 316 extracts real execution status information of the comparison target task from the real information database 313, extracts virtual execution status information of the comparison target task from the virtual information database 315, and compares the extracted real execution status information with the virtual execution status information. In step S83, the task comparison unit 316 checks whether there is a divergence between the extracted real execution status information and the extracted virtual execution status information.

[0203] When it is determined in step S83 that there is a discrepancy between the extracted real execution status information and the extracted virtual execution status information, the data management device 300 executes step S84. In step S84, the task comparison unit 316 adds the comparison target task to the extraction result of the discrepant task.

[0204] Next, the data management device 300 executes step S85. If it is determined in step S83 that there is no discrepancy between the extracted real execution status information and the extracted virtual execution status information, the data management device 300 executes step S85 without executing step S84. In step S85, the task comparison unit 316 checks whether the comparison between the real execution status information and the virtual execution status information has been completed for all tasks of the process.

[0205] If it is determined in step S85 that a task for which the comparison between the real execution status information and the virtual execution status information has not been completed remains in the process, the data management device 300 executes step S886. In step S86, the task comparison unit 316 selects the next task to be compared from the process. After that, the data management device 300 returns the process to step S82. Thereafter, the comparison between the real execution status information and the virtual execution status information is repeated for each task until the comparison of all tasks is completed.

[0206] If it is determined in step S85 that the comparison between the real execution status information and the virtual execution status information has been completed for all tasks of the process, the procedure for detecting a divergent task is completed.

[0207] The comparison procedure executed by the data management device 300 may further include a comparative display procedure of execution status exemplified in Fig. 30. In this case, the data management device 300 executes steps S91, S92, and S93 in order. In step S91, the status comparison display unit 317 generates a comparison display screen that compares the real execution status information of each of the multiple tasks collected by the real information collection unit 312 with the virtual execution status information of each of the multiple tasks collected by the virtual information collection unit 314 for each task. This comparison display screen includes style data that determines the display form of the real execution status information and the virtual execution status information for each of the multiple tasks.

[0208] In step S92, the display form change unit 318 changes the display form of one or more deviation tasks in the style data to the display form of other tasks. In step S93, the situation comparison display unit 317 displays on the display unit a comparison display screen in which the style data has been changed by the display form change unit 318. This completes the procedure for comparing and displaying execution situations.

[0209] The comparison procedure may further include a control signal extraction procedure exemplified in Fig. 31. As shown in Fig. 31, the data management device 300 first executes steps S101, S102, S103, and S104. In step S101, the real signal extraction unit 321 selects a first deviation task from one or more deviation tasks extracted by the task comparison unit 316. Hereinafter, the selected deviation task is referred to as a "selected deviation task."

[0210] In step S102, the real signal extraction unit 321 extracts a real control signal corresponding to the selected deviation task from the real information database 313. In step S103, the virtual signal extraction unit 322 extracts a virtual control signal corresponding to the selected deviation task from the virtual information database 315. In step S104, the real signal extraction unit 321 checks whether extraction of real control signals and virtual control signals has been completed for all of one or more deviation tasks.

[0211] If it is determined in step S104 that there remains a deviation task for which the extraction of real control signals and virtual control signals has not been performed, the data management device 300 executes step S105. In step S105, the real signal extraction unit 321 selects the next deviation task from the one or more deviation tasks. After that, the data management device 300 returns the process to step S102. Thereafter, the data management device 300 repeats the extraction of real control signals and virtual control signals until the extraction of real control signals and virtual control signals is completed for all of the one or more deviation tasks. If it is determined in step S104 that the extraction of real control signals and virtual control signals is completed for all of the one or more deviation tasks, the control signal extraction procedure is completed.

[0212] The comparison procedure may further include a control signal comparison display procedure exemplified in Fig. 32. As shown in Fig. 32, the data management device 300 executes steps S111, S112, and S113 in order. In step S111, the signal comparison display unit 323 selects one or more deviation tasks based on a user input to the input device 396 or the like. For example, the signal comparison display unit 323 selects one or more deviation tasks based on an input to select a highlighted deviation task on the execution status comparison display screen. Hereinafter, the selected deviation task is referred to as a "display target deviation task".

[0213] In step S112, the signal comparison display unit 323 generates a signal comparison display screen that displays the real control signal extracted by the real signal extraction unit 321 in association with the display target deviation task and the virtual control signal extracted by the virtual signal extraction unit 322 in association with the display target deviation task for each type of control signal. In step S113, the signal comparison display unit 323 displays the signal comparison display screen on the display unit. This completes the control signal comparison display procedure.

[0214] (Program Generation Procedure) As shown in Fig. 33, the data management device 300 executes steps S121, S122, S123, S124, S125, S126, and S127 in order. In step S121, the program acquisition unit 331 acquires the task program 130 of the working task registered by teaching in each local controller 100, and stores it in the task program storage unit 411 of the virtual local controller 400. In step S122, the parameter acquisition unit 332 acquires one or more parameters stored in the parameter storage unit 112 in each local controller 100, and stores it in the parameter storage unit 412 of the virtual local controller 400. In step S123, the program generation unit 333 generates the one or more air cut tasks based on the working task acquired by the program acquisition unit 331 and the model information stored in the model storage unit 311, and stores it in the task program storage unit 411.

[0215] In step S124, the process allocation unit 513 allocates a process to the work 9 specified by the production order and stores it in the process storage unit 514. In step S125, the data management device 300 generates an execution possibility condition. The specific contents of step S125 will be described later. In step S126, the data management device 300 generates a priority. The specific contents of step S126 will be described later. In step S127, the program distribution unit 335 outputs the generated program in the task program storage unit 411 to the corresponding local controller 100, and stores it in the task program storage unit 111 of the local controller 100. This completes the program generation procedure.

[0216] Fig. 34 is a flow chart illustrating a procedure for generating an execution condition in step S125. As shown in Fig. 34, the data management device 300 executes steps S131, S132, S133, and S134 in order. In step S131, the virtual upper controller 500 and the virtual local controller 400 cause a plurality of virtual local devices to execute a plurality of tasks in the virtual space based on a plurality of task programs 130 in the task program storage unit 411.

[0217] In step S132, the program generation unit 333 extracts an overlapping area between the motion ranges of the virtual local devices based on the virtual environment information accumulated in the virtual information database 315. For example, the program generation unit 333 calculates an overlapping area between the motion area of ​​the first virtual local device and the motion area of ​​the second virtual local device.

[0218] In step S133, the program generation unit 333 generates an execution condition for each of the multiple tasks so that two or more virtual local devices do not enter the same overlapping area. For example, the program generation unit 333 generates an execution condition for the task of the first virtual local device so as to include a condition that the second virtual local device is not located in the overlapping area, and generates an execution condition for the task of the second virtual local device so as to include a condition that the first virtual local device is not located in the overlapping area. In step S134, the program generation unit 333 registers the generated execution condition in the condition header 131 of the task program 130 of the corresponding task. This completes the procedure for generating the execution condition.

[0219] Fig. 35 is a flow chart illustrating a procedure for generating priority in step S126. As shown in Fig. 35, the data management device 300 first executes steps S141, S142, S143, and S144. In step S141, the program generation unit 333 randomly provisionally determines a priority combination that determines the priority of each of a plurality of tasks, and registers each provisionally determined priority combination in the condition header 131 of the corresponding task program 130. In step S142, the virtual upper controller 500 and the virtual local controller 400 cause a plurality of virtual local devices to execute a plurality of tasks in the virtual space based on a plurality of task programs 130 in the task program storage unit 411.

[0220] In step S143, the program generation unit 333 evaluates the execution times of the multiple processes based on the virtual execution status information accumulated in the virtual information database 315. In step S144, the program generation unit 333 checks whether the number of attempts to change the priority and evaluate the execution times of the multiple processes has reached a predetermined number.

[0221] If it is determined in step S144 that the number of attempts has not reached the predetermined number, the data management device 300 executes step S145. In step S145, the program generation unit 333 randomly changes the priority combinations, and registers each of the changed priority combinations in the condition header 131 of the corresponding task program 130. After that, the local controller 100 returns the process to step S142. Thereafter, the change of the priority combinations and the evaluation of the execution times of the multiple processes are repeated until the number of attempts reaches the predetermined number.

[0222] If it is determined in step S144 that the number of trials has reached a predetermined number, the data management device 300 executes step S146. In step S146, the program generation unit 333 adopts the priority combination that has the shortest execution time of the multiple processes in the above trials, and registers each of the adopted priority combinations in the condition header 131 of the corresponding task program 130. This completes the priority generation procedure.

[0223] (Adjustment Procedure) As shown in FIG. 36, the data management device 300 executes steps S151, S152, S153, S154, and S155 in order. In step S151, the data management device 300 executes the above-mentioned comparison procedure. In step S152, the data management device 300 adjusts parameters of models of a plurality of virtual local devices based on at least one of the real control signal and the virtual control signal extracted in the comparison procedure of step S151. The specific processing content of step S152 will be described later. In step S153, the data management device 300 waits for a predetermined period of time to elapse. In step S154, the data management device 300 executes the above-mentioned comparison procedure.

[0224] In step S155, the data management device 300 adjusts the control parameters (parameters of the parameter storage unit 112) of the multiple local controllers 100 based on at least one of the real control signal and the virtual control signal extracted in the comparison procedure in step S154. The specific processing content of step S155 will be described later. This completes the adjustment procedure.

[0225] Fig. 37 is a flowchart illustrating the procedure for adjusting the model parameters in step S152. As shown in Fig. 37, the data management device 300 first executes steps S161, S162, S163, and S164. In step S161, the virtual adjustment unit 341 selects a first deviation task from one or more deviation tasks extracted by the task comparison unit 316. Hereinafter, the selected deviation task is referred to as a "virtual adjustment deviation task."

[0226] In step S162, the virtual adjustment unit 341 derives the modeling error of the virtual local device that is the cause of the deviation between the real execution status information and the virtual execution status information, based on the real control signal and the virtual control signal corresponding to the virtual adjustment deviation task.

[0227] In step S163, based on the modeling error derived in step S162, the virtual adjustment unit 341 corrects the parameters of the model stored in the model storage unit 311. In step S164, the virtual adjustment unit 341 checks whether the adjustment of the model parameters for all of the one or more deviation tasks has been completed.

[0228] If it is determined in step S164 that there remains a deviation task for which the adjustment of the model parameters has not been completed, the data management device 300 executes step S165. In step S165, the virtual adjustment unit 341 selects the next deviation task from the one or more deviation tasks. After that, the data management device 300 returns the process to step S161. Thereafter, the data management device 300 repeats the adjustment of the model parameters until the adjustment of the model is completed for all of the one or more deviation tasks. If it is determined in step S164 that the adjustment of the model parameters is completed for all of the one or more deviation tasks, the model parameter adjustment procedure is completed.

[0229] 38 is a flowchart illustrating the procedure for adjusting the control parameters in step S153. The data management device 300 first executes steps S171, S172, and S173. In step S171, the real adjustment unit 342 selects a first deviation task from one or more deviation tasks extracted by the task comparison unit 316. Hereinafter, the selected deviation task is referred to as a "real adjustment deviation task."

[0230] In step S172, the real adjustment unit 342 selects a control parameter capable of reducing the deviation between the real execution status information and the virtual execution status information based on the real control signal and the virtual control signal corresponding to the real adjustment deviation task. Hereinafter, the selected control parameter is referred to as a "selected control parameter." In step S173, the real adjustment unit 342 checks whether the difference between the real control signal and the virtual control signal corresponding to the real adjustment deviation task can be suppressed to a desired level by the selected control parameter.

[0231] In step S173, if it is determined that the difference between the real control signal and the virtual control signal corresponding to the real adjustment deviation task can be suppressed to a desired level by the selected control parameters, the data management device 300 executes steps S174 and S175. In step S174, the real adjustment unit 342 changes the selected control parameters so as to suppress the difference between the real control signal and the virtual control signal corresponding to the real adjustment deviation task to a desired level, and registers the change result in the parameter holding unit 112 of the corresponding local controller 100. In step S175, the real adjustment unit 342 checks whether or not the adjustment of the control parameters has been completed for all of the one or more deviation tasks.

[0232] If it is determined in step S175 that there remains a deviation task for which the adjustment of the control parameters has not been completed, the data management device 300 executes step S176. In step S176, the real adjustment unit 342 selects the next deviation task from the one or more deviation tasks. After that, the data management device 300 returns the process to step S171. Thereafter, the data management device 300 repeats the adjustment of the control parameters for all of the one or more deviation tasks until the adjustment of the control parameters is completed.

[0233] When it is determined in step S175 that the adjustment of the control parameters for all of one or more deviation tasks is completed, the adjustment procedure of the control parameters is completed. When it is determined in step S173 that the difference between the real control signal and the virtual control signal corresponding to the real adjustment deviation task cannot be suppressed to a desired level by the selected control parameters, the data management device 300 executes steps S177, S178, and S179.

[0234] In step S177, the state change detection unit 343 detects a state change of at least one of the virtual local device 2 and the device cooperating with the virtual local device 2, based on the real control signal and the virtual control signal corresponding to the real adjustment deviation task. In step S178, the state change detection unit 343 causes the display unit to display that the state change has been detected.

[0235] In step S179, the reproducing unit 344 causes the responsible virtual robot to reproduce the operation of the responsible local device 2 executing the change occurring task, based on the real control signal corresponding to the task (the change occurring task) in which the state change detection unit 343 has detected a state change. For example, the reproducing unit 344 generates a reproducing video of the operation of the local device 2 executing the change occurring task, based on the model of the virtual local device stored in the model storage unit 311 and the real control signal corresponding to the change occurring task, and causes the display unit or the like to display the video. After that, the data management device 300 stops the procedure for adjusting the control parameters.

[0236] FIG. 39 is a flowchart showing a modified example of the adjustment procedure of the control parameters. In this flowchart, steps S181 to S189 are the same as steps S171 to S179. The adjustment procedure of FIG. 39 further includes steps S191 to S193 after step S185 where the adjustment of the control parameters is completed. In this adjustment procedure, the data management device 300 executes steps S191, S192, and S193 in order. In step S191, the parameter acquisition unit 332 acquires the changed control parameters from the parameter storage unit 112 and registers them in the parameter storage unit 412. In step S192, the data management device 300 executes the above-mentioned comparison procedure. In step S193, the data management device 300 executes the same adjustment procedure as step S152. The added steps S191 to S193 reflect the change in the local device 2 in the parameters of the model of the corresponding virtual local device.

[0237] The data management procedure executed by the data management device 300 may further include a reproduction display procedure when an abnormality is detected, in addition to the reproduction display procedure when a state change is detected. FIG. 40 is a flow chart illustrating an example of the reproduction display procedure. As shown in FIG. 40, the data management device 300 executes steps S201 and S202 in order. In step S201, the reproduction unit 344 waits for the abnormality detection unit 345 to detect an abnormality in at least one of the local device 2 under control and the device with which the local device 2 cooperates, based on an alarm signal or the like generated by the upper controller 200. In step S202, the reproduction unit 344 causes the virtual local device under control to reproduce the operation of at least one of the local device 2 under control before and after the occurrence of the abnormality, based on the real control signal. This completes the reproduction display procedure.

[0238] (Environment information update procedure) As shown in Fig. 41, the data management device 300 executes steps S211, S212, S213, and S214 in this order. In step S211, the sensor information processing unit 351 acquires sensor information detected by the external sensor 5. In step S212, the sensor information processing unit 351 performs a predetermined process on the sensor information acquired from the external sensor 5. In step S213, the information update unit 352 updates the latest environmental information in the real information database 313 based on the processing result of the sensor information processing unit 351. In step S214, the real information collection unit 312 updates the environmental information in the environmental information storage unit 221 of the upper controller 200 in accordance with the update result of the latest environmental information. This completes the environmental information update procedure.

[0239] [Effects of this embodiment] As described above, the control system 3 includes the local controller 100 (robot controller) that causes the robots 2B, 2C, and 10 to execute a plurality of tasks included in the process for the workpiece 9 in the real space, the virtual local controller 400 (virtual robot controller) that causes the virtual robot to execute a plurality of tasks in the virtual space, the real information collection unit 312 that collects real execution status information that represents the execution status of each of the plurality of tasks by the local controller 100, the virtual information collection unit 314 that collects virtual execution status information that represents the execution status of each of the plurality of tasks by the virtual local controller 400, and the task comparison unit 316 that extracts one or more divergent tasks in which the real execution status information and the virtual execution status information diverge from each other among the plurality of tasks. In this case, since the divergence of the execution status can be confirmed for each of the plurality of tasks, it becomes easy to identify the cause of the divergence. Therefore, the control system 3 is effective in improving the accuracy of the production plan.

[0240] The real execution status information and the virtual execution status information may include the execution time of the corresponding task, so that the execution status can be easily quantified and the degree of deviation can be evaluated.

[0241] The control system 3 may further include a status comparison display unit 317 that displays on the display unit real execution status information of each of the multiple tasks collected by the real information collection unit 312 and virtual execution status information of each of the multiple tasks collected by the virtual information collection unit 314 in a comparative manner for each task, and a display form change unit 318 that displays on the display unit one or more deviation tasks in a display form different from that of the other tasks. In this case, the extraction results of one or more tasks by the task comparison unit 316 can be visually recognized by the user in an easy-to-understand manner.

[0242] The control system 3 may further include a real information database 313 that accumulates real control signals from the local controller 100, a virtual information database 315 that accumulates virtual control signals from the virtual local controller 400, a real signal extraction unit 321 that extracts real control signals corresponding to one or more deviation tasks from the real information database 313, and a virtual signal extraction unit 322 that extracts virtual control signals corresponding to one or more deviation tasks from the virtual information database 315. In this case, it becomes easier to identify the deviation cause.

[0243] The real information collecting unit 312 may collect real execution status information including the execution start time and execution completion time of each of the multiple tasks on the first timeline, the virtual information collecting unit 314 may collect virtual execution status information including the execution start time and execution completion time of each of the multiple tasks on the second timeline, the real information database 313 may store real control signals in association with the time along the first timeline, the virtual information database 315 may store virtual control signals in association with the time along the second timeline, the real signal extracting unit 321 may extract real control signals corresponding to one or more divergent tasks from the real information database 313 based on the execution start time and execution completion time on the first timeline, and the virtual signal extracting unit 322 may extract virtual control signals corresponding to one or more divergent tasks from the virtual information database 315 based on the execution start time and execution completion time on the second timeline. In this case, the control signals for each task can be easily compared.

[0244] The control system 3 may further include a signal comparison display unit 323 that displays on a display unit a comparison between the real control signal extracted by the real signal extraction unit 321 and the virtual control signal extracted by the virtual signal extraction unit 322. In this case, the difference between the real control signal and the virtual control signal in the deviation task can be visually recognized by the user in an easily understandable manner.

[0245] The control system 3 may further include a virtual adjustment unit 341 that adjusts parameters of the model of the virtual robot based on at least one of the real control signal extracted by the real signal extraction unit 321 and the virtual control signal extracted by the virtual signal extraction unit 322. In this case, the accuracy of reproducing the real space by the virtual space can be easily and continuously improved.

[0246] The control system 3 may further include a real adjustment unit 342 that adjusts parameters of the local controller 100 based on at least one of the real control signal extracted by the real signal extraction unit 321 and the virtual control signal extracted by the virtual signal extraction unit 322. In this case, the real space can be easily adjusted based on the virtual space.

[0247] The control system 3 may further include a state change detection unit 343 that detects a state change of at least one of the robots 2B, 2C, 10 and devices with which the robots 2B, 2C, 10 cooperate, based on at least one of the real control signal extracted by the real signal extraction unit 321 and the virtual control signal extracted by the virtual signal extraction unit 322. In this case, a state change of the device can be detected early.

[0248] The control system 3 may further include a reproducing unit 344 that, when the state change detection unit 343 detects a state change, causes the virtual robot to reproduce the behavior of the robot 2B, 2C, 10 that executes the task based on at least a real control signal corresponding to the task in which the state change has occurred. In this case, the effect of the state change on the behavior of the robot 2B, 2C, 10 can be visually recognized by the user in an easily understandable manner.

[0249] The control system 3 further includes an abnormality detection unit 345 that detects an abnormality in at least one of the robots 2B, 2C, 10 and a device with which the robots 2B, 2C, 10 cooperate, and when the abnormality detection unit 345 detects an abnormality, the reproduction unit 344 may cause the virtual robot to reproduce the behavior of at least one of the robots 2B, 2C, 10 before and after the occurrence of the abnormality based on the real control signal. In this case, the user can also visually recognize the behavior of the robots 2B, 2C, 10 when the abnormality is detected in an easily understandable manner.

[0250] The control system 3 further includes an environment information storage unit 221 that stores environment information, an environment update unit 222 that updates the environment information in the environment information storage unit 221 according to the operation of the robots 2B, 2C, and 10, an environment information storage unit 521 (virtual environment information storage unit) that stores virtual environment information, and an environment update unit 522 (virtual environment update unit) that updates the virtual environment information in the environment information storage unit 521 according to the operation of the virtual robot, and the local controller 100 may adjust the execution timing for each of the multiple tasks based on the environment information in the environment information storage unit 221, and the virtual local controller 400 may adjust the execution timing for each of the multiple tasks based on the virtual environment information in the environment information storage unit 521. In this case, it is more effective to compare the execution status for each task.

[0251] The control system 3 further includes a command output unit 215 that outputs an execution command for the next task based on the process and progress information of the process in the real space, and a command output unit 515 (virtual command output unit) that outputs an execution command for the next task based on the process and progress information of the process in the virtual space, and the local controller 100 may cause the robots 2B, 2C, and 10 to execute the next task corresponding to the execution command from the command output unit 215 while adjusting the execution timing based on the environment information in the environment information storage unit 221, and the virtual local controller 400 may cause the virtual robot to execute the next task corresponding to the execution command from the command output unit 515 while adjusting the execution timing based on the virtual environment information in the environment information storage unit 521. In this case, a comparison of the execution status for each task is more effective.

[0252] The control system 3 may further include a command output unit 215 that outputs an execution command for the next task based on the process and progress information of the process in the real space, and a command output unit 515 (virtual command output unit) that outputs an execution command for the next task based on the process and progress information of the process in the virtual space, and the local controller 100 may cause the robots 2B, 2C, 10 to execute the next task corresponding to the execution command from the command output unit 215, and the virtual local controller 400 may cause the virtual robot to execute the next task corresponding to the execution command from the command output unit 515. In this case, it is more effective to compare the execution status for each task.

[0253] The process may further include a machine task executed by the local device 2 (industrial machine), and the multiple tasks executed by the robot 2 may include a task executed before the machine task and a task executed after the machine task. In this case, it is more effective to compare the execution status of each task.

[0254] The multiple tasks may include a task for cooperating with the local device 2 (first industrial machine) and a task for cooperating with the local device 2 (second industrial machine). In this case, it is more effective to compare the execution status of each task.

[0255] Although the embodiments have been described above, the present disclosure is not necessarily limited to the above-described embodiments, and various modifications are possible without departing from the gist of the present disclosure. [Explanation of symbols]

[0256] 2...Local equipment (industrial machine, first industrial machine, second industrial machine), 2B, 2C, 10...Robot, 3...Control system, 9...Work, 100...Local controller (robot controller), 215...Command output section, 221...Environment information storage section, 222...Environment update section, 312...Real information collection section, 313...Real information database, 314...Virtual information collection section, 315...Virtual information database, 316...Task comparison section, 317...Situation comparison display section, 318...Table Display form change unit, 321...real signal extraction unit, 322...virtual signal extraction unit, 323...signal comparison display unit, 341...virtual adjustment unit, 342...real adjustment unit, 343...state change detection unit, 344...reproduction unit, 345...abnormality detection unit, 400...virtual local controller (virtual robot controller), 515...command output unit (virtual command output unit), 521...environment information storage unit (virtual environment information storage unit), 522...environment update unit (virtual environment update unit).

Claims

1. a robot controller that operates multiple joints of the robot in the real space for each of a plurality of tasks included in a process for a workpiece in the real space so that the robot executes the plurality of tasks; a virtual robot controller that operates articulated joints of the virtual robot in the virtual space for each of the plurality of tasks so that the virtual robot executes the plurality of tasks in the virtual space; a real information collecting unit that collects real execution status information representing an execution status of each of the plurality of tasks by the robot controller operating the multiple joints of the robot; a virtual information collection unit that collects virtual execution status information representing execution statuses of the plurality of tasks by the virtual robot controller operating the multiple joints of the virtual robot; a status comparison display unit that displays on a display unit the real execution status information of each of the plurality of tasks collected by the real information collecting unit and the virtual execution status information of each of the plurality of tasks collected by the virtual information collecting unit, in a comparative manner for each task; a real information database for storing real control signals from the robot controller; a virtual information database for storing virtual control signals from the virtual robot controller; a real signal extraction unit that extracts a real control signal corresponding to a deviation task, in which the real execution status information and the virtual execution status information are deviated from each other, from a real information database when the deviation task is selected by a user input from among the plurality of tasks; a virtual signal extracting unit that extracts a virtual control signal corresponding to the deviation task from the virtual information database.

2. The control system according to claim 1 , wherein the real execution status information and the virtual execution status information include execution times of corresponding tasks.

3. the real information collection unit collects the real execution status information including an execution start time and an execution completion time of each of the plurality of tasks in a first timeline; the virtual information collection unit collects the virtual execution status information including an execution start time and an execution completion time of each of the plurality of tasks in a second timeline; the real information database stores the real control signal in association with a time along the first timeline; The virtual information database stores the virtual control signal in association with a time along the second timeline; the real signal extraction unit extracts, from the real information database, a real control signal corresponding to the selected task based on the execution start time and the execution completion time on the first timeline; The control system according to claim 1 or 2, wherein the virtual signal extraction unit extracts a virtual control signal corresponding to the selected task from the virtual information database based on the execution start time and the execution completion time on the second timeline.

4. The control system according to any one of claims 1 to 3, further comprising a signal comparison display unit that displays on a display unit a comparison between the real control signal extracted by the real signal extraction unit and the virtual control signal extracted by the virtual signal extraction unit.

5. The control system according to any one of claims 1 to 4, further comprising a virtual adjustment unit that adjusts parameters of a model of the virtual robot based on at least one of the real control signal extracted by the real signal extraction unit and the virtual control signal extracted by the virtual signal extraction unit.

6. The control system according to any one of claims 1 to 5, further comprising a real adjustment unit that adjusts parameters of the robot controller based on at least one of the real control signal extracted by the real signal extraction unit and the virtual control signal extracted by the virtual signal extraction unit.

7. The control system according to any one of claims 1 to 6, further comprising a state change detection unit that detects a state change of at least one of the robot and a device with which the robot cooperates, based on at least one of the real control signal extracted by the real signal extraction unit and the virtual control signal extracted by the virtual signal extraction unit.

8. 8. The control system according to claim 7, further comprising a reproduction unit that, when the state change detection unit detects a state change, causes the virtual robot to reproduce an action of the robot executing the task based on at least the real control signal corresponding to the task in which the state change occurred.

9. An abnormality detection unit that detects an abnormality in at least one of the robot and a device with which the robot cooperates, 9. The control system according to claim 8, wherein, when the abnormality detection unit detects an abnormality, the reproduction unit causes the virtual robot to reproduce at least one of the movements of the robot before and after the occurrence of the abnormality based on the real control signal.

10. an environmental information storage unit that stores environmental information; an environment update unit that updates the environment information in the environment information storage unit in response to an operation of the robot; a virtual environment information storage unit for storing virtual environment information; a virtual environment update unit that updates the virtual environment information in the virtual environment information storage unit in response to an action of the virtual robot, the robot controller adjusts execution timings of the plurality of tasks based on the environmental information stored in the environmental information storage unit; 10. The control system according to claim 1, wherein the virtual robot controller adjusts the execution timing of each of the plurality of tasks based on the virtual environment information stored in the virtual environment information storage unit.

11. a command output unit that outputs a command to execute a next task based on the process and progress information of the process in the real space; a virtual command output unit that outputs a command to execute a next task based on the process and progress information of the process in the virtual space; the robot controller causes the robot to execute a next task corresponding to the execution command from the command output unit while adjusting an execution timing based on the environmental information from the environmental information storage unit; 11. The control system according to claim 10, wherein the virtual robot controller causes the virtual robot to execute a next task corresponding to an execution command from the virtual command output unit while adjusting execution timing based on the virtual environment information from the virtual environment information storage unit.

12. a command output unit that outputs a command to execute a next task based on the process and progress information of the process in the real space; a virtual command output unit that outputs a command to execute a next task based on the process and progress information of the process in the virtual space; the robot controller causes the robot to execute a next task corresponding to the execution command from the command output unit; The control system according to any one of claims 1 to 11, wherein the virtual robot controller causes the virtual robot to execute a next task corresponding to an execution command from the virtual command output unit.

13. The control system according to any one of claims 1 to 12, wherein the process further includes a machine task executed by an industrial machine, and the plurality of tasks executed by the robot include a task executed before the machine task and a task executed after the machine task.

14. The control system according to any one of claims 1 to 12, wherein the plurality of tasks includes a task for cooperating with a first industrial machine and a task for cooperating with a second industrial machine.

15. a robot controller causes a robot to execute a plurality of tasks included in a process for a workpiece in a real space, the robot controlling multiple joints of the robot in the real space for each of the plurality of tasks; operating articulated joints of the virtual robot in the virtual space for each of the plurality of tasks so that the virtual robot is caused to execute the plurality of tasks by a virtual robot controller in the virtual space; collecting real-time execution status information representing execution statuses of the plurality of tasks by the robot controller operating the articulated joints of the robot; Collecting virtual execution status information representing execution statuses of each of the plurality of tasks by the virtual robot controller operating the multiple joints of the virtual robot; displaying, on a display unit, the collected real execution status information of each of the plurality of tasks and the collected virtual execution status information of each of the plurality of tasks in a comparative manner for each task; storing real control signals from the robot controller in a real information database; storing virtual control signals from the virtual robot controller in a virtual information database; When a deviation task in which the real execution status information and the virtual execution status information are deviated is selected by a user input from among the plurality of tasks, a real control signal corresponding to the deviation task is extracted from a real information database; and extracting a virtual control signal corresponding to the deviation task from the virtual information database.

Citation Information

Patent Citations

  • Operation waveform diagnostic device for industrial robot

    JP1995160323A

  • Robot controller

    JP1995200019A

  • Control device and its control method

    JP2005316937A

  • Device, method, and program for work planning

    JP2016059985A

  • Monitor device, monitor system, monitor program and recording medium

    JP2017102620A