Production system, unit controller, robot controller, and control method

CN115697649BActive Publication Date: 2026-09-04YASKAWA DENKI KK
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
CN202180039869.5
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-08-21
Filing Date
2021-06-08
Publication Date
2026-09-04
Estimated Expiration
2041-06-08

AI Technical Summary

Benefits of technology

[0015] According to the present invention, a control system that effectively improves the flexibility of a production system can be provided.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115697649B_ABST
    Figure CN115697649B_ABST
Patent Text Reader

Abstract

A production system (1) includes: an instruction output section (215) that outputs an execution instruction of a next task based on processing including a plurality of tasks for a workpiece (9) and progress information of the processing; an environment information storage section (221) that stores environment information; a local controller (100) that causes a robot (2B, 2C, 10) to execute the next task based on the execution instruction output from the instruction output section (215) and the environment information of the environment information storage section (221); and an environment update section (222) that updates the environment information of the environment information storage section (221) according to an action of the robot (2B, 2C, 10).
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to production systems, unit controllers, robot controllers, and control methods. Background Technology

[0002] Patent Document 1 discloses a control system including a first controller, a second controller, and a third controller. The third controller has a first communication unit and a second communication unit. The third controller also has a control processing unit configured to perform: outputting a first action command to the first controller via the first communication unit to cause a first controlled object to move; outputting a second action command to the second controller via the second communication unit to cause a second controlled object to move; acquiring information related to the current position of the first controlled object from the first controller via the first communication unit; and correcting the second action command based on the information related to the current position of the first controlled object.

[0003] Existing technical documents

[0004] Patent documents

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

[0006] The problem that the invention aims to solve

[0007] This disclosure provides a control system that effectively improves the flexibility of a production system.

[0008] means for solving problems

[0009] The production system according to one aspect of this disclosure includes: an instruction output unit that outputs an execution instruction for the next task based on processing of multiple tasks for a workpiece and progress information of the processing; an environmental information storage unit that stores environmental information; a robot controller that enables a robot to perform the next task based on the execution instruction output from the instruction output unit and the environmental information stored in the environmental information storage unit; and an environmental update unit that updates the environmental information stored in the environmental information storage unit according to the robot's actions.

[0010] Another aspect of this disclosure relates to a unit controller, comprising: an instruction output unit that sends an execution instruction for the next task to a robot controller based on processing of multiple tasks for a workpiece and progress information of the processing; an environment information storage unit that stores environment information; and an environment update unit that updates the environment information based on the execution instruction and the environment information stored in the environment information storage unit, and according to the actions performed by the robot controller to make the robot perform.

[0011] Another aspect of this disclosure relates to a robot controller comprising: an instruction buffer storing execution instructions, which are execution instructions for the next task sent by the unit controller based on processing of multiple tasks for a workpiece and progress information of the processing; a control unit that enables the robot to execute the next task based on environmental information and the execution instructions, the environmental information being information updated by the unit controller according to the robot's execution of the task; and a progress sending unit that sends the execution status of the next task to the unit controller.

[0012] Another aspect of the control method disclosed herein includes: sending an execution instruction for the next task to a robot controller based on processing of multiple tasks for a workpiece and progress information of the processing; storing environmental information in an environmental information storage unit; and updating the environmental information based on the execution instruction and the environmental information in the environmental information storage unit, and according to the actions performed by the robot controller to make the robot perform.

[0013] Another aspect of the control method disclosed herein includes: storing execution instructions in an instruction buffer, the execution instructions being execution instructions for the next task sent by the unit controller based on processing of multiple tasks for the workpiece and progress information of the processing; causing the robot to execute the next task based on environmental information and the execution instructions, the environmental information being information updated by the unit controller according to the robot's execution of the task; and sending the execution status of the next task to the unit controller.

[0014] Invention Effects

[0015] According to the present invention, a control system that effectively improves the flexibility of a production system can be provided. Attached Figure Description

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0057] 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.

[0058] [Production System]

[0059] 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.

[0060] 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.

[0061] 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.

[0062] 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.

[0063] 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.

[0064] 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 2 As 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.

[0065] 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.

[0066] 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 causes the front end 18 to rotate about axis 26.

[0067] 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.

[0068] return Figure 1 Mobile 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.

[0069] 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.

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

[0071] [Control System]

[0072] 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.

[0073] 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.

[0074] 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.

[0075] 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.

[0076] like Figure 1As 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.

[0077] Multiple local controllers 100 respectively cause the local device 2 (hereinafter referred to as "managing 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 where the managing local device 2 actually exists.

[0078] 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.

[0079] 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.

[0080] 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.

[0081] 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.

[0082] like Figure 3 As 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.

[0083] 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.

[0084] 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.

[0085] 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.

[0086] 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.

[0087] 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 4This 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.

[0088] 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.

[0089] 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.

[0090] 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.

[0091] 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.

[0092] 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.

[0093] 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.

[0094] 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).

[0095] 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).

[0096] 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.

[0097] 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.

[0098] 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.

[0099] 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.

[0100] 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.

[0101] 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".

[0102] 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.

[0103] 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.

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

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

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

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

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

[0109] 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.

[0110] 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).

[0111] 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".

[0112] 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.

[0113] 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.

[0114] 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.

[0115] 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.

[0116] 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.

[0117] 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.

[0118] 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.

[0119] 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.

[0120] 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.

[0121] 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.

[0122] 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.

[0123] 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.

[0124] 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.

[0125] 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.

[0126] 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.

[0127] The following is for reference Figure 9 Specifically, 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.

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

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

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

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

[0132] 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.

[0133] 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)

[0134] 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)

[0135] 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)).

[0136] 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.

[0137] 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.

[0138] Reference Figure 12This 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.

[0139] 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.

[0140] 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)

[0141] 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.

[0142] 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.

[0143] Reference Figure 13This 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).

[0144] 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.

[0145] 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.

[0146] 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.

[0147] 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.

[0148] For example, such as Figure 14As 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.

[0149] 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.

[0150] 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.

[0151] 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.

[0152] 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.

[0153] 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.

[0154] 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.

[0155] 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.

[0156] 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.

[0157] 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.

[0158] 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.

[0159] 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.

[0160] 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).

[0161] 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.

[0162] 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.

[0163] 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.

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

[0165] 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.

[0166] 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.

[0167] 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 parameters for controlling and managing the virtual local device.

[0168] 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.

[0169] 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.

[0170] 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.

[0171] 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.

[0172] 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.

[0173] 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.

[0174] 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.

[0175] 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.

[0176] 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.

[0177] 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.

[0178] 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.

[0179] 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.

[0180] 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.

[0181] 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.

[0182] 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).

[0183] 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.

[0184] 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.

[0185] 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.

[0186] 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.

[0187] 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.

[0188] 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.

[0189] Will Figure 17 The chart of (a) and Figure 17Comparing 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.

[0190] 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.

[0191] 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.

[0192] 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.

[0193] 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.

[0194] 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.

[0195] 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.

[0196] 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.

[0197] 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.

[0198] 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.

[0199] 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.

[0200] 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.

[0201] 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".

[0202] 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.

[0203] 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.

[0204] 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".

[0205] 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.

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

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

[0208] 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.

[0209] 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.

[0210] 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.

[0211] 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.

[0212] 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.

[0213] like Figure 21 As 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.

[0214] 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.

[0215] Figure 22 This is a block diagram illustrating the hardware structure of control system 3. For example... Figure 22As 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.

[0216] 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.

[0217] 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.

[0218] 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.

[0219] 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.

[0220] 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.

[0221] 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.

[0222] [Control Steps]

[0223] 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.

[0224] 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.

[0225] 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.

[0226] 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.

[0227] (Progress Management Steps)

[0228] 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.

[0229] 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.

[0230] 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.

[0231] 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.

[0232] 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.

[0233] (Control Steps)

[0234] 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.

[0235] 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.

[0236] 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.

[0237] 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".

[0238] 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.

[0239] 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.

[0240] 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.

[0241] 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.

[0242] 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.

[0243] 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").

[0244] 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.

[0245] 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.

[0246] 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".

[0247] 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.

[0248] 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.

[0249] 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 processing to step S21. The local controller 100 repeats the above processing.

[0250] 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.

[0251] 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.

[0252] 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".

[0253] 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 currently executing task.

[0254] 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.

[0255] 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.

[0256] 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.

[0257] 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".

[0258] 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.

[0259] 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.

[0260] 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.

[0261] (Data Management Steps)

[0262] 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.

[0263] (Comparison steps)

[0264] 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.

[0265] 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.

[0266] 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.

[0267] 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.

[0268] 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.

[0269] 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.

[0270] 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.

[0271] 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.

[0272] 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.

[0273] 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.

[0274] 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.

[0275] 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.

[0276] 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.

[0277] 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 another task. 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 status comparison display step is now complete.

[0278] 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".

[0279] 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.

[0280] 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.

[0281] 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".

[0282] 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.

[0283] (Program Generation Steps)

[0284] 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.

[0285] 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.

[0286] 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.

[0287] 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.

[0288] 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.

[0289] 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.

[0290] 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.

[0291] 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.

[0292] 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.

[0293] (Adjustment steps)

[0294] 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.

[0295] 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.

[0296] 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".

[0297] 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.

[0298] 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.

[0299] 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.

[0300] 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".

[0301] 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.

[0302] 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.

[0303] 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.

[0304] 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.

[0305] 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.

[0306] 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.

[0307] 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.

[0308] 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.

[0309] (Environmental information update steps)

[0310] 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.

[0311] (Effects of this implementation method)

[0312] As described above, the production system 1 includes: an instruction output unit 215, which outputs an execution instruction for the next task based on the processing of multiple tasks for workpiece 9 and the progress information of the processing; an environment information storage unit 221, which stores environment information; a local controller 100 (robot controller), which enables robots 2B, 2C, and 10 to execute the next task based on the execution instruction output from the instruction output unit 215 and the environment information from the environment information storage unit 221; and an environment update unit 222, which updates the environment information from the environment information storage unit 221 according to the actions of robots 2B, 2C, and 10.

[0313] According to production system 1, in addition to the execution instruction for the next task, environmental information is also provided to the local controller 100, thereby enabling robots 2B, 2C, and 10 to perform autonomous tasks based on the environmental information. This allows robots 2B, 2C, and 10 to easily execute various tasks autonomously. Therefore, by outputting the execution instruction for the next task based on the progress of multiple tasks and updating the environmental information according to the actions of robots 2B, 2C, and 10, multiple tasks can be easily executed in an appropriate order through a simple process. Therefore, the multiple tasks to be performed by robots 2B, 2C, and 10 can be easily rearranged according to changes in the production plan for workpiece 9 or changes in the production environment. Therefore, this is effective in improving the flexibility of the production system.

[0314] Production system 1 may also include a progress update unit 216, which updates the progress information based on the execution status of the next task by robots 2B, 2C, and 10. In this case, by updating the progress information based on the execution status of the next task, appropriate progress management can continue.

[0315] Production system 1 may also include: an order acquisition unit 212, which acquires production orders for workpiece 9 from a higher-level production management system; and a processing allocation unit 213, which allocates processing for workpiece 9 specified in the production order. An instruction output unit 215 can output an execution instruction for the next task based on the processing allocation unit 213's allocation of processing for workpiece 9 and the progress information of that processing. In this case, the processing allocation unit 213 allocates processing for workpiece 9, and the instruction output unit 215 outputs an execution instruction for the next task based on the processing progress. Based on the execution instruction and environmental information, robots 2B, 2C, and 10 sequentially execute the next task. Therefore, in the production management system, production can be managed through the simple process of assigning production orders to production system 1.

[0316] The local controller 100 includes: a task program storage unit 111 (condition storage unit) that stores one or more pre-determined execution conditions for each of one or more tasks among a plurality of tasks; and a control unit 116 that enables robots 2B, 2C, and 10 to execute the next task based on the execution conditions of the next task stored in the task program storage unit 111 and the environmental information stored in the environmental information storage unit 221. In this case, by pre-determining the execution conditions in combination with the environmental information, the autonomous actions of robots 2B, 2C, and 10 can be adjusted in conjunction with progress management.

[0317] When the order acquisition unit 212 acquires production orders for multiple workpieces 9, the processing allocation unit 213 allocates multiple processes to each of the multiple workpieces 9. Each of the multiple processes contains multiple tasks. The instruction output unit 215 outputs multiple execution instructions for the next task for each of the multiple processes based on the progress information of each of the multiple processes. The local controller 100 also includes: an instruction buffer 113 that stores the execution instructions for the multiple next tasks; and a selection unit 115 that selects one of the multiple next tasks from the instruction buffer 113 based on the execution conditions 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. The control unit 116 can make the robots 2B, 2C, and 10 execute the next task selected by the selection unit 115. In this case, by also delegating the selection of tasks for the multiple workpieces 9 to the local controller 100, the progress management of tasks for the multiple workpieces 9 can be further simplified. Therefore, it is more effective in improving the flexibility of the production system.

[0318] Each of the multiple execution conditions includes a corresponding task priority. The selection unit 115 can select the next task with the highest priority if two or more of the multiple next tasks in the instruction buffer 113 are executable. In this case, more appropriate selection can simultaneously achieve flexibility and efficiency.

[0319] Multiple tasks include machine tasks performed by robots 2B, 2C, and 10, and other industrial machinery. The environmental information includes waiting times corresponding to the completion times of the machine tasks. The local controller 100 may also include a selection timing adjustment unit 121. When the instruction buffer 113 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, the selection timing adjustment unit 121 adjusts the selection timing of the next task based on the priority of the first and second tasks and the waiting time. In this case, flexibility and efficiency can be achieved simultaneously through more appropriate selection.

[0320] The timing adjustment unit 121 can set the selection timing for the next task to be after the waiting time has elapsed, when the priority of the first task is higher than that of the second task and the waiting time is below a predetermined threshold. In this case, by making a more appropriate selection, both flexibility and efficiency can be achieved simultaneously.

[0321] The local controller 100 may also include an interrupt unit 122. When the instruction buffer 113 has 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 during the execution of the second task by robots 2B, 2C, and 10, the interrupt unit 122 causes the control unit 116 to interrupt the second task and causes the selection unit to select the first task. In this case, flexibility and efficiency can be achieved simultaneously through a more appropriate selection.

[0322] After the interruption unit 122 returns the robot to the state before the start of the second task via the control unit 116, the selection unit 115 can select the first task. In this case, even if it is difficult to release the second workpiece during the execution of the second task, the second task can be easily interrupted so that the first task takes priority.

[0323] The first task includes transporting the first workpiece 9A, and the second task includes transporting the second workpiece 9B. If the first task can be performed while the robots 2B, 2C, and 10 are executing the second task, the interruption unit 122, through the control unit 116, returns the robots 2B, 2C, and 10 to the state before the transport of the second workpiece 9B begins, and then causes the selection unit 115 to select the first task. In this case, even if it is difficult to release the second workpiece 9B during the execution of the second task, the second task can be easily interrupted, allowing the first task to take priority.

[0324] 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, the interrupt unit 122 can avoid interrupting the second task if the selection unit 115 selects the first task after the second task is completed, thus shortening the execution time of multiple processes. In this case, by making a more appropriate selection, both flexibility and efficiency can be achieved simultaneously.

[0325] The production system 1 may also include a program generation unit 333 (execution condition generation unit), which generates at least a portion of one or more execution conditions based on the actions of the virtual robots corresponding to robots 2B, 2C, and 10 in virtual space. In this case, appropriate execution conditions can be easily generated.

[0326] The program generation unit 333 can modify at least a portion of one or more execution conditions to shorten the execution time of multiple processes in the virtual space when the virtual robot performs actions based on one or more execution conditions. In this case, appropriate execution conditions can be easily generated.

[0327] The production system 1 may also include: an instruction output unit 515 (virtual instruction output unit) that outputs the execution instruction for the next task based on the processing and the progress information of the processing in the virtual space; an environment information storage unit 521 (virtual environment information storage unit) that stores virtual environment information; a virtual local controller 400 (virtual robot controller) that enables the virtual robot to execute the next task in the virtual space based on the execution instruction output from the instruction output unit 515 and the virtual environment information in the environment information storage unit 521; and an environment update unit 522 (virtual environment update unit) that updates the virtual environment information in the environment information storage unit 521 according to the actions of the virtual robot. In this case, by enabling the virtual robot to move in the virtual space under conditions closer to real space, appropriate execution conditions can be easily generated.

[0328] Multiple tasks include a first robot task performed by robot 2B and a second robot task performed by robot 2C. The program generation unit 333 can generate execution conditions for the first robot task and the second robot task to avoid conflicts between the virtual robot and the second virtual robot corresponding to the second robot in virtual space. In this case, execution conditions for avoiding conflicts can be easily generated.

[0329] The program generation unit 333 can derive 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, and generate the execution conditions for the first robot task in a manner that includes the second virtual robot not being located within the overlapping area, and generate the execution conditions for the second robot task in a manner that includes the virtual robot not being located within the overlapping area. In this case, it is easier to generate execution conditions to avoid conflicts.

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

[0331] Symbol Explanation

[0332] 1…Production system, 2B, 2C, 10…Robot, 9…Workpiece, 9A…First workpiece, 9B…Second workpiece, 100…Local controller (robot controller), 111…Task program storage unit (condition storage unit), 113…Instruction buffer, 115…Selection unit, 116…Control unit, 121…Selection timing adjustment unit, 122…Interruption unit, 200…Upper-level controller (unit controller), 212…Order acquisition unit, 213…Processing allocation unit, 215…Instruction output unit, 216…Progress update unit, 221…Environmental information storage unit, 222…Environmental update unit, 333…Program generation unit (execution condition generation unit), 400…Virtual local controller (virtual 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 production system, comprising: Multiple controllers control multiple devices, each of which includes at least one robot; and The host controller is capable of communicating with the plurality of controllers. The host controller includes: The order acquisition department obtains production orders for workpieces from the mainframe production management system. The processing and allocation department allocates and processes the workpieces based on the production order; The instruction output unit outputs the execution instruction for the next task based on the processing of multiple tasks for the workpiece and the progress information of that processing. The Environmental Information Storage Department stores environmental information; and The environment updating unit updates the environmental information stored in the environment information storage unit based on the actions of the plurality of devices. Each of the plurality of controllers controls one of the plurality of devices to execute the next task corresponding to one of the execution instructions based on the environmental information. The instruction output unit outputs the execution instruction for the next task based on the processing allocated to the workpiece by the processing allocation unit and the progress information of the processing. The plurality of devices includes industrial machinery other than the robot. The multiple tasks include machine tasks performed by the industrial machinery. The environmental information includes a waiting time corresponding to the completion time of the machine task. The plurality of controllers includes at least one robot controller that controls the robot. The robot controller has: The condition storage unit stores one or more pre-determined execution conditions for each of the more than one task; An instruction buffer stores two or more execution instructions for the next task. The selection unit selects one of two or more next tasks in the instruction buffer based on a comparison between the execution conditions stored in the condition storage unit and the environment information stored in the environment information storage unit. The selection timing adjustment unit, when determining that the two or more next tasks in the instruction buffer include a first task that can be executed after the completion of the machine task and a second task that can currently be executed, adjusts the selection timing of the selection unit for the one task based on the priority of the first task and the second task and the waiting time; and The control unit enables the robot to perform a selected task.

2. The production system according to claim 1, wherein, The host controller also includes a progress update unit, which updates the progress information based on the progress of the next task.

3. The production system according to claim 1, wherein, The processing allocation unit obtains production orders for multiple workpieces from the order acquisition unit, and allocates multiple processing tasks to each of the multiple workpieces. The instruction output unit outputs the execution instruction for the next task for each of the plurality of processes based on the progress information for the plurality of processes.

4. The production system according to claim 3, wherein, Each of the execution conditions includes the priority of the two or more next tasks. If it is determined that the next two or more tasks stored in the instruction buffer can be executed, the selection unit selects one task based on the priority.

5. The production system according to claim 1, wherein, When the selection timing adjustment unit determines that the first task has a higher priority than the second task and the waiting time is less than a predetermined threshold, the selection timing unit sets the selection time for the first task to be after the waiting time has elapsed.

6. The production system according to claim 4, wherein, The robot controller further includes an interrupt unit that, upon determining that two or more next tasks of the instruction buffer include a first task and a second task with a lower priority than the first task, and determining that the first task can be executed while the robot is performing the second task, causes the control unit to suspend the second task and causes the selection unit to select the first task.

7. The production system according to claim 6, wherein, After pausing the second task before executing the first task, the interruption unit, through the control unit, causes the robot to return to the starting position of the second task.

8. The production system according to claim 7, wherein, The first task includes the transport of the first workpiece. The second task includes the transport of the second workpiece. If it is determined that the first task can be performed while the robot is performing the second task, the interruption unit suspends the transport of the second workpiece before the transport of the first workpiece is performed by the control unit, and then returns the robot to the starting position of the transport of the second workpiece.

9. The production system according to any one of claims 6 to 8, wherein, If it is determined that the execution time of the plurality of processes would be shortened if the first task were executed after the second task was completed, the interrupt unit would not cause the control unit to suspend the second task.

10. The production system according to claim 3, wherein, Also includes An execution condition generation unit generates at least a portion of the one or more execution conditions based on the actions of the virtual robot corresponding to the robot in the virtual space.

11. The production system according to claim 10, wherein, The execution condition generation unit modifies at least a portion of the one or more execution conditions to shorten the execution time of the plurality of processes in the virtual space.

12. The production system according to claim 10, wherein, Also includes: 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. A virtual environment information storage unit stores virtual environment information; a virtual environment update unit updates the virtual environment information in the virtual environment information storage unit based on the actions of the multiple virtual devices corresponding to the multiple devices in the virtual space; and... Multiple virtual controllers, each of which controls one of the multiple virtual devices to execute the next task in the virtual space corresponding to one of the virtual execution instructions based on the virtual environment information.

13. The production system according to claim 10, wherein, The plurality of devices includes a second robot. The multiple tasks include a first robot task performed by the robot and a second robot task performed by the second robot. The execution condition generation unit generates the execution conditions for the first robot task and the execution conditions for the second robot task to avoid conflicts between the virtual robot and the second virtual robot corresponding to the second robot in the virtual space.

14. The production system according to claim 13, wherein, The execution condition generation unit Export 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. The execution conditions for the first robot task are generated in a manner that indicates the second virtual robot is not located within the overlapping area. The execution conditions for the second robot task are generated in a manner that indicates the virtual robot is not located within the overlapping area.

15. A control method, comprising: The host controller obtains the workpiece production order from the host production management system; The host controller allocates and processes the workpieces based on the production order; The host controller outputs the execution instruction for the next task based on the processing of multiple tasks for the workpiece and the progress information of the processing; The host controller stores environmental information; The host controller updates the stored environmental information based on the actions of multiple devices, including at least one robot. as well as Each of the multiple controllers, based on the environmental information, controls one of the multiple devices to execute the next task corresponding to one of the execution instructions. The plurality of devices includes industrial machinery other than the robot. The multiple tasks include machine tasks performed by the industrial machinery. The environmental information includes a waiting time corresponding to the completion time of the machine task. The plurality of controllers includes at least one robot controller that controls the robot. The control includes: Store one or more pre-determined execution conditions for each of more than one task; Store two or more execution instructions for the next task; The task is selected from the two or more next tasks based on a comparison between the stored execution conditions and the environmental information. If it is determined that the two or more next tasks include a first task that can be executed after the completion of the machine task and a second task that can currently be executed, the timing for selecting the one task is adjusted based on the priority of the first task and the second task and the waiting time; and Control the robot to perform a selected task.

Citation Information

Patent Citations

  • Control system, controller, and control method

    JP2018153881A

  • Controller for robot cell

    JP1994301412A

  • Robot control device and robot control method

    JP2006343828A

  • Device and method for controlling robot

    US20060276934A1