Control system and control method

By performing tasks in real and virtual spaces and comparing the performance, the problems of production planning accuracy and environmental adaptability were solved, and the efficient autonomous adaptation and task reorganization of the production system were realized.

CN115697648BActive Publication Date: 2026-07-10YASKAWA DENKI KK

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
YASKAWA DENKI KK
Filing Date
2021-06-08
Publication Date
2026-07-10

AI Technical Summary

Technical Problem

In existing technologies, it is difficult to guarantee the accuracy of production planning, the causes of deviations in production speed and quality are difficult to determine, and it is difficult to adapt flexibly to changes in the production environment.

Method used

The system employs a control system, including a robot controller, a virtual robot controller, a real information collection unit, a virtual information collection unit, and a task comparison unit. By performing tasks in real and virtual spaces, it collects and compares performance information, identifies deviations from the task, and enables autonomous adaptation to production changes.

Benefits of technology

It improves the accuracy of production planning, simplifies the setting of conditions for autonomously adapting to changes in the production environment and plans, makes it easier to identify the causes of deviations, and enables flexible reorganization and autonomous execution of tasks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115697648B_ABST
    Figure CN115697648B_ABST
Patent Text Reader

Abstract

The control system (3) includes: a local controller (100) that causes a robot (2B, 2C, 10) to execute a plurality of tasks included in processing for a workpiece (9) in a real space; a virtual local controller (400) that causes a virtual robot to execute the plurality of tasks in a virtual space; a real information collection section (312) that collects real execution status information indicating an execution status of each of the plurality of tasks by the local controller (100); a virtual information collection section (314) that collects virtual execution status information indicating an execution status of each of the plurality of tasks by the virtual local controller (400); and a task comparison section (316) that extracts one or more deviated tasks in the plurality of tasks in which the real execution status information and the virtual execution status information deviate.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to control systems and control methods. Background Technology

[0002] Patent document 1 discloses a processing system that includes a processing device for processing workpieces and a robot for transporting workpieces.

[0003] Existing technical documents

[0004] Patent documents

[0005] Patent document 1: Japanese Patent Application Publication No. 2019-209454. Summary of the Invention

[0006] The problem that the invention aims to solve

[0007] This disclosure provides an apparatus that is effective in improving the accuracy of production planning.

[0008] means for solving problems

[0009] One aspect of this disclosure relates to a control system comprising: a robot controller that causes a robot to perform multiple tasks involving the handling of a workpiece in a real space; a virtual robot controller that causes a virtual robot to perform multiple tasks in a virtual space; a real-world information collection unit that collects real-world execution status information, the real-world execution status information representing the execution status of the robot controller for each of the multiple tasks; a virtual-world information collection unit that collects virtual-world execution status information, the virtual-world execution status information representing the execution status of the virtual robot controller for each of the multiple tasks; and a task comparison unit that extracts one or more deviation tasks from the real-world execution status information and the virtual-world execution status information.

[0010] Another aspect of this disclosure relates to a control system comprising: a real controller that causes industrial machinery to perform multiple tasks involving the processing of a workpiece in a real space; a virtual controller that causes the industrial machinery to perform multiple tasks in a virtual space; a real information collection unit that collects real execution status information, the real execution status information representing the execution status of the real controller for each of the multiple tasks; a virtual information collection unit that collects virtual execution status information, the virtual execution status information representing the execution status of the virtual controller for each of the multiple tasks; and a task comparison unit that extracts one or more deviation tasks from the real execution status information and the virtual execution status information among the multiple tasks.

[0011] Another aspect of this disclosure relates to a control method comprising: in a real space, causing a robot to perform multiple tasks involving the processing of a workpiece via a robot controller; in a virtual space, causing a virtual robot to perform multiple tasks via a virtual robot controller; collecting real-world execution status information, the real-world execution status information representing the execution status of the robot controller for each of the multiple tasks; collecting virtual execution status information, the virtual execution status information representing the execution status of the virtual robot controller for each of the multiple tasks; and extracting one or more deviation tasks from the real-world execution status information and the virtual execution status information in the multiple tasks.

[0012] Invention Effects

[0013] According to this disclosure, an apparatus that is effective in improving the accuracy of production planning can be provided. Attached Figure Description

[0014] Figure 1 This is a schematic diagram illustrating the structure of a production system.

[0015] Figure 2 This is a schematic diagram illustrating the structure of a robot.

[0016] Figure 3 This is a block diagram showing the functional configuration of the upper-level controller and the local controller.

[0017] Figure 4 This is a table illustrating the allocation results of the processing of workpieces.

[0018] Figure 5 It is a table that displays device information.

[0019] Figure 6 It is a table that displays information about the workpiece.

[0020] Figure 7 It is a table that specifies the execution conditions.

[0021] Figure 8 It is a table that represents the contents of the instruction buffer.

[0022] Figure 9 This is a diagram illustrating the selection of the next task.

[0023] Figure 10 This is a diagram illustrating the selection of the next task.

[0024] Figure 11 This is a diagram illustrating the selection of the next task.

[0025] Figure 12 This is a schematic diagram illustrating a variation of the selection of the next task.

[0026] Figure 13 This is a schematic diagram illustrating another variation of the selection of the next task.

[0027] Figure 14 This is a block diagram illustrating the functional configuration of a data management device.

[0028] Figure 15 This is a block diagram illustrating the functional configuration of a data management device.

[0029] Figure 16 It is a table that displays a comparison of execution status.

[0030] Figure 17 This is a timing diagram that illustrates the comparison of control signals.

[0031] Figure 18 It is a diagram showing examples of tasks in progress.

[0032] Figure 19 This is a block diagram illustrating a modified example of a data management device.

[0033] Figure 20 This is a block diagram illustrating a modified example of a data management device.

[0034] Figure 21 This is a block diagram illustrating a modified example of a data management device.

[0035] Figure 22 This is a diagram illustrating the hardware structure of the control system.

[0036] Figure 23 This is a flowchart illustrating the progress management steps of the upper-level controller.

[0037] Figure 24 This is a flowchart illustrating the control steps of a local controller.

[0038] Figure 25 This is a flowchart illustrating a variation of the control steps.

[0039] Figure 26 This is a flowchart illustrating another variation of the control steps.

[0040] Figure 27 This is a flowchart illustrating the steps involved in collecting real-world information.

[0041] Figure 28 This is a flowchart illustrating the steps of virtual information collection.

[0042] Figure 29 This is a flowchart illustrating the steps for extracting deviations from the task.

[0043] Figure 30 This is a flowchart illustrating the comparison and display steps of the execution status.

[0044] Figure 31 This is a flowchart illustrating the steps for extracting control signals.

[0045] Figure 32 This is a flowchart illustrating the comparison and display steps of control signals.

[0046] Figure 33 This is a flowchart illustrating the steps involved in generating the example program.

[0047] Figure 34 This is a flowchart illustrating the steps involved in generating the conditions for whether an action can be taken.

[0048] Figure 35 This is a flowchart illustrating the steps involved in generating priorities.

[0049] Figure 36 This is a flowchart illustrating the adjustment steps.

[0050] Figure 37 This is a flowchart illustrating the steps for adjusting model parameters.

[0051] Figure 38 This is a flowchart illustrating the steps for adjusting control parameters.

[0052] Figure 39 This is a flowchart illustrating a variation of the steps for adjusting control parameters.

[0053] Figure 40 This is a flowchart illustrating the steps for reproducing the display.

[0054] Figure 41 This is a flowchart illustrating the steps for updating environmental information. Detailed Implementation

[0055] Hereinafter, the embodiments will be described in detail with reference to the accompanying drawings. In the description, elements having the same features or functions are labeled with the same reference numerals, and repeated descriptions are omitted.

[0056] [Production System]

[0057] Figure 1 The production system 1 shown is a system that produces workpieces through the coordinated operation of multiple local devices. Hereinafter, in the workpiece production process, all objects that will become the work objects of each local device will be referred to as "workpieces". For example, "workpieces" include the final product in production system 1, components of the final product, and units composed of multiple components.

[0058] Coordinated action means that multiple local devices operate in a manner that shares the multiple steps required to obtain at least one of the aforementioned final products. These multiple local devices can operate either by sharing the multiple steps required to obtain one final product per step unit, or by sharing the multiple steps required to obtain multiple final products per final product unit.

[0059] Production system 1 includes multiple local devices 2 and a control system 3. Local devices 2 are devices that directly perform operations on workpiece 9 at the production site. Direct operations include, for example, applying some form of energy to workpiece 9, such as heat, kinetic energy, or potential energy.

[0060] The multiple local devices 2 are, for example, industrial machinery. The multiple local devices 2 include at least one robot (at least one local device 2 is a robot). Additionally, the multiple local devices 2 include industrial machinery that collaborates with robots. Specific examples of industrial machinery that collaborates with robots include, in addition to other robots, NC machine tools, etc. Figure 1 The multiple local devices 2 shown include, but are not limited to, a transport device 2A, robots 2B and 2C, and a mobile robot 2D. The number and type of local devices 2 can be appropriately varied as long as at least one robot is included.

[0061] The conveying device 2A uses an electric motor or similar power source to transport the workpiece 9. Specific examples of the conveying device 2A include belt conveyors and roller conveyors. Robots 2B and 2C, as well as a mobile robot 2D, perform operations on the workpiece 9 transported by the conveying device 2A. Specific examples of operations on the workpiece 9 include the assembly of other workpieces 9 (e.g., sub-parts) relative to the workpiece 9 (e.g., base parts) transported by the conveying device 2A; the fastening (e.g., bolting) and joining (e.g., welding) of parts within the workpiece 9 transported by the conveying device 2A; the feeding of the workpiece 9 into an NC machine tool located around the conveying device 2A; and the removal of the workpiece 9 from the NC machine tool.

[0062] Robots 2B and 2C are multi-joint robots with a base 11 and a front end 18. Robots 2B and 2C perform tasks on workpiece 9 by changing the position / pose of the front end 18 relative to the base 11 through the compound movements of their multiple joints. For example, robots 2B and 2C are 6-axis vertical multi-joint robots, such as... Figure 2As shown, the device includes a base 11, a rotating part 12, a first arm 13, a second arm 14, a third arm 17, a front end portion 18, and actuators 41, 42, 43, 44, 45, and 46. The base 11 is disposed around the transport device 2A. The rotating part 12 is disposed on the base 11 in a manner that allows rotation about a vertical axis 21. The first arm 13 is connected to the rotating part 12 in a manner that allows it to swing about an axis 22 that intersects (e.g., is orthogonal) to the axis 21. This intersection also includes a torsional relationship, such as a three-dimensional intersection. The second arm 14 is connected to the front end portion of the first arm 13 in a manner that allows it to swing about an axis 23 that is substantially parallel to the axis 22. The second arm 14 includes an arm base 15 and an arm end portion 16. The arm base 15 is connected to the front end portion of the first arm 13 and extends along an axis 24 that intersects (e.g., is orthogonal) to the axis 23. The arm end portion 16 is connected to the front end portion of the arm base 15 in a manner that allows rotation about the axis 24. The third arm 17 is connected to the front end of the arm end 16 in a manner that it swings about an axis 25 that intersects (e.g., is orthogonal) to the axis 24. The front end 18 is connected to the front end of the third arm 17 in a manner that it rotates about an axis 26 that intersects (e.g., is orthogonal) to the axis 25. Working tools such as hands, suction nozzles, and welding torches are mounted on the front end 18.

[0063] Thus, robots 2B and 2C have: a joint 31 connecting the base 11 and the rotating part 12; a joint 32 connecting the rotating part 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 front end 18.

[0064] Actuators 41, 42, 43, 44, 45, and 46 include, for example, electric motors and reducers, driving joints 31, 32, 33, 34, 35, and 36 respectively. For example, actuator 41 causes the rotating part 12 to rotate about axis 21, actuator 42 causes the first arm 13 to swing about axis 22, actuator 43 causes the second arm 14 to swing about axis 23, actuator 44 causes the arm end 16 to rotate about axis 24, actuator 45 causes the third arm 17 to swing about axis 25, and actuator 46 causes the front end 18 to rotate about axis 26.

[0065] Furthermore, the specific structures of robots 2B and 2C can be modified appropriately. For example, robots 2B and 2C can be redundant 7-axis robots by adding one more joint to the aforementioned 6-axis vertical joint robot, or they can be so-called scalar joint robots.

[0066] return Figure 1Mobile robot 2D is a multi-jointed robot capable of autonomous movement. Mobile robot 2D has a robot 10 and an unmanned transport vehicle 50, configured similarly to robots 2B and 2C. The unmanned transport vehicle 50 autonomously moves to transport robot 10. A specific example of the unmanned transport vehicle 50 is an electric AGV (Automated Guided Vehicle). Robot 10 performs work on workpiece 9 by changing the position / posture of its front end 18 relative to the unmanned transport vehicle 50 through complex multi-joint movements.

[0067] The production system 1 may also include an external sensor 5. The external sensor 5 detects the state of the operating environment (hereinafter referred to as "environmental state") of the multiple local devices 2. A specific example of the external sensor 5 is a camera that captures images of the operating 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 specified location using a laser or the like, or it may be a sensor that detects the size, etc., of the workpiece 9. The production system 1 may also include multiple external sensors 5.

[0068] Control system 3 controls multiple local devices 2. The structure of control system 3 is illustrated in detail below.

[0069] [Control System]

[0070] In production system 1, there are instances where the target production speed of workpiece 9 deviates from the actual production speed of workpiece 9. Additionally, there are instances where the target quality of workpiece 9 deviates from the actual quality of workpiece 9. These deviations will be referred to as "deviations in production status." When the processing of workpiece 9 involves multiple tasks, it is difficult to determine the cause of the deviations in production status based solely on the aforementioned deviations in production speed or quality of workpiece 9.

[0071] The control system 3 includes: a local controller (real controller) that causes the local device 2 to perform multiple tasks related to workpiece processing in the real space; a virtual local controller (virtual controller) that causes a virtual local device to perform multiple tasks in a virtual space; a real information collection unit that collects real execution status information showing the execution status of the local controller for each of the multiple tasks; a virtual information collection unit that collects virtual execution status information showing the execution status of the virtual local controller for each of the multiple tasks; and a task comparison unit that extracts one or more deviation tasks from the real execution status information and virtual execution status information. Therefore, it is possible to confirm the deviation of the execution status for each of the multiple tasks, thus easily determining the cause of the deviation in the production status.

[0072] In production system 1, there are situations requiring flexible adaptation to changes in the production plan, including changes in the objects being produced. Additionally, there are situations requiring flexible adaptation to changes in the production environment, such as changes in the type, number, and configuration of local equipment 2. In contrast, enabling local equipment 2 to autonomously adapt to changes in the production plan and the production environment is effective. However, complex condition settings are required to enable the local controller to determine the tasks to be performed and the appropriate execution timing. In systems where autonomy is granted through complex condition settings, it becomes difficult to further adapt to new production plans or production environments that were not initially anticipated.

[0073] Therefore, the control system 3 may also include: an instruction output unit that outputs an execution instruction for the next task based on the processing of multiple tasks for the workpiece and the progress information of that processing; an environment information storage unit that stores environment information; a local controller that causes the local device 2 to execute the next task based on the execution instruction output from the instruction output unit and the environment information stored in the environment information storage unit; and an environment update unit that updates the environment information stored in the environment information storage unit according to the actions of the local device 2. By providing the execution instruction for the next task to the local controller based on the environment information, it is not necessary to determine the next task to be executed in the local controller based on the environment information. Therefore, the condition setting for granting autonomy to the local device 2 is simplified. Thus, autonomous execution of each task by the local device 2 can be easily achieved. Therefore, by using the simple processing of outputting the execution instruction for the next task based on the progress of multiple tasks and updating the environment information according to the actions of the local device 2, multiple tasks can be easily executed in an appropriate order. Therefore, multiple tasks executed by each local device 2 can be easily reorganized according to changes in the production plan or the production environment.

[0074] like Figure 1 As shown, the control system 3 has multiple local controllers 100, a higher-level controller 200 (unit controller), and a data management device 300. The multiple local controllers 100 control multiple local devices 2 respectively.

[0075] Multiple local controllers 100 respectively cause the local device 2 (hereinafter referred to as "governing local device 2") of the controlled object to perform multiple tasks included in the processing of the workpiece 9 in the real space. The real space is the space in which the governing local device 2 actually exists.

[0076] Multiple local controllers 100 can also adjust the execution timing for each of the multiple tasks based on the environmental information stored in the aforementioned environmental information storage unit. Furthermore, each local controller 100 can cause the local device 2 to execute the next task corresponding to the execution instruction from the aforementioned instruction output unit. For example, the multiple local controllers 100 can each cause the local device 2 to execute the next task based on the aforementioned execution instruction and the aforementioned environmental information. For example, the local controller 100 adjusts the execution timing based on the environmental information stored in the aforementioned environmental information storage unit, and causes the local device 2 to execute the next task corresponding to the execution instruction from the aforementioned instruction output unit.

[0077] In the diagram, the control system 3 has four local controllers: 100A, 100B, 100C, and 100D. Local controller 100A controls the conveying device 2A, local controller 100B is the robot controller for robot 2B, local controller 100C is the robot controller for robot 2C, and local controller 100D is the robot controller for mobile robot 2D. The number of local controllers 100 and the structure of each local controller 100 can be appropriately changed according to the number and type of local devices 2.

[0078] The upper-level controller 200 includes the aforementioned instruction output unit, environment information storage unit, and environment update unit, and synchronously communicates with multiple local controllers 100. Synchronous communication refers to communication with the multiple local controllers 100 every one cycle, synchronized with a synchronization frame of a certain period (the aforementioned communication cycle). Based on the processing of workpiece 9 and the progress information of that processing, the upper-level controller 200 outputs an execution instruction for the next task to each of the multiple local controllers 100, and updates the environment information according to the actions of the multiple local devices 2. Furthermore, the upper-level controller 200 updates the processing progress information for workpiece 9 based on the execution status of the tasks by the multiple local devices 2.

[0079] The data management device 300 includes the aforementioned virtual local controller, the aforementioned real-world information collection unit, the aforementioned virtual information collection unit, and the aforementioned task comparison unit, and communicates synchronously or asynchronously with the upper-level controller 200. The data management device 300 collects the aforementioned real-world execution status information from multiple local controllers 100 via the upper-level controller 200. The data management device 300 includes multiple virtual local controllers, each corresponding to one of the multiple local controllers 100, and collects the aforementioned virtual execution status information from these multiple virtual local controllers. The structure of the local controller 100, the upper-level controller 200, and the data management device 300 will be specifically illustrated below.

[0080] like Figure 3As shown, the upper-level controller 200, as a functional component (hereinafter referred to as a "functional block"), includes a processing database 211, an order acquisition unit 212, a processing allocation unit 213, a processing storage unit 214, an instruction output unit 215, a progress update unit 216, an environment information storage unit 221, and an environment update unit 222.

[0081] The processing database 211 stores multiple processes of the production system 1 for each of the various workpieces 9 as objects. Each process includes identification information for each of the multiple tasks for workpiece 9, the execution order of the multiple tasks, and identification information of the local device 2 that executes each of the multiple tasks.

[0082] Multiple tasks can also include tasks performed by different local devices 2. For example, multiple tasks can also include multiple tasks performed by robots 2B, 2C, or mobile robot 2D, and more than one task performed by other local devices 2. A task is a set of work units performed by one local device 2. Multiple tasks performed by robots 2B, 2C, or mobile robot 2D can also include multiple tasks that cause more than one of the same joints to move. For example, in any of the multiple tasks, the position / posture of the front end 18 is adjusted by the combined movements of joints 31, 32, 33, 34, 35, and 36, but depending on the content of the task, one of joints 31, 32, 33, 34, 35, and 36 may not move. Specific examples of tasks performed by robots 2B, 2C, or mobile robot 2D include tasks such as picking up parts and transporting them to a designated location, fastening two parts (e.g., bolting), welding two parts, bonding two parts, and picking up assemblies of more than two parts and transporting them to a designated location. Each task may include an action that moves the front end 18 to a position to pick up a workpiece or tool, or an action that moves the front end 18, after releasing the workpiece or tool, to a position away from the workpiece or tool. Specific examples of tasks performed by other local devices 2 may include tasks that change the position / pose of a workpiece or tool in accordance with the tasks of robots 2B and 2C, and tasks that perform prescribed machining (e.g., cutting) on ​​a workpiece or tool configured by robots 2B and 2C.

[0083] The order acquisition unit 212 acquires the production order for 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, for example, a controller in the factory's MES (Manufacturing Execution System) that assigns the production orders for workpiece 9 according to the production plan to multiple factory units, and communicates synchronously or asynchronously with the superior controller 200.

[0084] The processing allocation unit 213 assigns processing to the workpiece 9 specified in the production order. For example, the processing allocation unit 213 assigns processing to the workpiece 9 specified in the production order based on the processing database 211. When the production order specifies multiple workpieces 9, the processing allocation unit 213 assigns processing to each of the multiple workpieces 9 based on the processing database 211. The multiple workpieces 9 may also include workpieces 9 of different types.

[0085] The processing and storage unit 214 stores the processing allocation results of the processing allocation unit 213 and the progress information (progress information in the real space) of each process. Figure 4 This is a table illustrating the allocation results of processing multiple workpieces 9. In this table, the execution order of multiple tasks in each process is shown according to the left-to-right arrangement.

[0086] exist Figure 4 In the above, task a1, a2, and a3, each consisting of 3 steps, are assigned to workpiece A. Task b1, b2, b3, b4, and b5, each consisting of 5 steps, are assigned to workpiece B. Task c1 and c2, each consisting of 2 steps, are assigned to workpiece C. Task d1, d2, and d3, each consisting of 3 steps, are assigned to workpiece D. Task e1, e2, e3, and e4, each consisting of 4 steps, are assigned to workpiece E.

[0087] Progress information for each process can indicate whether a task is inactive, in progress, or completed. Progress information can indicate inactive, in progress, or completed status, or it can include start and finish times. If the progress information includes start and finish times, and neither start nor finish time has been checked off, the task is inactive; if the start time has been checked off but the finish time has not, the task is in progress; and if the finish time has been checked off, the task is completed.

[0088] return Figure 3 The instruction output unit 215 outputs the execution instruction for the next task based on the processing and progress information stored in the processing storage unit 214. The next task among multiple tasks is a task whose previous task does not exist or whose previous task has been completed. The instruction output unit 215 outputs the execution instruction for the next task to one of the multiple local controllers 100 based on the processing database 211. For example, the instruction output unit 215 outputs the execution instruction for the next task to the local controller 100 that has established a correspondence between the local device 2 and the next task in the processing database 211.

[0089] In the processing and storage unit 214, when multiple processes are assigned to multiple workpieces 9, the instruction output unit 215 can also output multiple execution instructions for the next task for each of the multiple processes based on multiple progress information of each of the multiple processes. The instruction output unit 215 can also output the multiple execution instructions for the next task to the same local controller 100.

[0090] For example, in the processing and storage unit 214, if a first process is assigned to the first workpiece 9 and a second process is assigned to the second workpiece 9, the instruction output unit 215 may also output the execution instructions for the next task of the first process and the next task of the second process to the same local controller 100. In this case, the instruction output unit 215 may output the execution instructions for the next task of the second process after outputting the execution instructions for the next task of the first process, but before executing the next task. Alternatively, the instruction output unit 215 may output the execution instructions for the next task of the first process after outputting the execution instructions for the next task of the second process, but before executing the next task. Furthermore, the instruction output unit 215 may simultaneously output the execution instructions for the next task of the first process and the next task of the second process. Simultaneous output here means that the period for outputting the execution instructions for the next task of the first process and the period for outputting the execution instructions for the next task of the second process at least partially overlap.

[0091] In addition, the instruction output unit 215 can output the execution instruction of the next task according to the request from the local controller 100 in the above-mentioned synchronous communication, or it can output the execution instruction regardless of whether there is a request from the local controller 100.

[0092] The progress update unit 216 updates the progress information of the processing and storage unit 214 based on the execution status of the next task by the multiple local devices 2. For example, the progress update unit 216 updates the progress information of the processing and storage unit 214 based on the status information output by the local controller 100 (described later).

[0093] The environmental information storage unit 221 stores environmental information. This environmental information includes, for example, information related to the local device 2 (hereinafter referred to as "device information") and information related to the workpiece 9 (hereinafter referred to as "workpiece information"). Specific examples of device information include the position / pose information of the local device 2. Specific examples of the position / pose information of the local device 2 include the pose information of robots 2B and 2C, and the position / pose information of the mobile robot 2D. The pose information of robots 2B and 2C may be the motion angle information of joints 31, 32, 33, 34, 35, and 36, or the position / pose information of the front end 18. The position / pose information of the mobile robot 2D includes, for example, the position / pose information of the unmanned transport vehicle 50 and the pose information of robot 10. The pose information of robot 10 may be the motion angle information of joints 31, 32, 33, 34, 35, and 36, or the position / pose information of the front end 18 (based on the unmanned transport vehicle 50).

[0094] The device information includes information about control signals (hereinafter referred to as "actual control signals") generated between the local controller 100 and its managed local device 2. Actual control signals can be internal signals generated by the local controller 100 for controlling the managed local device 2, output signals output from the local controller 100 to the managed local device 2, or feedback signals output from the managed local device 2 to the local controller 100. Specific examples of internal signals include command values ​​for the position / attitude of the managed local device 2. Specific examples of output signals include output current values ​​output to the actuator of the managed local device 2. Specific examples of feedback signals include detected values ​​for position, attitude, velocity, etc., in the local device 2.

[0095] Figure 5 This is a table that displays device information. Figure 5 In this context, the identification information of local device 2 is associated with at least one status parameter that indicates information related to local device 2.

[0096] As a specific example of workpiece information, the position information of each workpiece 9 can be given. Figure 6 This is a table that displays information about the workpiece. Figure 6 In this process, the identification information of workpiece 9 (such as category and serial number) is correlated with the location information of workpiece 9.

[0097] The environmental update unit 222 updates the environmental information in the environmental information storage unit 221 based on the actions of the multiple local devices 2. For example, the environmental update unit 222 obtains the status information of each of the multiple local controllers 100 for the local device 2 and updates the device information based on the status information. The environmental update unit 222 can further update the workpiece information based on the status information of the local devices 2. For example, the environmental update unit 222 can also update the position information of each workpiece 9 based on the status information of the conveying device 2A obtained from the local controller 100A. The environmental update unit 222 can further update the environmental information based on the detection results of the external sensor 5.

[0098] like Figure 3 As shown, the local controller 100, as a functional block, includes a task program storage unit 111, a parameter storage unit 112, an instruction buffer 113, an environmental information acquisition unit 114, a selection unit 115, a control unit 116, and a status output unit 117.

[0099] The task program storage unit 111 (condition storage unit) stores one or more pre-set execution conditions for each of the multiple tasks. For example, the task program storage unit 111 stores multiple task programs 130 that determine the actions in the multiple tasks respectively. The multiple tasks here may also include tasks whose workpieces 9 are different from each other. Hereinafter, the workpiece 9 of the workpiece will be referred to as "workpiece 9".

[0100] Task program 130 includes a condition header 131 and an action program 132. Action program 132 indicates the actions governing local device 2. For example, action program 132 includes multiple movement commands arranged in a time sequence to cause governing local device 2 to perform a set of actions. In the case that governing local device 2 is robot 2B, 2C, or mobile robot 2D, the movement commands in action program 132 include the target position / target pose of front end 18.

[0101] Condition header 131 indicates the execution conditions of action procedure 132. Execution conditions are used to determine the timing of the execution of action procedure 132. Figure 7 This is a table showing an example of condition header 131. Execution conditions include the conditions for determining whether action procedure 132 (the corresponding task) can be executed and the priority of action procedure 132. The priority indicates the order of priority among the multiple task procedures 130 stored in the task procedure storage unit 111. When the priority is a numerical value indicating the priority order itself, the smaller the value, the higher the priority.

[0102] like Figure 7 As shown, the following are specific examples of whether a condition can be executed.

[0103] Example 1) There are no obstacles governing the operation of local device 2 within the range of its operation.

[0104] Example 2) The object workpiece 9 is located in the specified position.

[0105] Example 3) There are no other workpieces 9 at the destination of the object workpiece 9.

[0106] Example 4) The destination for transporting object workpiece 9 is open.

[0107] Specific examples of obstacles include other local devices 2, workpiece 9 held by other local devices 2, or people. Specific examples of the destination for the workpiece 9 can be NC machine tools, which are examples of other local devices 2. Specific examples of an open destination can be the case where the door of the NC machine tool is open.

[0108] As described above, the processing of a workpiece 9 may include tasks performed by other local devices 2 that govern the local device 2. A specific example of a task performed by another local device 2 is a machine task performed by industrial machinery (e.g., an NC machine tool). When the governing local device 2 is a robot 2B, 2C, or a mobile robot 2D, the multiple tasks performed by the governing local device 2 may include tasks performed before and after the machine task. Furthermore, the multiple tasks performed by the governing local device 2 may also include tasks performed in cooperation with other local devices 2 (first industrial machinery) and tasks performed in cooperation with other local devices 2 (second industrial machinery).

[0109] When the governing local device 2 is a robot 2B, 2C, or a mobile robot 2D, the multiple tasks performed by the governing local device 2 may include more than one interpolation task in addition to the multiple tasks for the object workpiece 9. Hereinafter, the multiple tasks for the workpiece 9 will be referred to as "work tasks", and the interpolation task will be referred to as "air cutting task".

[0110] An air-to-air task illustrates the actions of managing local device 2 between two work tasks out of a plurality of work tasks. Hereinafter, for ease of explanation, the two work tasks will be referred to as "first work task" and "second work task". A specific example of an air-to-air task is shown below.

[0111] Example 1) Move the front end 18 along a specified track from the position / posture at the completion of the first task to the position / posture at the start of the second task.

[0112] Example 2) Move the front end 18 along a specified track from the position / posture at the start of the first task to the position / posture at the start of the second task.

[0113] Example 3) Move the front end 18 along a specified track from the position / posture at the completion of the second task to the position / posture at the start of the first task.

[0114] Example 4) Move the front end 18 along a specified track from the position / posture at the start of the second task to the position / posture at the start of the first task.

[0115] These air-cutting tasks can also be set between two or more work tasks. In the processing database 211 and the processing storage unit 214, the processing corresponding to the workpiece 9 can include multiple work tasks, or it can exclude air-cutting tasks.

[0116] The parameter holding unit 112 stores one or more control parameters used to control the local device 2. Specific examples of these control parameters include position control gain, speed control gain, and current control gain.

[0117] The instruction buffer 113 stores the execution instructions for the next task obtained from the upper-level controller 200. As described above, the instruction output unit 215 may output multiple execution instructions for the next task to the same local controller 100. Therefore, the instruction buffer 113 can also be configured to store multiple execution instructions.

[0118] Figure 8 This is a table that represents the contents of the instruction buffer, which, as the execution instructions for multiple next tasks, shows the state storing the execution instructions for task a1 for workpiece A, the execution instructions for task b2 for workpiece B, and the execution instructions for task e3 for workpiece E.

[0119] Return to Figure 3 The environmental information acquisition unit 114 acquires environmental information stored in the environmental information storage unit 221. The environmental information acquisition unit 114 may request the output of environmental information from the upper-level controller 200 and acquire the environmental information output according to the request, or it may acquire environmental information output from the upper-level controller 200, for example, in the above-described synchronous communication, regardless of whether there is a request.

[0120] The selection unit 115 selects one of the multiple next tasks in the instruction 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 environment information in the environment information storage unit 221. For example, the selection unit 115 confirms whether each of the multiple next tasks can be executed. For example, the selection unit 115 confirms whether the environment information satisfies the execution conditions of each of the multiple next tasks. Furthermore, the selection unit 115 selects one of more than one executable next task based on priority. If only one next task can be executed, the selection unit 115 selects that next task. If two or more next tasks can be executed, the selection unit 115 selects the next task with the highest priority.

[0121] Before executing the next task, sometimes a cut-off task is required. For example, if the current position / pose of the front end 18 is different from the starting position / pose of the next task, a cut-off task from the current position / pose to the starting position / pose is required. In this case, the selection unit 115 may also include the cut-off task at the beginning of the next task. Hereinafter, the next task that includes the cut-off task at the beginning will be referred to as the "next task with cut-off". The selection unit 115 may also check whether the environmental information meets the conditions for the execution of the cut-off task at the same time as checking whether the environmental information meets the conditions for the execution of the next task with cut-off.

[0122] 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, the control unit 116 causes the local device 2 to execute the next task. For example, the control unit 116 causes the local device 2 to execute the next task selected by the selection unit 115. If the selection unit 115 selects a next task with a cut-off, the control unit 116 executes the next task after executing the cut-off task included at the beginning of the next task.

[0123] The status output unit 117 outputs the aforementioned status information of the local device 2 to the upper-level controller 200. The status information includes at least the position / pose information of the local device 2. The status output unit 117 may also output a task completion notification in the status information based on the completion of the task program 130.

[0124] The status output unit 117 can output status information according to the request from the upper controller 200 in the above-mentioned synchronous communication, or it can output status information regardless of whether there is a request from the upper controller 200.

[0125] The following is for reference Figure 9Specifically, this example illustrates the control performed by the local controller 100B when its instruction buffer 113 stores multiple next tasks. In this example, the multiple local devices 2 also include an NC machine tool 2F. A robot 2B is positioned between the NC machine tool 2F and the transport device 2A. Around the robot 2B, in addition to the NC machine tool 2F and the transport device 2A, worktables 91 and 92 are provided for temporarily placing workpieces 9.

[0126] The instruction buffer 113 of the local controller 100B stores the execution instructions for the first task, the second task, and the third task.

[0127] First task: Move the first workpiece 9A from NC machine tool 2F to worktable 91.

[0128] Second task: Transport the second workpiece 9B from workbench 92 and into NC machine tool 2F.

[0129] Third task: Transport the third workpiece 9C from workbench 91 to transport device 2A.

[0130] In the task program storage unit 111, the priority of the first task is higher than that of the second task, and the priority of the second task is higher than that of the third task.

[0131] Figure 9 (a) shows the state in which the first and third work tasks can be performed. In this case, the selection unit 115 selects the first work task, which has a higher priority than the third work task. Accordingly, the control unit 116 causes the robot 2B to perform the first work task (see reference). Figure 9 (b)

[0132] With the first task executed and workpiece 9 not present in the NC machine tool 2F, the second and third tasks can be executed (see reference). Figure 10 (a)). In this case, the selection unit 115 selects a second task with a higher priority than the third task. Accordingly, the control unit 116 causes the robot 2B to perform the second task (see reference). Figure 10 (b)

[0133] Having executed the first and second tasks, the only remaining task in the instruction register 113 is the third task. Since the third task can still be executed, the selection unit 115 selects it. Accordingly, the control unit 116 causes the robot 2B to execute the third task (see reference...). Figure 11 (a) and (b)).

[0134] The environmental information stored in the environmental information storage unit 221 may also include a waiting time corresponding to the completion time of the aforementioned machine task. As long as the time up to the completion time of the machine task is shown, the environmental information may include the waiting time in any form. For example, the environmental information may include a combination of the predetermined completion time of the aforementioned machine task and the current time, or it may include the length of time from the current time to the predetermined completion time.

[0135] The local controller 100 may also include a selection timing adjustment unit 121. When the instruction buffer 113 contains multiple next tasks, including a first task that can be executed after a machine task is completed and a second task that can already be executed, the selection timing adjustment unit 121 adjusts the selection timing of the next task by the selection unit 115 based on the priority and waiting time of the first and second tasks. For example, if the priority of the first task is higher than that of the second task and the waiting time is below 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.

[0136] Reference Figure 12 This example illustrates the processing of the selection timing adjustment unit 121 when the instruction buffer 113 of the local controller 100B stores the execution instructions for the first task, the second task, and the third task. In this example, the machining of the first workpiece 9A by the NC machine tool 2F corresponds to the aforementioned machine task. During the execution of the machine task (refer to...), Figure 12 (a) can only perform the third task (second task), and cannot perform the first task (first task) and the second task.

[0137] If the waiting time for the machine task during the execution of the first workpiece 9A by the NC machine tool 2F is below a predetermined threshold, the timing adjustment unit 121 sets the selection unit 115 to select the next task after the waiting time has elapsed. Therefore, even if the third work task can be executed, the control unit 116 does not allow the robot 2B to execute the third work task and waits for the waiting time to elapse.

[0138] During the timing when the selection unit 115 selects the next task, the waiting time mentioned above allows the first and third work tasks to be executed. Therefore, the selection unit 115 executes the first work task, which has a higher priority than the third task. Correspondingly, the control unit 116 causes the robot 2B to execute the first work task (see reference). Figure 12 (b)

[0139] The local controller 100 may also include an interrupt unit 122. When the instruction buffer 113 contains multiple next tasks, including a first task and a second task with a lower priority than the first task, and the first task can be executed while the local device 2 is executing the second task, the interrupt unit 122 causes the control unit 116 to interrupt the second task and the selection unit 115 to select the first task. Additionally, the interrupt unit 122 causes the execution instructions for the second task to return to the instruction buffer 113.

[0140] If the object workpiece 9 cannot be released during the execution of the second task, the interrupt unit 122 may, after the control unit 116 returns the governing local device 2 to the state before the start of the second task, cause the selection unit 115 to select the first task. For example, if the first task includes the transport of the first workpiece and the second task includes the transport of the second workpiece, and the interrupt unit 122 can execute the first task while the governing local device 2 is executing the second task, after the control unit 116 returns the governing local device 2 to the state before the start of the transport of the second workpiece, cause the selection unit 115 to select the first task, and return the execution instructions of the second task to the instruction buffer 113.

[0141] Reference Figure 13 This example illustrates the processing of the interrupt unit 122 when the robot 2B is able to perform the first task (first task) while performing the third task (second task).

[0142] Figure 13 (a) shows the state where, since the NC machine tool 2F is performing a machine task on the first workpiece 9A, and therefore the first work task is not executable, the control unit 116 causes the robot 2B to perform a third work task. The robot 2B transports the third workpiece 9C from the worktable 91 to the transport device 2A.

[0143] In this state, if the first work task can be performed, the interruption unit 122 causes the control unit 116 to interrupt the third work task. Since the third workpiece 9C has left the worktable 91 but has not yet reached the transport device 2A, it cannot be released. Therefore, the robot 2B, via the control unit 116, returns to the state before the start of the third work task. Thus, the third workpiece 9C returns to the worktable 91 (see reference). Figure 13 (b) Afterwards, the interruption unit 122 causes the selection unit 115 to select the first work task. After the control unit 116 causes the robot 2B to perform the air cut task that moves the front end 18 from the position / posture at the start of the third work task to the position / posture at the start of the first work task along a predetermined trajectory, the robot 2B performs the first work task.

[0144] The interrupt unit 122 may also prevent the control unit 116 from interrupting the second task, compared to the case where the control unit 116 interrupts the execution of the second task and the selection unit 115 selects the first task, in order to shorten the execution time of multiple processes by having the selection unit 115 select the first task after the second task is completed. For example, the interrupt unit 122 may also prevent the control unit 116 from interrupting the second task when the remaining time of the second task is below a predetermined threshold during the timing when the first task can be executed.

[0145] Corresponding to the configuration of the local controller 100 and the upper-level controller 200 as described above, the data management device 300 may also include: a virtual instruction output unit that outputs an execution instruction for the next task based on the processing and the progress information of the processing in the virtual space; a virtual environment information storage unit that stores virtual environment information; a virtual local controller that enables the virtual local device to execute the next task in the virtual space based on the execution instruction output from the virtual instruction output unit and the virtual environment information stored in the virtual environment information storage unit; and a virtual environment update unit that updates the virtual environment information stored in the virtual environment information storage unit according to the actions of the virtual local device.

[0146] For example, such as Figure 14 As shown, the data management device 300, as a functional block, includes a model storage unit 311, multiple virtual local controllers 400, and a virtual upper-level controller 500.

[0147] The model storage unit 311 stores models of multiple virtual local devices. Each virtual local device model includes parameters such as the configuration, structure, dimensions, and mass of its corresponding local device 2 in real space. The model storage unit 311 also stores models of the surrounding environment of the multiple virtual local devices in the virtual space. The surrounding environment models include parameters such as the configuration, three-dimensional shape, and dimensions of objects surrounding the multiple local devices 2 in real space. The model storage unit 311 may also contain a standard time representing the responsiveness of the virtual local devices to control commands. A specific example of a standard time is the duration of an action corresponding to a control command. The duration of an action is, for example, the time from the start of the output of the control command to the completion of the corresponding virtual local device's action.

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

[0149] The virtual local controllers 400B, 400C, and 400D, which correspond to the local controllers 100B, 100C, and 100D as robot controllers, are virtual robot controllers. The virtual local devices controlled by virtual local controllers 400B and 400C are virtual robots, and the virtual local devices controlled by virtual local controller 400D are virtual mobile robots.

[0150] Multiple virtual local controllers 400 control multiple virtual local devices corresponding to multiple local devices 2 in a virtual space. Each virtual local controller 400 causes the virtual local device of the controlled object to perform multiple tasks in the virtual space for the processing of the object workpiece 9.

[0151] Hereinafter, the virtual local device controlled by the virtual local controller 400 will be referred to as the "governing virtual local device", and the local device 2 corresponding to the governing virtual local device will be referred to as the "governing local device 2". The governing local device 2 is the local device 2 that takes the local controller 100 corresponding to the virtual local controller 400 as its control object.

[0152] The virtual space is a simulated, imaginary space that does not exist in the context of the local device 2. In the virtual space, enabling the virtual local device to perform a task means simulating the actions of the local device 2 in the real space when performing the task, based on the model information of the local device 2 stored in the model storage unit 311.

[0153] Multiple virtual local controllers 400 can adjust the execution timing for each of the multiple tasks based on the virtual environment information stored in the virtual environment information storage unit. Furthermore, each virtual local controller 400 can also cause the managed virtual local device to execute the next task corresponding to the execution instruction from the virtual instruction output unit. For example, the multiple virtual local controllers 400 can each cause the managed virtual local device to execute the next task based on the execution instruction and the virtual environment information. For example, the virtual local controller 400 adjusts the execution timing based on the virtual environment information stored in the virtual environment information storage unit and causes the managed virtual local device to execute the next task corresponding to the execution instruction from the virtual instruction output unit.

[0154] The virtual upper-level controller 500, as a more subdivided functional block, has processing database 511, order acquisition unit 512, processing allocation unit 513, processing storage unit 514, instruction output unit 515, progress update unit 516, environment information storage unit 521, and environment update unit 522, respectively corresponding to the processing database 211, order acquisition unit 512, processing allocation unit 513, processing storage unit 514, instruction output unit 515, progress update unit 516, environment information storage unit 521, and environment update unit 522.

[0155] Similar to processing database 211, processing database 511 stores multiple processing steps for each of the various workpieces 9 targeted by production system 1. Order acquisition unit 512 acquires, for example, simulated production orders from input device 396, described later.

[0156] Processing allocation unit 513, like processing allocation unit 213, allocates processing to workpiece 9 specified in the production order. For example, processing allocation unit 513 allocates processing to workpiece 9 specified in the production order based on processing database 511. Processing storage unit 514, like processing storage unit 214, stores the allocation results of processing by processing allocation unit 513 and the progress information (progress information in virtual space) of each process.

[0157] Similar to instruction output unit 215, instruction output unit 515 (virtual instruction output unit) outputs the execution instruction for the next task based on the processing stored in processing storage unit 514 and the progress information of that processing in virtual space. Instruction output unit 515 outputs the execution instruction for the next task to one of the multiple virtual local controllers 400 based on processing database 511. For example, instruction output unit 515 outputs the execution instruction for the next task to the virtual local controller 400 of the virtual local device 2 that corresponds to the next task in processing database 511.

[0158] Similar to progress update unit 216, progress update unit 516 updates the progress information of processing and saving unit 514 based on the execution status of multiple virtual local devices for the next task. For example, progress update unit 516 updates the progress information of processing and saving unit 514 based on the status information output by virtual local controller 400 (described later).

[0159] The Environmental Information Storage Unit 521 (Virtual Environmental Information Storage Unit) stores virtual environmental information. The structure of the virtual environmental information is the same as that of the environmental information. The virtual environmental information includes equipment information and workpiece information in the virtual space.

[0160] As a specific example of device information in virtual space, the location / pose information of virtual local devices in virtual space can be cited. Device information in virtual space includes control signals (hereinafter referred to as "virtual control signals") generated between the virtual local controller 400 and the virtual local devices it governs.

[0161] The virtual control signal can be an internal signal generated by the virtual local controller 400 for controlling the virtual local device, an output signal output from the virtual local controller 400 to the virtual local device, or a feedback signal output from the virtual local device to the virtual local controller 400. Specific examples of internal signals include command values ​​for the position / attitude of the virtual local device. Specific examples of output signals include output current values ​​for the actuators of the virtual local device. Specific examples of feedback signals include simulation results of the operation of the virtual local device 2 based on output signals and model information stored in the model storage unit 311.

[0162] As a specific example of workpiece information in virtual space, the position information of each workpiece 9 in virtual space can be given.

[0163] The Environment Update Unit 522 (Virtual Environment Update Unit) updates the virtual environment information of the Environment Information Storage Unit 521 based on the actions of multiple virtual local devices.

[0164] The virtual local controller 400, as a more subdivided functional block, has a task program storage unit 411, a parameter storage unit 412, an instruction buffer 413, an environment 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 interrupt unit 422, respectively corresponding to the task program storage unit 111, the parameter storage unit 112, the instruction buffer 413, the environment information acquisition unit 414, the selection unit 415, the control unit 416, the status output unit 417, the selection timing adjustment unit 421, and the interrupt unit 422.

[0165] Similar to task program storage unit 111, task program storage unit 411 stores one or more pre-set execution conditions for each of the multiple tasks. For example, task program storage unit 411 stores the aforementioned multiple task programs 130. Similar to parameter storage unit 112, parameter holding unit 412 stores one or more control parameters for controlling the virtual local device.

[0166] Like instruction buffer 113, instruction buffer 413 stores the execution instructions for the next task obtained from the virtual upper controller 500. Like environment information acquisition unit 114, environment information acquisition unit 414 acquires environment information stored in environment information storage unit 521. Like selection unit 115, selection unit 415 selects one of the multiple next tasks from instruction buffer 413 based on the execution conditions (condition header 131) of each of the multiple next tasks in task program storage unit 411 and the environment information in environment information storage unit 521.

[0167] The control unit 416, 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, causes the managed virtual local device to execute the next task. For example, the control unit 416 causes the managed 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 the "selected task". Specifically, the control unit 416 simulates the actions of the managed local device 2 in the real space when executing the selected task, based on the model information of the managed local device 2 stored in the model storage unit 311. Similarly, the status output unit 417 outputs the aforementioned status information of the managed virtual local device to the virtual upper controller 500.

[0168] Similar to selection timing adjustment unit 121, selection timing adjustment unit 421 adjusts selection unit 415's selection timing for the next task. For example, if the instruction buffer 413 has multiple next tasks, including a first task that can be executed after the machine task is completed and a second task that can already be executed, selection timing adjustment unit 421 adjusts selection unit 415's selection timing for the next task based on the priority and waiting time of the first and second tasks.

[0169] Similarly to interrupt unit 122, if the instruction buffer 413 contains a first task and a second task with a lower priority than the first task, and the first task can be executed while the virtual local device is executing the second task, then the control unit 416 interrupts the second task and the selection unit 415 selects the first task.

[0170] like Figure 15 As shown, the data management device 300, as a functional block, also includes 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 status comparison display unit 317, a display mode change unit 318, a real signal extraction unit 321, a virtual signal extraction unit 322, and a signal comparison display unit 323.

[0171] The reality information collection unit 312 collects reality execution status information representing the execution status of each of the multiple tasks by the local controller 100. The reality execution status information represents a state generated in the real space through the combined actions of joints 31, 32, 33, 34, 35, and 36. The state in the real space includes not only the state of the real space but also the elapsed time in the real space. The reality execution status information includes the execution time of the corresponding task. The execution time can be the start time, the completion time, or the length of time from the start time to the completion time. For example, the reality information collection unit 312 collects reality execution status information including the execution start time and execution completion time of each of the multiple tasks in a first timeline. The first timeline is, for example, a time axis based on a timer within the upper-level controller 200. The reality execution status information may also include the state information of the object workpiece 9 after executing the corresponding task. An example of the state information of the object workpiece 9 is the position / posture of the object workpiece 9 after transportation.

[0172] The reality information collection unit 312 obtains reality execution status information from the processing and storage unit 214 of the upper-level controller 200. The reality information collection unit 312 can further obtain the aforementioned reality control signal from the environment information storage unit 221 of the upper-level controller 200. The reality information collection unit 312 can obtain the environment information including the aforementioned reality control signal from the environment information storage unit 221 in a correspondence with the time in the first timeline. The reality information collection unit 312 can request the output of reality execution status information and reality control signal from the upper-level controller 200, and obtain the reality execution status information and reality control signal output according to the request; it can also obtain the reality execution status information and reality control signal output from the upper-level controller 200 regardless of whether there is a request.

[0173] The reality information database 313 stores reality execution status information and reality control signals collected by the reality information collection unit 312. The reality information database 313 can store reality control signals in a correspondence with times along the aforementioned first timeline. The reality information database 313 can also store environmental information, including the aforementioned reality control signals, in a correspondence with times along the aforementioned first timeline.

[0174] The virtual information collection unit 314 collects virtual execution status information representing the execution status of each of the multiple tasks by the virtual local controller 400. The virtual execution status information represents a state generated in virtual space through the combined actions of joints 31, 32, 33, 34, 35, and 36. In addition to the state of the virtual space, the state in the virtual space also includes the elapsed time in the virtual space. The virtual execution status information includes the execution time of the corresponding task. The execution time can be the start time, the completion time, or the length of time from the start time to the completion time. For example, the virtual information collection unit 314 collects virtual execution status information including the start time and completion time of multiple tasks in a second timeline. The second timeline is, for example, a time axis based on a timer within the data management device 300. The virtual execution status information may also include the state information of the object workpiece 9 after executing the corresponding task. An example of the state information of the object workpiece 9 is the position / posture of the object workpiece 9 after transportation.

[0175] The virtual information collection unit 314 obtains virtual execution status information from the processing and storage unit 514. The virtual information collection unit 314 can also obtain the aforementioned virtual control signals from the environment information storage unit 521. The virtual information collection unit 314 can also obtain virtual environment information containing the aforementioned virtual control signals from the environment information storage unit 521 in a correspondence with the time in the second timeline.

[0176] The virtual information database 315 stores virtual execution status information and virtual control signals collected by the virtual information collection unit 314. The virtual information database 315 may also store virtual control signals in a correspondence with times along the second timeline. The virtual information database 315 may also store virtual environment information containing the virtual control signals in a correspondence with times along the second timeline.

[0177] The task comparison unit 316 extracts one or more deviation tasks from the actual execution status information and virtual execution status information among multiple tasks. Deviation here refers to a difference between the actual execution status information and the virtual execution status information exceeding a predetermined level. The task comparison unit 316 may compare the actual execution status information with the virtual execution status information for at least one of the multiple tasks, or it may not necessarily compare the actual execution status information with the virtual execution status information for all of the multiple tasks. The following shows a specific example of the task comparison unit 316 extracting deviation tasks.

[0178] Example 1) Extract a deviation task where the difference between the execution time length based on the actual execution status information (the time length from start to finish) and the execution time length based on the virtual execution status information exceeds the specified level.

[0179] Example 2) The difference between the above-mentioned state information of object workpiece 9 based on actual execution status information and the above-mentioned state information of object workpiece 9 based on virtual execution status information exceeds a specified level by more than one deviation task.

[0180] The status comparison display unit 317 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 and displays it on the display unit (e.g., the display device 395 described later).

[0181] Figure 16 This is a table that compares and displays the actual execution status information with the virtual execution status information. The table compares the execution time based on the actual execution status information with the execution time based on the virtual execution status information for each of multiple tasks. Additionally, the table compares and displays the status information of object artifact 9 based on the actual execution status information with the status information of object artifact 9 based on the virtual execution status information for each of multiple tasks.

[0182] The display mode changing unit 318 causes one or more off-task tasks to be displayed on the display unit in a display mode different from that of other tasks. The display mode changing unit 318 in... Figure 16 In the example table, rows that deviate from the task are highlighted by changing colors and other styles.

[0183] The reality signal extraction unit 321 extracts reality control signals corresponding to one or more deviation tasks from the reality information database 313. For example, the reality signal extraction unit 321 extracts reality control signals corresponding to one or more deviation tasks from the reality information database 313 based on the execution start time and execution completion time in the first timeline. More specifically, the reality signal extraction unit 321 extracts reality control signals from the reality information database 313 in the first timeline that correspond to the times from the execution start time to the execution completion time of the deviation task and stores them accordingly.

[0184] The virtual signal extraction unit 322 extracts virtual control signals corresponding to one or more off-tasks from the virtual information database 315. For example, the virtual signal extraction unit 322 extracts virtual control signals corresponding to one or more off-tasks from the virtual information database 315 based on the execution start time and execution completion time in the second timeline. More specifically, the virtual signal extraction unit 322 extracts virtual control signals from the virtual information database 315 in the second timeline that are stored in correspondence with the times from the execution start time to the execution completion time of the off-task.

[0185] The signal comparison display unit 323 compares the real control signal extracted by the real signal extraction unit 321 with the virtual control signal extracted by the virtual signal extraction unit 322 and displays the comparison on a display unit (e.g., the display device 395 described later). For example, the signal comparison display unit 323 compares and displays the timing diagram of the real control signal and the timing diagram of the virtual control signal according to the type of control signal, while keeping the start time of the deviation from the task consistent.

[0186] Figure 17 This is a chart comparing real and virtual control signals. The chart includes a comparison of signal categories A and B. Signal category A governs the control signal from local device 2 to the first actuator, and signal category B governs the control signal from local device 2 to the second actuator. The first and second actuators cooperate. Figure 17 (a) is a timing diagram of the actual control signal A1 for signal category A. Figure 17 (b) is the timing diagram of the virtual control signal A2 corresponding to signal category A. Figure 17 (c) is a timing diagram of the actual control signal B1 for signal category B. Figure 17 (d) is the timing diagram of the virtual control signal B2 corresponding to signal category B.

[0187] Will Figure 17 The chart of (a) and Figure 17 Comparing the graph in (b), it can be seen that there is a difference between the period T1 when the real control signal A1 is low and the period T2 when the virtual control signal A2 is low. Figure 17 The chart of (a) and Figure 17 Comparing the graph in (c), it can be seen that the period T1 during which the actual control signal A1 is low corresponds to the period T11 during which the actual control signal B1 is high. Figure 17 The chart in (b) and Figure 17 By comparing the graphs in (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.

[0188] Then, based on these charts, it is estimated that the deviation between the real control signal B1 and the virtual control signal B2 is the main reason for 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 action of the second actuator in the real space and the action of the second actuator in the virtual space is the active cause of the above deviation. More specifically, in the local device 2, it is estimated that the difference between the part driven by the second actuator and the model information of that part in the model storage unit 311 is the main cause of the above deviation.

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

[0190] Figure 18 This is a diagram showing an example of the progress of multiple processes. For example, the progress display unit 324 displays the processing of each of the multiple workpieces through a flowchart, and in each flowchart, the task being performed by the production system 1 is highlighted. Figure 18 The diagrams, from left to right, show the flowcharts for processing workpiece A, workpiece B, workpiece C, workpiece D, and workpiece E.

[0191] like Figure 19 As shown, the data management device 300 may also 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.

[0192] The program acquisition unit 331 acquires the task program 130 of the work task registered through teaching from each local controller 100 and stores it in the task program storage unit 411 of the virtual local controller 400. After the work task is taught, the execution conditions of the work task may be undetermined. For example, the condition header 131 in the task program 130 may be blank.

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

[0194] The program generation unit 333 generates one or more empty-cut tasks based on the work tasks acquired by the program acquisition unit 331 and the model information stored in the model storage unit 311, and stores them in the task program storage unit 411. The program generation unit 333 generates empty-cut tasks by repeatedly adding path points between the start and end points of the empty-cut task that avoid conflict with surrounding objects, until conflict with surrounding objects can be avoided throughout the entire area from the start to the end point. The program generation unit 333 can also generate the above-mentioned empty-cut tasks for all combinations of two work tasks that are envisioned to be executed sequentially among multiple work tasks stored in the task program storage unit 411.

[0195] The program generation unit 333 (execution condition generation unit) generates at least a portion of the aforementioned execution conditions based on actions in the virtual spaces of multiple virtual local devices. For example, the program generation unit 333 generates the executable condition based on environment information stored in the virtual information database 315.

[0196] For example, the program generation unit 333 generates executable conditions for the first virtual local device's task and executable conditions for the second virtual local device based on the environmental information stored in the virtual information database 315, in order to avoid conflicts between a certain virtual local device (the first virtual local device) and other virtual local devices (the second virtual local device) in the virtual space. For example, when multiple tasks include a first robot task performed by a robot (e.g., robot 2B, 2C, or mobile robot 2D) and a second robot task performed by a second robot (e.g., robot 2B, 2C, or mobile robot 2D), the program generation unit 333 generates executable conditions for the first robot task and executable conditions for the second robot task, in order to avoid conflicts between the virtual robot corresponding to the robot and the second virtual robot corresponding to the second robot in the virtual space.

[0197] As an example, the program generation unit 333 exports the overlapping area between the motion region of the virtual robot performing the first robot task and the motion region of the second virtual robot performing the second robot task. It generates executable conditions for the first robot task in a manner that includes the second virtual robot not being located within the overlapping area, and also generates executable conditions for the second robot task in a manner that includes the first virtual robot not being located within the overlapping area. The program generation unit 333 registers the generated executable conditions in the condition header 131 of the task program 130 of the corresponding task.

[0198] The program generation unit 333 may also modify at least a portion of the execution conditions to shorten the execution time of multiple processes in the virtual space when multiple virtual local devices operate based on the generated execution conditions. For example, the program generation unit 333 repeats the following steps: randomly changing the priority combination that determines the priorities of multiple tasks, registering the priority combinations in the condition header 131 of the corresponding task program 130; and evaluating the execution time of the multiple processes in the changed priority combinations. The program generation unit 333 adopts the priority combination with the shortest execution time of the multiple processes and registers the adopted priority combination in the condition header 131 of the corresponding task program 130.

[0199] As explained above, the program stored by the task program storage unit 411 after the addition of the empty-cut task performed by the program generation unit 333 and the addition of the execution conditions performed by the program generation unit 333 are referred to as the "generated program".

[0200] The program distribution unit 335 outputs the program generated by 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-level controller 200.

[0201] like Figure 20 As shown, the data management device 300 may also include a virtual adjustment unit 341, a real-time adjustment unit 342, a state change detection unit 343, a reproduction unit 344, and an anomaly detection unit 345.

[0202] The virtual adjustment unit 341 adjusts the parameters of the models of the 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 is referred to as the "extracted real control signal", and the virtual control signal extracted by the virtual signal extraction unit 322 is referred to as the "extracted virtual control signal".

[0203] For example, the virtual adjustment unit 341 changes the parameters of the corresponding virtual local device model to make the control signal of the virtual local controller 400 closer to the extracted real control signal. As an example, the virtual adjustment unit 341 changes the parameters of the corresponding virtual local device model to reduce the difference between the extracted real control signal and the extracted virtual control signal. Specific examples of changing the parameters of the virtual local device model are shown below.

[0204] Example 1) Change the above configuration, structure, dimensions of each part, and mass of each part, etc.

[0205] Example 2) Change the above standard time according to the action time length of the local device 2 corresponding to the control command.

[0206] The reality adjustment unit 342 adjusts the control parameters (parameters of the parameter holding 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 reality adjustment unit 342 changes the parameters of the corresponding local controller 100 to make the control signal of the local controller 100 closer to the extracted virtual control signal. For example, the reality adjustment unit 342 changes the aforementioned parameters such as position control gain, speed control gain, or current control gain to reduce the difference between the extracted real control signal and the extracted virtual control signal. When the reality adjustment unit 342 changes the parameters of the parameter holding unit 112, the parameter acquisition unit 332 can also acquire the changed parameters from the parameter holding unit 112 and register them in the parameter holding unit 412.

[0207] If the difference between the extracted real control signal and the extracted virtual control signal is reduced by changing the parameters of the parameter holding unit 112 through the reality adjustment unit 342, there is a possibility that the difference between the extracted real control signal and the extracted virtual control signal will widen again if the changed parameters cover the parameter holding unit 412. In this case, the virtual adjustment unit 341 can further change the parameters of the virtual local device model to reduce the widening difference. Thus, the change in the local device 2 is reflected in the parameters of the corresponding virtual local device model.

[0208] The state change detection unit 343 detects state changes in at least one of the extracted real control signal and the extracted virtual control signal. Specific examples of state changes include changes in responsiveness to control commands and changes in the accuracy of tracking control commands. A major cause of changes in responsiveness is an increase in internal load due to increased friction. A cause of changes in tracking accuracy is an increase in vibration of movable parts.

[0209] When the state change detection unit 343 detects a state change, the reproduction unit 344, based at least on the reality control signal corresponding to the task in which the state change occurred, causes the governing virtual robot to reproduce the actions of the governing local device 2 that performs the task. Hereinafter, the task in which the state change occurred will be referred to as the "change-occurring task". For example, the reproduction unit 344 generates a reproduced dynamic image of the actions of the local device 2 that performs the change-occurring task based on the model of the virtual local device stored in the model storage unit 311 and the reality control signal corresponding to the change-occurring task, and displays it on a display unit (e.g., the display device 395 described later). The reproduction unit 344 can also cause the governing virtual robot to reproduce the actions of the governing local device 2 based on the reality control signal for tasks before and after the change-occurring task.

[0210] The data management device 300 may also include an anomaly detection unit 345. The anomaly detection unit 345 detects anomalies in at least one of the managing local device 2 and devices cooperating with the managing local device 2 based on alarm signals generated by the upper-level controller 200. The reproduction unit 344, upon detecting an anomaly by the anomaly detection unit 345, can reproduce the actions of at least one of the managing local devices 2 before and after the time point when the anomaly occurred, based on real-time control signals.

[0211] like Figure 21As shown, the data management device 300 may also include a sensor information processing unit 351 and an information updating unit 352. The sensor information processing unit 351 performs prescribed processing on the sensor information acquired from the external sensor 5. As a specific example of the prescribed processing, the following processing can be given: based on image information acquired from a camera, which is an example of the external sensor 5, etc., workpiece information such as the type, position, and posture of the workpiece 9, equipment information such as the position of the local device 2 and the operating state of the local device 2, and the proximity state of the local device 2 relative to the workpiece 9 (composite information of workpiece information and equipment information), etc.

[0212] The information update unit 352 updates the latest environmental information in the reality information database 313 based on the processing results of the sensor information processing unit 351. After the information update unit 352 updates the latest environmental information in the reality information database 313, the reality information collection unit 312 updates the environmental information in the environment information storage unit 221 of the upper-level controller 200 according to the update result. This reduces the information processing burden in the upper-level controller 200 and saves synchronization communication resources in the upper-level controller 200.

[0213] Figure 22 This is a block diagram illustrating the hardware structure of control system 3. For example... Figure 22 As shown, the upper-level controller 200 has a circuit 290. The circuit 290 includes one or more processors 291, a memory 292, a storage unit 293, communication ports 294 and 295, and an input / output port 296. The memory 293 is, for example, a storage medium that can be read by a computer, such as a non-volatile semiconductor memory. The storage unit 293 stores a program that causes the upper-level controller 200 to perform the following steps: sending an execution instruction for the next task to the local controller 100 based on the processing of multiple tasks for the workpiece 9 and the progress information of the processing; storing environmental information in an environmental information storage unit 221; and updating the environmental information based on the execution instruction and the environmental information in the environmental information storage unit 221, and according to the actions performed by the local device 2 by the local controller 100. For example, the memory 293 stores a program for configuring the upper-level controller 200 into the aforementioned functional blocks.

[0214] Memory 292 temporarily stores the program loaded from the storage medium of memory 293 and the calculation results of processor 291. Processor 291 executes the program in cooperation with memory 292, thereby forming the functional blocks of the upper-level controller 200. Communication port 294 communicates with local controller 100 via first network line NW1 according to instructions from processor 291. Communication port 295 communicates with data management device 300 via second network line NW2 according to instructions from processor 291. Input / output port 296 performs information input and output with external sensor 5 according to instructions from processor 291.

[0215] The local controller 100 has circuitry 190. Circuitry 190 includes one or more processors 191, memory 192, storage 193, communication port 194, and driver circuitry 195. Memory 193 is, for example, a storage medium readable by a computer, such as a non-volatile semiconductor memory. Memory 193 stores a program that causes the local controller 100 to perform the following steps: storing an execution instruction for the next task sent by the upper-level controller 200 in an instruction buffer 113 based on processing information for multiple tasks related to workpiece 9 and the progress of that processing; causing the local device 2 to execute the next task based on environmental information and execution instructions updated by the upper-level controller 200 according to the execution of the task by the local device 2; and sending the execution status of the next task to the upper-level controller 200. For example, memory 193 stores a program for configuring the local controller 100 into the aforementioned functional blocks.

[0216] Memory 192 temporarily stores the program loaded from the storage medium of memory 193 and the calculation results of processor 191. Processor 191, in cooperation with memory 192, executes the program to form the functional blocks of local controller 100. Communication port 194 communicates with the upper-level controller 200 via the first network line NW1 according to instructions from processor 191. Driver circuit 195 outputs drive power to local device 2 according to instructions from processor 191.

[0217] The data management device 300 includes circuitry 390. Circuitry 390 includes one or more processors 391, memory 392, storage 393, communication port 394, display device 395, and input device 396. Memory 393 has a storage medium capable of being read by a computer, such as non-volatile semiconductor memory. Memory 393 stores a program for causing the data management device 300 to perform the following processes: collecting real execution status information representing the execution status of the local controller 100 for each of multiple tasks; collecting virtual execution status information representing the execution status of the virtual local controller 400 for each of multiple tasks; and extracting one or more deviation tasks from the multiple tasks where the real execution status information deviates from the virtual execution status information. For example, memory 393 stores a program for causing the data management device 300 to form the aforementioned functional blocks.

[0218] Memory 392 temporarily stores programs loaded from the storage medium of memory 393 and the calculation results of processor 391. Processor 391 executes the aforementioned programs in cooperation with memory 392, thereby constituting the functional blocks of data management device 300. Communication port 394 communicates with upper-level controller 200 via second network line NW2 according to instructions from processor 391. Display device 395 and input device 396 function as the user interface of data management device 300. Display device 395 includes, for example, an LCD monitor, for displaying information to the user. Input device 396 is, for example, a keyboard, for acquiring user input information. Display device 395 and input device 396 can also be integrated as a so-called touch panel. Display device 395 and input device 396 can be provided as external devices connected to data management device 300, or they can be assembled into data management device 300.

[0219] Furthermore, circuits 190, 290, and 390 are not necessarily limited to circuits whose functions are configured through a program. For example, circuits 190, 290, and 390 can also be configured with at least a portion of their functions using dedicated logic circuits or ASICs (Application Specific Integrated Circuits) that integrate such logic circuits. Each of the local controller 100, the upper-level controller 200, and the data management device 300 can be composed of multiple computers capable of communicating with each other, and each computer can have its own circuitry. For example, the data management device 300 can be composed of multiple computers including data collection devices and analog devices. In this case, the functional blocks of the aforementioned data management device 300 can also be distributed across multiple computers. As an example, the virtual local controller 400, virtual upper-level controller 500, model storage unit 311, program acquisition unit 331, program distribution unit 335, program generation unit 333, and parameter acquisition unit 332 can be configured as a simulation device. The real-world information collection unit 312, real-world information database 313, virtual information collection unit 314, virtual information database 315, task comparison unit 316, status comparison display unit 317, display mode change unit 318, real-world signal extraction unit 321, virtual signal extraction unit 322, signal comparison display unit 323, progress display unit 324, virtual adjustment unit 341, real-world adjustment unit 342, status change detection unit 343, reproduction unit 344, anomaly detection unit 345, sensor information processing unit 351, and information update unit 352 can be configured as a data collection device. The data collection device can further collect / store the task programs 130 and control parameters of each local controller 100 and distribute the task programs 130 to each local controller 100. In this case, the program acquisition unit 331 can acquire the task program 130 from the local controller 100 via the data collection device. The parameter acquisition unit 332 can acquire control parameters from the local controller 100 via the data collection device. The program distribution unit 335 can output the generated program to the local controller 100 via the data collection device. Alternatively, an analog device can be constructed in a single computer by grouping programs that function as an analog device, and a data collection device can be constructed in the same single computer by grouping programs that function as a data collection device.

[0220] [Control Steps]

[0221] As an example of a control method, the control steps performed by the control system 3 are shown. The control steps include: sending an execution instruction for the next task to the local controller 100 based on the processing of multiple tasks for the workpiece 9 and the progress information of the processing; storing environmental information in the environmental information storage unit 221; and updating the environmental information according to the actions performed by the local device 2 by the local controller 100 based on the execution instruction and the environmental information in the environmental information storage unit 221.

[0222] In addition, the control steps include: storing the execution instruction of the next task sent by the upper controller 200 in the instruction buffer based on the processing of multiple tasks for workpiece 9 and the progress information of the processing; causing the local device 2 to execute the next task based on the environmental information and execution instructions updated by the upper controller 200 according to the execution of the task by the local device 2; and sending the execution status of the next task to the upper controller 200.

[0223] In another viewpoint, the control steps include: causing local device 2 to perform multiple tasks involved in the processing of workpiece 9 in the real space; causing virtual local device to perform multiple tasks in the virtual space; collecting real execution status information representing the execution status of local controller 100 for each of the multiple tasks; collecting virtual execution status information representing the execution status of virtual local controller 400 for each of the multiple tasks; and extracting one or more deviation tasks from the multiple tasks where the real execution status information deviates from the virtual execution status information.

[0224] The control steps are described below in detail as progress management steps executed by the upper-level controller 200, control steps executed by the local controller 100, and data management steps performed by the data management device 300. At least the progress management steps executed by the upper-level controller 200 and the control steps executed by the local controller 100 are executed in parallel.

[0225] (Progress Management Steps)

[0226] like Figure 23 As shown, the upper-level controller 200 executes steps S01, S02, S03, S04, S05, and S06 sequentially. In step S01, the order acquisition unit 212 waits for the production order to be acquired from the production management controller 4. In step S02, the processing allocation unit 213 allocates processing to the workpiece 9 specified in the production order and stores it in the processing storage unit 214.

[0227] In step S03, the instruction output unit 215 outputs the execution instruction for the next task based on the processing and progress information stored in the processing storage unit 214. In the processing storage unit 214, when multiple processes are assigned to multiple workpieces 9 respectively, the instruction output unit 215 outputs multiple execution instructions for the next task for each of the multiple processes.

[0228] In step S04, the environment update unit 222 obtains the status information of the local device 2 from each of the plurality of local controllers 100, obtains the detection results of the external sensor 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 of the processing storage unit 214 according to the task completion notification included in the status information obtained in step S04. If the status information does not include a task completion notification, the progress information remains unchanged.

[0229] In step S06, the instruction output unit 215 confirms whether the processing assigned to the workpiece 9 in the processing storage unit 214 has been completed. For example, the instruction output unit 215 confirms whether all tasks in the processing storage unit 214 have been completed.

[0230] In step S06, if it is determined that there are still unfinished tasks, the upper-level controller 200 returns the processing to step S03. Then, the upper-level controller 200 repeats steps S03 to S06, for example, in a predetermined periodic synchronization communication loop, until all tasks in the processing storage unit 214 are completed. In step S06, if it is determined that all tasks have been completed, the upper-level controller 200 returns the processing to step S01. The upper-level controller 200 repeatedly executes the above processing.

[0231] (Control Steps)

[0232] like Figure 24 As shown, 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 instructions for the next task stored in the instruction buffer 113. In step S12, the environment information acquisition unit 114 acquires the environment information stored in the environment information storage unit 221.

[0233] In step S13, the selection unit 115 determines whether each of the more than one next task can be executed based on the execution conditions of each of the more than one next task and the environment information stored in the environment information storage unit 221. For example, the selection unit 115 determines whether the environment information satisfies the execution conditions of each of the more than one next task. In step S14, the selection unit 115 determines whether there is an executable next task.

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

[0235] If it is determined in step S14 that there is an executable next 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 the executable next tasks. Hereinafter, the next task selected by the selection unit 115 will be referred to as the "selected task".

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

[0237] If, in step S18, it is determined that the selected task has not been completed, the local controller 100 returns the process to step S16. Thereafter, the local controller 100 repeats steps S16 to S18 in a predetermined control loop until the selected task is completed. The control loop can also be synchronized with the aforementioned synchronous communication loop.

[0238] If it is determined in step S18 that the selected task has been completed, the local controller 100 executes step S19. In step S19, the status output unit 117 includes the completion notification of the selected task in the status information and outputs it to the upper-level controller 200. Then, the local controller 100 returns the process to step S11. The local controller 100 repeats the above process.

[0239] The control steps may also include adjusting the timing of the next task selection based on the aforementioned waiting time. Figure 25 This is a flowchart illustrating control steps involving adjustments to the timing of selecting the next task based on the waiting time. For example... Figure 25 As shown, the local controller 100 first executes steps S21 to S24, which are the same as steps S11 to S14. In step S21, the selection unit 115 waits for one or more execution instructions for the next task stored in the instruction buffer 113. In step S22, the environment information acquisition unit 114 acquires the environment information stored in the environment information storage unit 221.

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

[0241] 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 not executable at the current time but has a higher priority than the executable next task (hereinafter referred to as "select candidate task").

[0242] If a candidate task is determined to exist in step S25, the local controller 100 executes step S26. In step S26, the selection timing adjustment unit 121 checks whether the waiting time before the candidate task becomes executable exceeds a predetermined threshold. As a specific example of the waiting time, the waiting time from the time before the candidate task is selected until the completion of the aforementioned machine task executed by another local device 2 can be given.

[0243] In step S26, if it is determined that the waiting time until the selected candidate task becomes executable has not exceeded a predetermined threshold, the local controller 100 does not select the next executable task and returns the process to step S22. Therefore, the selection timing for the next task becomes after the aforementioned waiting time has elapsed. After the waiting time has elapsed, the selected candidate task is assigned to the next executable task.

[0244] In step S26, if the waiting time before a candidate task becomes executable exceeds a predetermined threshold, the local controller 100 executes step S27. If, in step S25, it is determined that no candidate task exists, the local controller 100 executes step S27 instead of step S26. In step S27, the selection unit 115 selects the next task with the highest priority from the executable next tasks. Hereinafter, the next task selected by the selection unit 115 will be referred to as the "selected task".

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

[0246] If, in step S31, it is determined that the selected task has not been completed, the local controller 100 returns the process to step S28. Thereafter, the local controller 100 repeats steps S28 to S31 in a predetermined control loop until the selected task is completed. The control loop can also be synchronized with the aforementioned synchronous communication loop.

[0247] If the selected task is determined to be completed in step S31, the local controller 100 executes step S32. In step S32, the status output unit 117 includes the completion notification of the selected task in the status information and outputs it to the upper-level controller 200. Then, the local controller 100 returns the process to step S21. The local controller 100 repeats the above process.

[0248] The control steps may also include: if, during the execution of the second task by the local device 2, a first task with a higher priority than the second task can be executed, interrupting the execution of the second task and selecting the first task. Figure 26 This is a flowchart illustrating the control steps that include interrupting a task in progress. Figure 26 This shows the steps from the start of execution of the selected task in the control step until the completion notification of the task is output.

[0249] like Figure 26 As shown, the local controller 100 first executes steps S41, S42, and S43. In step S41, the control unit 116, similar to step S16, causes the managing local device 2 to execute the amount of one control cycle of the selected task. In step S42, the status output unit 117 outputs the status information of the managing local device 2 to the upper-level controller 200. In step S43, the control unit 116 confirms whether the execution of the selected task has been completed.

[0250] If, in step S43, it is determined that the execution of the selected task has not been 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 determines whether each of the more than one next task can be executed based on the execution conditions of each of the more than one next task and the environment information in the environment information storage unit 221. For example, the selection unit 115 determines whether the environment information satisfies the execution conditions of each of the more than one next task. In step S46, the selection unit 115 determines whether there is an executable next task. Hereinafter, the executable next task will be referred to as a "replacement candidate task".

[0251] If it is determined in step S46 that there is a next executable task, the local controller 100 executes step S47. In step S47, the selection unit 115 confirms whether the priority of the replacement candidate task is higher than the priority of the executing task.

[0252] If, in step S47, it is determined 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 interrupts the execution of the selected task and selects a replacement candidate task. This confirms whether the execution time of multiple processes can be shortened compared to selecting a replacement candidate task after the selected task has completed. Hereinafter, the case where the execution of the selected task is interrupted and the selection unit 115 selects a replacement candidate task is referred to as the "first case." The case where the selection unit 115 selects a replacement candidate task after the selected task has completed is referred to as the "second case." According to the first case, as a simple method to confirm whether the execution time of multiple processes can be shortened compared to the second case, the selection unit 115 can confirm whether the remaining time of the selected task exceeds a predetermined threshold.

[0253] In step S48, if it is determined that even according to the first scenario, the execution time of multiple processes cannot be shortened compared to the second scenario, the local controller 100 returns the process to step S42. For example, if the remaining time of the selected task is below a predetermined threshold, the local controller 100 returns the process to step S42. If it is determined in step S46 that there is no next executable task, and in step S47 that the priority of the replacement candidate task is not higher than the priority of the currently executing task, the local controller 100 also returns the process to step S42. Thereafter, as long as a next task with a higher priority cannot be executed, execution continues until the selected task is completed.

[0254] If it is determined in step S43 that the selected task has been completed, the local controller 100 executes step S49. In step S49, the status output unit 117 includes the completion notification of the selected task in the status information and outputs it to the upper-level controller 200.

[0255] In step S48, if it is determined from the first case that the execution time of multiple processes can be shortened compared to the second case, the local controller 100 executes steps S51, S52, S53, S54, and S55. In step S51, the interrupt unit 122 causes the control unit 116 to interrupt the task in progress. The interrupt unit 122 can use the control unit 116 to return the governing local device 2 to the state before the interrupted task started. In step S52, the interrupt unit 122 causes the selection unit 115 to select a replacement candidate task. Hereinafter, the replacement candidate task will be referred to as the "replaced task".

[0256] In step S53, the control unit 116 causes the local device 2 to execute the amount of one control cycle of the replaced task. In step S54, the status output unit 117 outputs the status information of the local device 2 to the upper-level controller 200. In step S55, the control unit 116 confirms whether the execution of the replaced task has been completed.

[0257] If, in step S55, it is determined that the execution of the replaced task has not been completed, the local controller 100 returns the process to step S53. Thereafter, the local controller 100 repeats steps S53 to S55 in a predetermined control loop until the selected task is completed. The control loop can also be synchronized with the aforementioned synchronous communication loop.

[0258] If it is determined in step S55 that the replacement task has been completed, the local controller 100 executes step S56. In step S56, the status output unit 117 includes the completion notification of the replacement task in the status information and outputs it to the upper-level controller 200. The steps up to the task completion notification are now complete.

[0259] (Data Management Steps)

[0260] The data management steps performed by the data management device 300 can be broadly divided into comparison steps, program generation steps, adjustment steps, and environmental information update steps. The comparison steps, program generation steps, and adjustment steps are illustrated in detail below.

[0261] (Comparison steps)

[0262] The comparison steps include collecting real-world information, collecting virtual information, and extracting deviations from the task. Figure 27 This is a flowchart illustrating the steps involved in collecting real-world information. For example... Figure 27As shown, the data management device 300 executes steps S61, S62, S63, and S64 sequentially. In step S61, the real-time information collection unit 312 waits for the upper-level controller 200 to begin processing corresponding to the production order.

[0263] In step S62, the reality information collection unit 312 obtains reality execution status information representing the execution status of the local controller 100 for each of the multiple tasks from the processing and storage unit 214, and stores the reality execution status information in the reality information database 313. For example, the reality information collection unit 312 collects reality 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 reality information collection unit 312 obtains environmental information containing the aforementioned reality control signals from the environmental information storage unit 221, and stores the obtained environmental information in the reality information database 313.

[0264] In step S63, the progress display unit 324 displays the task being executed by the production system 1 based on the current execution status information acquired by the current information collection unit 312. In step S64, the current information collection unit 312 confirms whether the upper-level controller 200 has completed the execution of the processing.

[0265] If, in step S64, it is determined that the upper-level controller 200 has not completed the processing, the data management device 300 returns the processing to step S62. Thereafter, the data management device 300 repeatedly acquires / stores real-time execution status information and environmental information, and displays the tasks in progress, until the upper-level controller 200 completes the processing. If, in step S64, it is determined that the upper-level controller 200 has completed the processing, the real-time information collection step is complete.

[0266] Figure 28 This is a flowchart illustrating the steps for collecting virtual information. The data management device 300 executes steps S71, S72, and S73 sequentially. In step S71, the virtual information collection unit 314 waits for the virtual upper-level controller 500 to begin processing corresponding to the production order.

[0267] In step S72, the virtual information collection unit 314 obtains virtual execution status information representing the execution status of the virtual local controller 400 for each of the multiple tasks from the processing and storage unit 514, and stores it in the virtual information database 315. For example, the virtual information collection 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. Additionally, the virtual information collection unit 314 obtains virtual environment information including the aforementioned virtual control signals from the environment information storage unit 521, and stores it in the virtual information database 315. In step S73, the virtual information collection unit 314 confirms whether the virtual upper-level controller 500 has completed the processing.

[0268] If, in step S73, it is determined that the virtual upper-level controller 500 has not completed the processing, the data management device 300 returns the processing to step S72. Thereafter, the data management device 300 repeatedly acquires / stores virtual execution status information and virtual environment information until the virtual upper-level controller 500 completes the processing. If, in step S73, it is determined that the virtual upper-level controller 500 has completed the processing, the virtual information collection step is complete.

[0269] Figure 29 This is a flowchart illustrating the steps for extracting deviations from the task. The data management device 300 first executes steps S81, S82, and S83. In step S81, the task comparison unit 316 selects the initial task in the process. Hereinafter, the task selected by the task comparison unit 316 is referred to as the "comparison object task." In step S82, the task comparison unit 316 extracts the actual execution status information of the comparison object task from the actual information database 313 and extracts the virtual execution status information of the comparison object task from the virtual information database 315, and compares the extracted actual execution status information with the virtual execution status information. In step S83, the task comparison unit 316 confirms whether there is a deviation between the extracted actual execution status information and the extracted virtual execution status information.

[0270] If, in step S83, it is determined that there is a deviation 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 deviating task.

[0271] Next, the data management device 300 executes step S85. In step S83, if it is determined that there is no deviation between the extracted real execution status information and the extracted virtual execution status information, the data management device 300 executes step S85 instead of 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 processed tasks.

[0272] If, in step S85, it is determined that there are tasks in the process where the comparison between real execution status information and virtual execution status information remains incomplete, the data management device 300 executes step S86. In step S86, the task comparison unit 316 selects the next comparison target task from the process. Then, the data management device 300 returns the process to step S82. Afterward, the real execution status information and virtual execution status information are repeatedly compared for each task until the comparison of all tasks is completed.

[0273] In step S85, for all processed tasks, if the comparison between the actual execution status information and the virtual execution status information is completed, the deviation detection step is completed.

[0274] The comparison steps performed by the data management device 300 may further include Figure 30 The illustrated execution status comparison display step. In this case, the data management device 300 sequentially executes steps S91, S92, and S93. 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 method of the real execution status information and the virtual execution status information for each of the multiple tasks.

[0275] In step S92, the display mode changing unit 318 changes the display mode of one or more of the aforementioned style data that deviates from the task to the display mode of other tasks. In step S93, the status comparison display unit 317 displays a comparison display screen on the display unit showing the style data that has been changed by the display mode changing unit 318. The execution status comparison display step is now complete.

[0276] The comparison steps may also include Figure 31 The illustrated steps for extracting control signals are as follows. Figure 31As shown, the data management device 300 first executes steps S101, S102, S103, and S104. In step S101, the reality signal extraction unit 321 selects the initial deviation task from one or more deviation tasks extracted by the task comparison unit 316. Hereinafter, the selected deviation task will be referred to as the "selected deviation task".

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

[0278] If, in step S104, it is determined that there are remaining deviation tasks for which neither real nor virtual control signals have been extracted, the data management device 300 executes step S105. In step S105, the real signal extraction unit 321 selects the next deviation task from one or more deviation tasks. Then, the data management device 300 returns the processing to step S102. Subsequently, for all of one or more deviation tasks, the data management device 300 repeatedly extracts real and virtual control signals until the extraction of real and virtual control signals is completed. In step S104, if it is determined that the extraction of real and virtual control signals has been completed for all of one or more deviation tasks, the control signal extraction step is completed.

[0279] The comparison steps may also include Figure 32 The illustrated steps for comparing and displaying control signals are as follows. Figure 32 As shown, the data management device 300 sequentially executes steps S111, S112, and S113. In step S111, the signal comparison display unit 323 selects one of more deviation tasks based on user input to the input device 396, etc. For example, in the comparison display screen of the execution status, the signal comparison display unit 323 selects any one of more deviation tasks based on input selecting a deviation task to be emphasized. Hereinafter, the selected deviation task will be referred to as the "display object deviation task".

[0280] In step S112, the signal comparison display unit 323 generates a signal comparison display screen. The signal comparison display screen compares and displays the real control signal extracted by the real signal extraction unit 321 (corresponding to the task deviating from the display object) and the virtual control signal extracted by the virtual signal extraction unit 322 (corresponding to the task deviating from the display object), according to each category of control signal. In step S113, the signal comparison display unit 323 displays the signal comparison display screen on the display unit. The control signal comparison display step is now complete.

[0281] (Program Generation Steps)

[0282] like Figure 33 As shown, the data management device 300 sequentially executes steps S121, S122, S123, S124, S125, S126, and S127. In step S121, the program acquisition unit 331 acquires the task program 130 of the work task registered through 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 holding unit 112 in each local controller 100 and stores them in the parameter holding unit 412 of the virtual local controller 400. In step S123, the program generation unit 333 generates one or more empty-switching tasks based on the work task acquired by the program acquisition unit 331 and the model information stored in the model storage unit 311, and stores them in the task program storage unit 411.

[0283] In step S124, the processing allocation unit 513 allocates processing to the workpiece 9 specified in the production order and stores the processing in the processing storage unit 514. In step S125, the data management device 300 generates execution conditions. Details of step S125 will be described later. In step S126, the data management device 300 generates a priority. Details of step S126 will be described later. In step S127, the program distribution unit 335 outputs the generated program from the task program storage unit 411 to the corresponding local controller 100 and stores it in the task program storage unit 111 of that local controller 100. The program generation steps are now complete.

[0284] Figure 34 This is a flowchart illustrating the step of generating the execution condition in step S125. For example... Figure 34 As shown, the data management device 300 sequentially executes steps S131, S132, S133, and S134. In step S131, the virtual upper-level controller 500 and the virtual local controller 400, based on the multiple task programs 130 in the task program storage unit 411, cause multiple virtual local devices to execute multiple tasks in the virtual space.

[0285] In step S132, the program generation unit 333 extracts the overlapping areas of the operating ranges of the virtual local devices based on the virtual environment information stored in the virtual information database 315. For example, the program generation unit 333 calculates the overlapping area between the operating areas of the first virtual local device and the operating areas of the second virtual local device.

[0286] In step S133, the program generation unit 333 generates executable conditions for multiple tasks, ensuring that two or more virtual local devices do not enter the same overlapping region. For example, the executable conditions for the first virtual local device's task are generated in a manner that includes the case where the second virtual local device is not located within the overlapping region, and the executable conditions for the second virtual local device's task are generated in a manner that includes the case where the first virtual local device is not located within the overlapping region. In step S134, the program generation unit 333 registers the generated executable conditions in the condition header 131 of the corresponding task's task program 130. The executable condition generation step is now complete.

[0287] Figure 35 This is a flowchart illustrating the priority generation steps in step S126. For example... Figure 35 As shown, the data management device 300 first executes steps S141, S142, S143, and S144. In step S141, the program generation unit 333 randomly and temporarily determines priority combinations for each of the multiple tasks, and registers each of the temporarily determined priority combinations in the condition header 131 of the corresponding task program 130. In step S142, the virtual upper-level controller 500 and the virtual local controller 400, based on the multiple task programs 130 in the task program storage unit 411, cause multiple virtual local devices to execute multiple tasks in the virtual space.

[0288] In step S143, the program generation unit 333 evaluates the execution time of multiple processes based on the virtual execution status information stored in the virtual information database 315. In step S144, the program generation unit 333 confirms whether the number of trials for changing priorities and evaluating the execution time of multiple processes has reached the prescribed number.

[0289] In step S144, if it is determined that the number of trials 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 combination and registers each of the changed priority combinations in the condition header 131 of the corresponding task program 130. Then, the local controller 100 returns the processing to step S142. Thereafter, the priority combination changes and the evaluation of the execution time of multiple processes are repeated until the predetermined number of trials is reached.

[0290] If, in step S144, it is determined that the predetermined number of trials has been reached, the data management device 300 executes step S146. In step S146, the program generation unit 333 selects the priority combination with the shortest execution time among multiple processes during the aforementioned trials, and registers each of the selected priority combinations in the condition header 131 of the corresponding task program 130. The priority generation step is thus completed.

[0291] (Adjustment steps)

[0292] like Figure 36 As shown, the data management device 300 sequentially executes steps S151, S152, S153, S154, and S155. In step S151, the data management device 300 performs the aforementioned comparison step. In step S152, the data management device 300 adjusts the parameters of the models of multiple virtual local devices based on at least one of the real control signal and virtual control signal extracted in the comparison step of step S151. The specific processing details of step S152 will be described later. In step S153, the data management device 300 waits for a predetermined period to elapse. In step S154, the data management device 300 performs the aforementioned comparison step.

[0293] In step S155, the data management device 300 adjusts the control parameters (parameters of the parameter holding 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 step of step S154. The specific processing details of step S155 will be described later. The adjustment step is now complete.

[0294] Figure 37 This is a flowchart illustrating the parameter adjustment steps for the model in step S152. For example... Figure 37 As shown, the data management device 300 first executes steps S161, S162, S163, and S164. In step S161, the virtual adjustment unit 341 selects the initial deviation task from one or more deviation tasks extracted by the task comparison unit 316. Hereinafter, the selected deviation task will be referred to as the "virtual adjustment deviation task".

[0295] In step S162, the virtual adjustment unit 341 derives the modeling error of the virtual local device, which is the main 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.

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

[0297] In step S164, if a deviation task is determined to have incomplete adjustments to model parameters, the data management device 300 executes step S165. In step S165, the virtual adjustment unit 341 selects the next deviation task from one or more deviation tasks. Then, the data management device 300 returns the processing to step S161. Subsequently, for all of one or more deviation tasks, the data management device 300 repeatedly adjusts the model parameters until the model adjustment is complete. In step S164, if it is determined that the model parameter adjustment is complete for all of one or more deviation tasks, the model parameter adjustment step is completed.

[0298] Figure 38 This is a flowchart illustrating the adjustment steps of the control parameters in step S153. The data management device 300 first executes steps S171, S172, and S173. In step S171, the reality adjustment unit 342 selects the initial deviation task from one or more deviation tasks extracted by the task comparison unit 316. Hereinafter, the selected deviation task will be referred to as the "reality adjustment deviation task".

[0299] In step S172, the reality adjustment unit 342 selects a control parameter that can reduce 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 reality adjustment deviation task. Hereinafter, the selected control parameter will be referred to as the "selected control parameter". In step S173, the reality adjustment unit 342 confirms whether the difference between the real control signal and the virtual control signal corresponding to the reality adjustment deviation task can be suppressed to a desired level using the selected control parameter.

[0300] 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 the desired level by using 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 to suppress the difference between the real control signal and the virtual control signal corresponding to the real adjustment deviation task to the 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 the adjustment of all confirmation control parameters for one or more deviation tasks has been completed.

[0301] In step S175, if a deviation task is determined to have unfinished adjustments to control parameters, the data management device 300 executes step S176. In step S176, the adjustment unit 342 selects the next deviation task from one or more deviation tasks. Then, the data management device 300 returns the process to step S171. Subsequently, for all of one or more deviation tasks, the data management device 300 repeatedly adjusts the control parameters until the adjustment of the control parameters is completed.

[0302] In step S175, for all of the more than one deviation task, if it is determined that the adjustment of the control parameters is completed, the control parameter adjustment step is completed. In step S173, if it is determined that the difference between the real control signal and the virtual control signal corresponding to the actual adjustment deviation task cannot be suppressed to the desired level by the selected control parameters, the data management device 300 executes steps S177, S178, and S179.

[0303] In step S177, the state change detection unit 343 detects state changes of at least one of the virtual local device 2 and devices 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 the detected state change.

[0304] In step S179, the reproduction unit 344, based on the real-world control signal corresponding to the task of state change (the aforementioned change-generating task) detected by the state change detection unit 343, causes the managing virtual robot to reproduce the actions of the managing local device 2 that performs the change-generating task. For example, the reproduction unit 344 generates a reproduced dynamic image of the actions of the local device 2 that performs the change-generating task based on the model of the virtual local device stored in the model storage unit 311 and the real-world control signal corresponding to the change-generating task, and displays it on a display unit, etc. Afterwards, the data management device 300 stops the control parameter adjustment step.

[0305] Figure 39 This is a flowchart illustrating a variation of the steps for adjusting control parameters. In this flowchart, steps S181 to S189 are the same as steps S171 to S179. Figure 39The adjustment steps, following step S185 where the control parameters are adjusted, also include steps S191 to S193. In these adjustment steps, the data management device 300 sequentially executes steps S191, S192, and S193. In step S191, the parameter acquisition unit 332 acquires the changed control parameters from the parameter holding unit 112 and registers them in the parameter holding unit 412. In step S192, the data management device 300 performs the aforementioned comparison step. In step S193, the data management device 300 performs the same adjustment steps as in step S152. Through the additional steps S191 to S193, the changes in the local device 2 are reflected in the parameters of the corresponding virtual local device model.

[0306] In addition to the reproduction and display step when a state change is detected, the data management steps performed by the data management device 300 may also include the reproduction and display step when an anomaly is detected. Figure 40 This is a flowchart illustrating the steps for reproducing the display. For example... Figure 40 As shown, the data management device 300 sequentially executes steps S201 and S202. In step S201, the reproduction unit 344 waits for the anomaly detection unit 345 to detect an anomaly in at least one of the managing local device 2 and the devices cooperating with the managing local device 2, based on alarm signals generated by the upper-level controller 200. In step S202, the reproduction unit 344, based on a real-time control signal, causes the managing virtual local device to reproduce the actions of at least one managing local device 2 before and after the time point when the anomaly occurred. The reproduction display step is then completed.

[0307] (Environmental information update steps)

[0308] like Figure 41 As shown, the data management device 300 sequentially executes steps S211, S212, S213, and S214. 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 prescribed processing 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 reality information database 313 based on the processing result of the sensor information processing unit 351. In step S214, the reality information collection unit 312 updates the environmental information in the environment information storage unit 221 of the upper-level controller 200 according to the updated result of the latest environmental information. The environmental information update step is then completed.

[0309] [Effects of this implementation method]

[0310] As explained above, the control system 3 includes: a local controller 100 (robot controller) that causes robots 2B, 2C, and 10 to perform multiple tasks in the processing of workpiece 9 in the real space; a virtual local controller 400 (virtual robot controller) that causes a virtual robot to perform multiple tasks in a virtual space; a real information collection unit 312 that collects real execution status information representing the execution status of the local controller 100 for each of the multiple tasks; a virtual information collection unit 314 that collects virtual execution status information representing the execution status of the virtual local controller 400 for each of the multiple tasks; and a task comparison unit 316 that extracts one or more deviation tasks from the real execution status information and the virtual execution status information. In this case, since the deviation of the execution status can be confirmed for each of the multiple tasks, the main cause of the deviation is easily determined. Therefore, the control system 3 is effective in improving the accuracy of production planning.

[0311] Both real-world and virtual execution status information can include the execution time of the corresponding tasks. In this case, the execution status can be easily quantified, and the degree of deviation can be evaluated.

[0312] The control system 3 may also include: a status comparison display unit 317, which compares and displays the real execution status information of each of the multiple tasks collected by the real information collection unit 312 and the virtual execution status information of each of the multiple tasks collected by the virtual information collection unit 314 for each task; and a display mode changing unit 318, which displays one or more deviation tasks in a different display mode than other tasks on the display unit. In this case, the user can easily and clearly understand the extraction results of one or more tasks by the task comparison unit 316.

[0313] The control system 3 may also include: a reality information database 313 storing the reality control signals of the local controller 100; a virtual information database 315 storing the virtual control signals of the virtual local controller 400; a reality signal extraction unit 321 extracting reality control signals corresponding to one or more deviation tasks from the reality information database 313; and a virtual signal extraction unit 322 extracting virtual control signals corresponding to one or more deviation tasks from the virtual information database 315. In this case, determining the main cause of the deviation becomes easier.

[0314] The reality information collection unit 312 collects reality execution status information including the start and end times of each of the multiple tasks in the first timeline. The virtual information collection unit 314 collects virtual execution status information including the start and end times of each of the multiple tasks in the second timeline. The reality information database 313 stores reality control signals in correspondence with times along the first timeline, and the virtual information database 315 stores virtual control signals in correspondence with times along the second timeline. The reality signal extraction unit 321 extracts reality control signals corresponding to one or more off-target tasks from the reality information database 313 based on the start and end times in the first timeline. The virtual signal extraction unit 322 extracts virtual control signals corresponding to one or more off-target tasks from the virtual information database 315 based on the start and end times in the second timeline. In this case, the control signals of each task can be easily compared.

[0315] The control system 3 may also include a signal comparison display unit 323, which compares the real control signal extracted by the real signal extraction unit 321 with the virtual control signal extracted by the virtual signal extraction unit 322 and displays the comparison on the display unit. In this case, the user can easily and clearly see the difference between the real control signal and the virtual control signal in the deviation from the task.

[0316] The control system 3 may also include a virtual adjustment unit 341, which adjusts the parameters of the virtual robot model 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 the reproduction of the real space based on the virtual space can be easily and continuously improved.

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

[0318] The control system 3 may further include a state change detection unit 343, which detects state changes of at least one of the robots 2B, 2C, 10 and the device in 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, state changes of the device can be detected in advance.

[0319] The control system 3 may also include a reproduction unit 344, which, when the state change detection unit 343 detects a state change, causes the virtual robot to reproduce the actions of robots 2B, 2C, and 10 performing the task, based at least on the real control signal corresponding to the task that caused the state change. In this case, the user can easily and clearly understand the impact of the state change on the actions of robots 2B, 2C, and 10.

[0320] The control system 3 also includes an anomaly detection unit 345, which detects anomalies in at least one of the robots 2B, 2C, 10 and the devices that cooperate with the robots 2B, 2C, 10. The reproduction unit 344, upon detecting an anomaly by the anomaly detection unit 345, can, based on real-world control signals, reproduce the actions of at least one of the robots 2B, 2C, 10 before and after the moment the anomaly occurred. In this case, the user can easily and clearly understand the actions of the robots 2B, 2C, 10 at the time of anomaly detection.

[0321] The control system 3 may further include: an environment information storage unit 221 for storing environment information; an environment update unit 222 for updating the environment information in the environment information storage unit 221 based on the actions of robots 2B, 2C, and 10; an environment information storage unit 521 (virtual environment information storage unit) for storing virtual environment information; and an environment update unit 522 (virtual environment update unit) for updating the virtual environment information in the environment information storage unit 521 based on the actions of the virtual robots. The local controller 100 adjusts 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 adjusts 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, the comparison of the execution status of each task is more efficient.

[0322] The control system 3 may further include: an instruction output unit 215, which outputs the execution instruction for the next task based on the processing progress information in the real space and the processing progress information in the processing space; and an instruction output unit 515 (virtual instruction output unit), which outputs the execution instruction for the next task based on the processing progress information in the processing space and the processing progress information in the virtual space. The local controller 100 adjusts the execution timing based on the environmental information stored in the environmental information storage unit 221, and causes robots 2B, 2C, and 10 to execute the next task corresponding to the execution instruction from the instruction output unit 215. The virtual local controller 400 adjusts the execution timing based on the virtual environmental information stored in the environmental information storage unit 521, and causes the virtual robot to execute the next task corresponding to the execution instruction from the instruction output unit 515. In this case, the comparison of the execution status of each task is more efficient.

[0323] The control system 3 may also include: an instruction output unit 215, which outputs the execution instruction for the next task based on the processing progress information in the real space and the processing progress information in the processing space; an instruction output unit 515 (virtual instruction output unit), which outputs the execution instruction for the next task based on the processing progress information in the processing space and the processing progress information in the virtual space; the local controller 100 causes robots 2B, 2C, and 10 to execute the next task corresponding to the execution instruction from the instruction output unit 215; and the virtual local controller 400 causes the virtual robot to execute the next task corresponding to the execution instruction from the instruction output unit 515. In this case, the comparison of the execution status of each task is more efficient.

[0324] The processing may also include machine tasks performed by local device 2 (industrial machinery), and the multiple tasks performed by robot 2 may include tasks performed before and after the machine tasks. In this case, the comparison of the execution status of each task is more efficient.

[0325] Multiple tasks can include tasks that cooperate with local equipment 2 (first industrial machinery) and tasks that cooperate with local equipment 2 (second industrial machinery). In this case, comparing the performance of each task is more effective.

[0326] The implementation methods have been described above, but this disclosure is not necessarily limited to the above-described implementation methods, and various changes can be made without departing from its spirit.

[0327] Symbol Explanation

[0328] 2…Local Equipment (Industrial Machinery, Primary Industry Machinery, Secondary Industry Machinery), 2B, 2C, 10…Robot, 3…Control System, 9…Workpiece, 100…Local Controller (Robot Controller), 215…Instruction Output Unit, 221…Environmental Information Storage Unit, 222…Environmental Update Unit, 312…Real-Time Information Collection Unit, 313…Real-Time Information Database, 314…Virtual Information Collection Unit, 315…Virtual Information Database, 316…Task Comparison Unit, 317…Status Comparison Display Unit, 318… Display mode 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…anomaly detection unit, 400…virtual local controller (virtual robot controller), 515…instruction output unit (virtual instruction output unit), 521…environmental information storage unit (virtual environment information storage unit), 522…environmental update unit (virtual environment update unit).

Claims

1. A control system, comprising: A robot controller enables a robot to perform multiple tasks related to the handling of a workpiece in the real world. A virtual robot controller enables a virtual robot to perform the aforementioned multiple tasks in a virtual space; The reality information collection unit collects reality execution records from the reality space during each of the plurality of tasks performed by the robot controller; The virtual information collection unit collects virtual execution records from the virtual space during each of the plurality of tasks performed by the virtual robot controller; The task comparison unit extracts one or more deviation tasks from the plurality of tasks, where the actual execution record deviates from the virtual execution record. A reality information database stores reality transformation data, which represents the transformation of reality control signals generated by the robot controller during the execution of the plurality of tasks; A virtual information database stores virtual transformation data, which represents the transformation of virtual control signals generated by the virtual robot controller during the execution of the plurality of tasks; The reality signal extraction unit extracts one or more portions of the reality transformation data corresponding to the one or more deviation tasks from the reality information database; The virtual signal extraction unit extracts one or more portions of the virtual transformation data corresponding to the one or more deviation tasks from the virtual information database. as well as The signal comparison and display unit compares and displays one or more portions of the extracted real-world transformation data and one or more portions of the extracted virtual transformation data.

2. The control system according to claim 1, wherein, The execution time of one of the plurality of tasks is included in both the real execution record and the virtual execution record.

3. The control system according to claim 1 further includes: The status comparison display unit compares and displays the actual execution records corresponding to the multiple tasks and the virtual execution records corresponding to the multiple tasks. as well as The display mode changing unit displays one or more real execution records and one or more virtual execution records corresponding to the one or more deviation tasks in a way that is different from the remaining real execution records and virtual execution records.

4. The control system according to claim 1, wherein, The reality information collection unit collects the reality execution record, which includes the start time and completion time of one of the multiple tasks in the first timeline. The virtual information collection unit collects the virtual execution records, which include the start and completion times of one of the multiple tasks in the second timeline. The reality information database stores the reality transformation data along the first timeline. The virtual information database stores the virtual transformation data along the second timeline. The reality signal extraction unit extracts the portion of reality transformation data from the reality information database based on the execution start time and execution completion time in the first timeline. The virtual signal extraction unit extracts a portion of the virtual transformation data from the virtual information database based on the execution start time and execution completion time in the second timeline.

5. The control system according to claim 1, wherein, It also includes a virtual adjustment unit that adjusts the modeling data of the virtual robot based at least in part on one or more portions of the extracted real-world transformation data and one or more portions of the extracted virtual transformation data.

6. The control system according to claim 1, wherein, It also includes a reality adjustment unit, which adjusts at least in part one or more parameters stored in the robot controller for controlling the robot based on at least one portion of the extracted reality transformation data and at least one portion of the extracted virtual transformation data.

7. The control system according to claim 1, wherein, It also includes a state change detection unit, which detects state changes of the system including the robot and device operating in cooperation, based at least in part on a portion of the extracted real-world transition data and a portion of the extracted virtual-world transition data.

8. The control system according to claim 7, wherein, It also includes a reproduction unit that, in response to the state change detection unit detecting the state change, controls the virtual robot to reproduce, in the virtual space, the actions of the robot performing the task in which the state change occurred, based at least in part on the reality transition data collected during the task.

9. The control system according to claim 8, wherein, It also includes an anomaly detection unit, which detects anomalies in the system. The reproduction unit, in response to the anomaly detection unit detecting the anomaly, controls the virtual robot to reproduce the robot's actions during that period, based at least in part on the reality transformation data collected during a period near the time point where the anomaly occurred.

10. The control system according to any one of claims 1 to 9, wherein, Also includes The Environmental Information Storage Department stores environmental information. The environment updating unit updates the environmental information stored in the environment information unit based on the robot's actions; Virtual Environment Information Storage Department, which stores virtual environment information; as well as The virtual environment updating unit updates the virtual environment information in the virtual environment information storage unit based on the actions of the virtual robot. The robot controller adjusts the execution timing of each of the multiple tasks based on the environmental information. The virtual robot controller adjusts the virtual execution timing of each of the multiple tasks based on the virtual environment information.

11. The control system according to claim 10, wherein, Also includes The instruction output unit outputs the execution instruction for the next task based on the processing and the progress information of the processing in the real space. as well as The virtual instruction output unit outputs a virtual execution instruction for the next task based on the processing and the virtual progress information of the processing in the virtual space. The robot controller, based on the environmental information and adjusting the execution timing, controls the robot to execute the next task according to the output execution instructions. During the virtual execution timing based on the virtual environment information, the virtual robot controls itself to execute the next task according to the output virtual execution instructions.

12. The control system according to any one of claims 1 to 9, wherein, Also includes The instruction output unit outputs the execution instruction for the next task based on the processing and the progress information of the processing in the real space. as well as The virtual instruction output unit outputs a virtual execution instruction for the next task based on the processing and the virtual progress information of the processing in the virtual space. The robot controller controls the robot to perform the next task based on the output execution instructions. The virtual robot controller controls the virtual robot to execute the next task according to the output virtual execution instructions.

13. The control system according to any one of claims 1 to 9, wherein, The processing also includes machine tasks performed by industrial machinery. The multiple tasks performed by the robot include tasks performed before the machine tasks and tasks performed after the machine tasks.

14. The control system according to any one of claims 1 to 9, wherein, The multiple tasks include tasks performed in cooperation with primary industrial machinery and tasks performed in cooperation with secondary industrial machinery.

15. A control method, comprising: In the real world, enabling robots to perform multiple tasks related to the handling of workpieces; In virtual space, a virtual robot performs the aforementioned multiple tasks; During the execution of each of the plurality of tasks by the robot, a real-world execution record is collected from the real-world space; During the execution of each of the plurality of tasks by the virtual robot, virtual execution records are collected from the virtual space; Extract one or more deviation tasks from the plurality of tasks, where the actual execution record and the virtual execution record deviate from each other; Store reality transition data, which represents the transitions in reality control signals generated by the robot during the execution of the plurality of tasks; Store virtual transition data, which represents the transitions of virtual control signals generated by the virtual robot during the execution of the plurality of tasks; Extract one or more portions of the reality transformation data corresponding to the one or more deviation tasks; Extract one or more portions of the virtual transformation data corresponding to the one or more deviation tasks; as well as Compare and display one or more portions of the extracted real-world transformation data and one or more portions of the extracted virtual transformation data.

16. The control method according to claim 15, further comprising: One or more parameters used to control the robot are modified, at least in part based on one or more portions of the extracted real-world transformation data and one or more portions of the extracted virtual transformation data.

17. A non-transitory memory device storing instructions that, when executed by a processing device, cause the processing device to perform the following operations: During each of the multiple tasks performed by the robot on the workpiece in real space, real-world execution records are collected from the real space. During each of the multiple tasks performed by the virtual robot in the virtual space, virtual execution records are collected from the virtual space; Extract one or more deviation tasks from the plurality of tasks, where the actual execution records and the virtual execution records deviate from each other; Store reality transition data, which represents the transitions in reality control signals generated by the robot during the execution of the plurality of tasks; Store virtual transition data, which represents the transitions of virtual control signals generated by the virtual robot during the execution of the plurality of tasks; Extract one or more portions of the reality transformation data corresponding to the one or more deviation tasks; Extract one or more portions of the virtual transformation data corresponding to the one or more deviation tasks; as well as Compare and display one or more portions of the extracted real-world transformation data and one or more portions of the extracted virtual transformation data.

18. The memory device according to claim 17, wherein, The operation also includes: The model data of the virtual robot is modified based at least in part on one or more portions of the extracted real-world transformation data and one or more portions of the extracted virtual transformation data.