Production system and production method

The production system uses digital twin technology to verify autonomous operations by comparing virtual and real-world execution results, addressing the challenge of real-time verification in production systems.

JP7780620B2Active Publication Date: 2025-12-04YASKAWA DENKI KK
View PDF 34 Cites 0 Cited by

Patent Information

Application Number
JP2024501413
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-02-15
Filing Date
2023-02-15
Publication Date
2025-12-04
Estimated Expiration
2043-02-15

AI Technical Summary

Technical Problem

Existing production systems face challenges in verifying autonomous operations in real time due to the variability of production device operations based on the real-world environment and production instructions, making it difficult to preset correct operation details and compare them with correct operation details in real time.

Method used

A production system utilizing digital twin technology, comprising a production device and a simulator, where the simulator performs virtual processing steps corresponding to the production device's actions, allowing for real-time comparison of execution results to verify autonomous operation.

Benefits of technology

Enables real-time verification of autonomous production operations by generating a reliable comparison standard through matching virtual and real-world execution results, enhancing operational reliability and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007780620000001
    Figure 0007780620000001
  • Figure 0007780620000002
    Figure 0007780620000002
  • Figure 0007780620000003
    Figure 0007780620000003
Patent Text Reader

Abstract

A production system 1 comprises: a production device 4 that produces a product by executing a processing step on a workpiece in a real space, on the basis of a production instruction transmitted on the basis of a production plan; a simulator 200 having a virtual production device 212 that executes, in a virtual space, a virtual processing step corresponding to the processing step which is performed by the production device 4, on the basis of the production instruction; and a comparison unit 216 that compares the execution result of the processing step and the execution result of the virtual processing step.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

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

[0002] Patent Document 1 discloses a control system including a plurality of local controllers that respectively control a plurality of local devices including at least a robot, and an environment management unit capable of communicating with the plurality of local controllers. The environment management unit includes an environment information storage unit that stores environment information, and an information update unit that updates the environment information in accordance with the operations of the plurality of local devices. Each of the plurality of local controllers includes a condition monitoring unit that monitors whether the environment information stored in the environment information storage unit satisfies a predetermined condition, and an operation execution unit that causes the local device to be controlled to perform a predetermined operation when the environment information satisfies the predetermined condition. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent Publication No. 2021-86393 Summary of the Invention [Problem to be solved by the invention]

[0004] The present disclosure provides a system that is effective for verifying autonomous operation in real time. [Means for solving the problem]

[0005] A production system according to one aspect of the present disclosure includes a production device that performs processing steps on work in real space to produce a product based on production instructions transmitted based on a production plan, a simulator having a virtual production device that performs virtual processing steps in virtual space that correspond to the processing steps performed by the production device based on the production instructions, and a comparison unit that compares the execution results of the processing steps with the execution results of the virtual processing steps.

[0006] A production method according to another aspect of the present disclosure includes producing a product by performing a processing step on a workpiece in real space based on production instructions transmitted based on a production plan, causing a virtual production device to perform a virtual processing step in virtual space that corresponds to the processing step performed by the production device based on the production instructions, and comparing the execution results of the processing step with the execution results of the virtual processing step. [Effects of the Invention]

[0007] According to the present disclosure, it is possible to provide a system that is effective for verifying autonomous operation in real time. [Brief explanation of the drawings]

[0008] [Figure 1] FIG. 1 is a schematic diagram illustrating a configuration of a production system. [Figure 2] FIG. 1 is a schematic diagram illustrating a configuration of a production device. [Figure 3] FIG. 1 is a schematic diagram illustrating a configuration of a robot. [Figure 4] FIG. 2 is a block diagram illustrating an example of the functional configuration of a higher-level controller and a local controller. [Figure 5] FIG. 2 is a block diagram illustrating an example of the functional configuration of a virtual production device. [Figure 6] FIG. 10 is a block diagram showing a modified example of the production system. [Figure 7] FIG. 10 is a block diagram showing another modified example of the production system. [Figure 8] FIG. 10 is a block diagram showing yet another modified example of the production system. [Figure 9] FIG. 2 is a block diagram illustrating an example of the hardware configuration of a data collection device, a cell simulator, a host controller, and a local controller. [Figure 10] 1 is a sequence chart illustrating a production procedure. [Figure 11] 10 is a flowchart illustrating an example of an execution procedure of a processing step. [Figure 12]10 is a flowchart illustrating an example of an execution procedure of a processing step. [Figure 13] 10 is a flowchart illustrating an example of an execution procedure of a virtual processing step. [Figure 14] 10 is a flowchart illustrating an example of an execution procedure of a virtual processing step. [Figure 15] 10 is a flowchart illustrating an example of an unplanned processing procedure. [Figure 16] 10 is a flowchart illustrating a service processing procedure. DETAILED DESCRIPTION OF THE INVENTION

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

[0010] [Production System] The production system 1 shown in Figure 1 is a system that produces products in real space. The products can be any tangible objects that are produced by mechanically processing and assembling one or more parts. Real space is the space where tangible objects actually exist.

[0011] For flexible operation of a production system, it is desirable for production devices to autonomously determine how to allocate processing steps to multiple machines in response to production instructions from a host controller, and when to execute the allocated processing steps on the multiple machines, and then operate autonomously based on the results of that determination. However, in a system in which production devices autonomously execute processing steps based on production instructions, the operations that the production devices should execute vary depending on the combination of the state of the real world when the production instructions are received and the content of the production instructions. For this reason, it is difficult to preset correct operation details for all operations that the production devices can actually perform, and then verify the operation details of the production devices by comparing them with the correct operation details in real time.

[0012] In response to this, the production system 1 utilizes so-called digital twin technology to enable the autonomous operation of production equipment to be verified in real time. The production system 1 comprises a production equipment, a simulator, and a comparison unit. The production equipment performs processing steps on workpieces in real space based on production instructions transmitted based on a production plan to produce products. The simulator has a virtual production equipment that performs virtual processing steps in virtual space that correspond to the processing steps performed by the production equipment based on the production instructions. The comparison unit compares the execution results of the processing steps with the execution results of the virtual processing steps.

[0013] The simulator executes a virtual process based on the same production instructions as the production instructions used by the production equipment. The production instructions being the same means that the production instructions have the same content and are sent at the same time. For example, the simulator receives the production instructions after they are sent to the production equipment, and executes a virtual process based on the received production instructions.

[0014] The simulator may execute the virtual processing step during a period that at least partially overlaps with the period during which the production device executes the processing step, but the execution timing of the processing step and the execution timing of the virtual processing step do not necessarily have to coincide. For example, the simulator may execute the virtual processing step after receiving a production instruction and before the production device executes the processing step.

[0015] According to the production system 1, the simulator generates a comparison standard based on the execution result of a virtual process corresponding to the situation in which the production equipment executes the process, and the execution result of the process can be monitored in a timely manner based on a comparison with the comparison standard. This is therefore effective for verifying the autonomous operation of the production equipment in real time.

[0016] 1, the production system 1 includes a production instruction device 2 and one or more cells 3. The production instruction device 2 breaks down a production plan generated by a manufacturing execution system 9 (MES: Manufacturing Execution System) into cell-based production plans, and transmits production instructions based on the cell-based production plans to each of the one or more cells 3.

[0017] Although only one cell 3 is shown in FIG. 1, the production system 1 may include multiple cells 3. In this case, the production instruction device 2 sends production instructions to each of the multiple cells 3. Each cell 3 includes a production device 4, a data collection device 100, and a cell simulator 200. As will be exemplified later, the production device 4, the data collection device 100, and the cell simulator 200 transmit and receive information to and from each other via network communication or the like.

[0018] The production device 4 performs processing steps on the work in real space to produce a product based on the production instructions sent from the production instruction device 2 based on the production plan. The work is a tangible object that the production device 4 handles to form at least a part of the product. For example, the work may be a part to be assembled into the product, an intermediate product formed by assembling parts, or the final completed product itself.

[0019] The processing steps for the workpiece include multiple steps, such as carrying a base part into the work area, assembling parts onto the base part, fastening parts to the base part by fastening or welding, and assembling one or more parts onto the base part and carrying the completed product out of the work area.

[0020] As will be described later, the production equipment 4 has a plurality of machines including at least one robot. Examples of machines other than robots include, but are not limited to, a transport device that transports workpieces, a device that adjusts the position and posture of the workpiece being worked on, and a machine tool that processes the workpiece. Any machine that can perform a process on a workpiece is included in the plurality of machines.

[0021] The multiple processes may include two or more processes that must be performed sequentially in series, or two or more processes that can be performed simultaneously by multiple machines. Examples of processes performed by a robot include transporting a workpiece, assembling the workpiece, fixing the workpiece by fastening, and loading and unloading the workpiece into and from peripheral machines such as machine tools. Examples of processes performed by a machine tool include opening and closing a door, chucking a loaded workpiece, rotating and moving the workpiece, changing tools, positioning and moving tools relative to the workpiece, and releasing the chucking after machining.

[0022] The data collection device 100 collects and stores data from the production equipment 4. For example, the data collection device 100 has, as functional components (hereinafter referred to as "functional blocks"), a history acquisition unit 111 and a database 112. The history acquisition unit 111 collects, as an example of the data, execution histories of processing processes from the production equipment 4 and stores the collected data in the database 112.

[0023] The execution history of a processing step is, for example, the transition of the state of real space due to the execution of a processing step. The state of real space is, for example, the state of cell 3 in real space, and includes the state of each of multiple machines and the state of the workpiece. Examples of the state of a robot include the joint angle of the robot, the type of tool attached to the robot, the operating state of the tool, etc. Examples of the state of a machine tool include the state of the door, the presence or absence of a workpiece, the progress of processing, etc.

[0024] Examples of the state of the work include the placement of the work, the progress of the process for the work, etc. When a production device produces multiple products of the same type, the state in real space may include the state of the work for each of the multiple products.

[0025] The production device 4 periodically acquires information representing the state of the real space. The history acquisition unit 111 sequentially acquires the information acquired by the production device 4 and stores it in the database 112 in association with time. As a result, an execution history representing the transitions of multiple types of information at a common time is accumulated in the database 112. The information representing the state of the real space may include still image data or video data of the real space captured by a camera or the like.

[0026] The processing content of a functional block corresponds to the processing content of an entity that has the functional block. For example, when the history acquisition unit 111 collects the execution history of processing steps and stores it in the database 112, this corresponds to when the data collection device 100 collects and stores the execution history of processing steps. The same applies hereinafter.

[0027] The cell simulator 200 is the simulator described above, and has the following functional blocks: a model storage unit 211, a virtual production machine 212, a state matching unit 213, a virtual data collection unit 214, a virtual database 215, a comparison unit 216, and an anomaly detection unit 217. The model storage unit 211 stores models of at least a plurality of machines. The models are numerical data that represent the layout, structure, shape, size, etc. in real space.

[0028] By using a model, it is possible to calculate changes in the state of the machine that accompany operation without actually operating the machine. The model storage unit 211 may further store a model of the workpiece.

[0029] The virtual production device 212 executes a virtual processing process in a virtual space based on the same production instructions as those on which the production device is based. The virtual processing process includes a plurality of virtual processes having the same content as the plurality of processes included in the processing process. For example, the virtual production device 212 operates a plurality of virtual machines in a virtual space based on the production instructions so as to correspond to the operation of the plurality of machines based on the production instructions. The plurality of virtual machines are, for example, models of the plurality of machines stored in the model storage unit 211.

[0030] Operating multiple virtual machines in a virtual space means calculating numerical data representing the states of the multiple machines after operation based on the model, without actually operating the multiple machines. For example, the numerical data representing the states of the multiple machines after operation can be said to be multiple virtual machines in a virtual space. The coordinates that serve as the reference for the numerical data representing the states of the multiple machines after operation are the virtual space.

[0031] The virtual production device 212 may change the state of a virtual workpiece corresponding to the workpiece in the virtual space in accordance with the operation of a virtual machine in the virtual space. Changing the state of the virtual workpiece in the virtual space means calculating, based on the model, numerical data representing the state of the workpiece after operation, without actually operating the machine. For example, the numerical data representing the state of the workpiece after operation can be said to be the virtual workpiece.

[0032] The state matching unit 213 matches the state of the virtual space to the state of the real space when execution of the processing step is started. For example, the state matching unit 213 matches the state of the virtual space to the state of the real space based on information stored in the database 112 of the data collection device 100. The state of the virtual space is, for example, the state in the virtual space of a virtual cell corresponding to cell 3. For example, the state matching unit 213 matches the states of multiple virtual machines and virtual workpieces in the virtual space to the states of multiple machines and workpieces in the real space. Matching the states of multiple virtual machines and virtual workpieces in the virtual space to the states of multiple machines and workpieces in the real space means matching the initial data that serves as the basis for calculating the above-mentioned "numerical data representing the states of the multiple machines after operation" and "numerical data representing the state of workpieces after operation" to the states of the multiple machines and workpieces in the real space.

[0033] The state matching unit 213 may adjust the state of the virtual space to the state of the real space in response to a production instruction. The state matching unit 213 may repeat adjusting the state of the virtual space to the state of the real space outside of the period when the virtual production device 212 is executing the virtual processing process.

[0034] The virtual production device 212 executes a virtual processing process based on the state of the virtual space that is matched to the state of the real space. 。 By adjusting the state of the virtual space to the state of the real space immediately before the processing process according to the production instructions is executed, and then having the virtual production device execute the virtual processing process, a more reliable comparison standard can be generated.

[0035] The virtual data collection unit 214 collects the execution history of virtual processing steps and stores it in the virtual database 215. The execution history of virtual processing steps is, for example, the transition of the state of the virtual space due to the execution of the virtual processing steps. The state of the virtual space is, for example, the state of a virtual cell in the virtual space, and includes the states of each of the multiple virtual machines and the state of the virtual work.

[0036] The virtual production device 212 periodically calculates numerical data representing the state of the virtual space corresponding to the elapsed time while increasing the elapsed time from the start of the virtual processing process. Note that the elapsed time is not the calculation time by the virtual production device 212, but a time simulating the elapsed time in real space. The virtual data collection unit 214 sequentially acquires the numerical data calculated by the virtual production device 212 and stores it in the virtual database 215 in association with the elapsed time. In this way, an execution history representing the transitions of multiple types of information at a common time is accumulated in the virtual database 215.

[0037] The comparison unit 216 compares the execution result of the processing step with the hypothetical Thoughts The comparison unit 216 compares the execution results of the processing steps with the execution results of the processing steps stored in the database 112. For example, the comparison unit 216 compares the execution history of the processing steps stored in the database 112 with the execution history of the virtual processing steps stored in the virtual database 215. For example, the comparison unit 216 compares the transition timing of the state of the real space based on the start time of the processing step with the transition timing of the state of the virtual space based on the start time of the virtual processing step. Examples of the transition timing of the state between the real space and the virtual space include the transition timing of the states of multiple machines or multiple virtual machines, and the transition timing of the state of a work or a virtual work. The transition timing means the timing at which the state changes.

[0038] The comparison between the execution results of the processing steps and the execution results of the virtual processing steps is not necessarily limited to a comparison of transition timing. The comparison unit 216 may also compare the states of multiple machines with the states of multiple virtual machines at a point in time when the same amount of time has elapsed from a reference. Examples of the comparison between the state of a machine and the state of a virtual machine include a comparison between the joint angles of a robot and the joint angles of a virtual robot, and a comparison between the joint torque of a robot and the joint torque of a virtual robot.

[0039] The comparison unit 216 may compare the state of the workpiece with the state of the virtual workpiece at a point in time when the same amount of time has elapsed since the reference. Examples of the comparison of the state of the workpiece with the state of the virtual workpiece include a comparison of the placement of the workpiece with the placement of the virtual workpiece, a comparison of the progress of the process for the workpiece with the progress of the process for the virtual workpiece, etc.

[0040] The abnormality detection unit 217 detects an abnormality in the production equipment 4 based on the comparison result by the comparison unit 216. For example, the abnormality detection unit 217 detects an abnormality in the production equipment 4 when a deviation that satisfies a predetermined condition is detected between the execution result of the processing step and the execution result of the virtual processing step. As an example, the abnormality detection unit 217 detects an abnormality in the production equipment 4 when the difference between the transition timing of the state in the real space and the transition timing of the state in the virtual space exceeds a predetermined threshold.

[0041] The production device 4 may autonomously execute a processing step using a predetermined algorithm based on the production instructions and the state of the real space. Correspondingly, the virtual production device 212 may autonomously execute a virtual processing step using the above algorithm based on the production instructions and the state of the virtual space. By executing a virtual processing step using the same algorithm as the production instructions for the production device and based on the same production instructions as the production device, a more reliable comparison standard can be generated.

[0042] Autonomously executing a processing step means that the processing step is performed by each of a plurality of machines, and / or the timing of each of the plurality of machines' operations is determined by the processing step itself, based on the state of the real space.

[0043] For example, the production instructions include instructions regarding the type and quantity of a product to be produced. The production device 4 may autonomously determine at least a portion of the operations to be performed by each of the multiple machines for a selected process using an algorithm that modifies at least a portion of the operations to be performed by each of the multiple machines based on the state of real space so as to avoid collisions with surrounding objects. Similarly, the virtual production device 212 may autonomously determine at least a portion of the operations to be performed by each of the multiple virtual machines for a selected virtual process using an algorithm that modifies at least a portion of the operations to be performed by each of the multiple virtual machines based on the state of virtual space so as to avoid collisions with surrounding objects.

[0044] The production device 4 may autonomously determine at least a portion of the operation timing of each of the multiple machines using an algorithm that determines whether or not each of the multiple machines can execute an operation based on predetermined conditions and the state of real space. Similarly, the virtual production device 212 may autonomously determine at least a portion of the operation timing of each of the multiple virtual machines using an algorithm that determines whether or not each of the multiple virtual machines can execute an operation based on predetermined conditions and the state of virtual space.

[0045] Autonomously executing a processing step may further include autonomously selecting a step to be executed by each of the multiple machines from the multiple steps included in the processing step. For example, the production device 4 may autonomously select a step to be executed by each of the multiple machines using an algorithm that identifies a step to be executed by each of the multiple machines based on the type of step that each of the multiple machines can execute, the status of each of the multiple machines, and the progress of the multiple steps. Similarly, the virtual production device 212 may autonomously select a step to be executed by each of the multiple virtual machines using an algorithm that identifies a virtual step to be executed by each of the multiple virtual machines based on the type of virtual step that each of the multiple virtual machines can execute, the status of each of the multiple virtual machines, and the progress of the multiple virtual steps.

[0046] (production equipment) Fig. 2 is a schematic diagram illustrating a production apparatus 4 that autonomously executes processing steps. The production apparatus 4 shown in Fig. 2 has multiple machines 5 including a robot, and a process allocation unit 316 that collects state information of the real space. The robot autonomously executes at least a part of the processing steps based on the state information of the real space collected by the process allocation unit 316.

[0047] For example, the production device 4 includes a plurality of machines 5 and a host controller 300. Each of the plurality of machines 5 includes a machine main body 10 and a local controller 400. The machine main body 10 performs work directly on a workpiece W in real space. The direct work is work that imparts some kind of energy, such as thermal energy, kinetic energy, or potential energy, to the workpiece W. The local controller 400 controls the machine main body 10 to perform the work.

[0048] Each of the multiple machines 5 is, for example, an industrial machine. The multiple machines 5 include at least a robot (at least one machine 5 is a robot). The multiple machines 5 also include an industrial machine that cooperates with a robot. Examples of industrial machines that cooperate with a robot include other robots, machine tools, etc. The multiple machines 5 shown in FIG. 2 include, but are not limited to, a transport device 5A and robots 5B, 5C, and 5D. The number and types of machines 5 can be changed in any way as long as they include at least one robot.

[0049] The transport device 5A has an apparatus main body 10A (machine main body) and an apparatus controller 400A (local controller). The apparatus main body 10A is driven by, for example, an electric motor or the like, and transports the workpiece W. The apparatus controller 400A controls the apparatus main body 10A so as to transport the workpiece W. Examples of the apparatus main body 10A include a belt conveyor, a roller conveyor, a carousel, etc.

[0050] Robot 5B has a robot body 10B and a robot controller 400B, robot 5C has a robot body 10C and a robot controller 400C, and robot 5D has a robot body 10D and a robot controller 400D. Robot bodies 10B, 10C, and 10D (machine bodies) perform tasks on a workpiece W transported by device body 10A. Robot controllers 400B, 400C, and 400D (local controllers) control robot bodies 10B, 10C, and 10D, respectively, to perform tasks. Examples of tasks performed on the workpiece W include assembling another workpiece W (e.g., a subpart) to a workpiece W (e.g., a base part) transported by device body 10A, fastening (e.g., bolting) or joining (e.g., welding) parts of the workpiece W transported by device body 10A, transporting the workpiece W into an NC machine tool installed around device body 10A, and transporting the workpiece W from the NC machine tool.

[0051] The robot bodies 10B and 10C are six-axis vertical articulated robots, and as shown in FIG. 3, each includes a base 11, a swivel 12, a first arm 13, a second arm 14, a third arm 17, a tip 18, and actuators 41, 42, 43, 44, 45, and 46. The base 11 is installed around the device body 10A of the transfer device 5A. The swivel 12 is provided on the base 11 so as to swivel about a vertical axis 21. The first arm 13 is connected to the swivel 12 so as to swing about an axis 22 that intersects (e.g., is perpendicular to) the axis 21. The intersection may also be in a twisted relationship, such as a three-dimensional intersection. The second arm 14 is connected to the tip of the first arm 13 so as to swing about an axis 23 that is substantially parallel to the axis 22. The second arm 14 includes a swing unit 15 and a swivel 16. Oscillating unit 15 is connected to the tip of first arm 13 and extends along axis 24 that intersects (e.g., perpendicular to) axis 23. Rotating unit 16 is connected to the tip of swinging unit 15 so as to rotate about axis 24, and extends further along axis 24. Third arm 17 is connected to the tip of rotating unit 16 so as to rotate about axis 25 that intersects (e.g., perpendicular to) axis 24. Tip 18 is connected to the tip of third arm 17 so as to rotate about axis 26 that intersects (e.g., perpendicular to) axis 25. A work tool such as a hand, a suction nozzle, or a welding torch is attached to tip 18.

[0052] Thus, the robot bodies 10B, 10C have a joint 31 connecting the base 11 and the swivel 12, a joint 32 connecting the swivel 12 and the first arm 13, a joint 33 connecting the first arm 13 and the second arm 14, a joint 34 connecting the swinging part 15 and the swivel 16 in the second arm 14, a joint 35 connecting the swivel 16 and the third arm 17, and a joint 36 connecting the third arm 17 and the tip 18.

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

[0054] The configuration of the robot bodies 10B and 10C can be changed as needed. Note 6 It may be a seven-axis redundant robot in which one more joint is added to a seven-axis vertical articulated robot, or it may be a so-called SCARA type articulated robot.

[0055] Returning to Fig. 2, the robot body 10D is a robot capable of autonomous travel. The robot body 10D is a robot similar to the robot bodies 10B and 10C, but with a base 11 that is self-propelled. An example of a self-propelled base 11 is an electrically operated automated guided vehicle (AGV).

[0056] The host controller 300 performs synchronous communication via wire or wireless with the local controllers 400 of the multiple machines 5 to collect state information of the real space. Synchronous communication means that the multiple machines 5 also communicate with the local controller 400 in each period, synchronized with a synchronization frame of a fixed period (the above-mentioned communication period). The local controller 400 controls the machine main body 10 to autonomously execute at least a part of the processing steps, based on the state information of the real space collected by the host controller 300.

[0057] The host controller 300 communicates with the production instruction device 2 via wired or wireless communication to receive production instructions. The communication between the host controller 300 and the production instruction device 2 may be synchronous or asynchronous. The host controller 300 may determine processing steps to be executed by the multiple machines 5 based on the production instructions. The host controller 300 may collect real-space state information including state information of the multiple machines 5 in real space and progress information of the processing steps, and may autonomously select a process to be executed by each of the multiple machines 5 based on the state information of the multiple machines 5 and the progress information of the processing steps. The local controller 400 may autonomously execute the selected process based on the state information of the multiple machines 5 in real space and the progress information of the processing steps.

[0058] As shown in FIG. 4, the upper controller 300 has, as functional blocks, a processing process database 311, a production instruction acquisition unit 312, a processing process selection unit 313, an information storage unit 314, an information display unit 315, a process allocation unit 316, and a command output unit 317.

[0059] The processing step database 311 stores a plurality of types of processing steps corresponding to a plurality of types of products. Each of the plurality of types of processing steps includes a plurality of tasks (steps). A task is a unit of work executed by one machine 5. The plurality of tasks of one processing step may include tasks executed by a plurality of different machines 5.

[0060] The production instruction acquisition unit 312 acquires production instructions from the production instruction device 2. The production instructions include the type of product and the production quantity for each type. The processing step selection unit 313 selects a processing step for each product based on the production instructions acquired by the production instruction acquisition unit 312 and the multiple types of processing steps stored in the processing step database 311. The processing step selection unit 313 stores the selection results of the processing step for each product in the information storage unit 314.

[0061] The information display unit 315 collects state information of the real space and stores it in the information storage unit 314. The state information of the real space includes, for example, information about the multiple machines 5 (hereinafter referred to as "machine information") and information about the workpiece W (hereinafter referred to as "workpiece information"). An example of the workpiece information is position and orientation information about the workpiece W. An example of the machine information is position and orientation information about each of the multiple machines 5. An example of the position and orientation information about the machine 5 is orientation information about the robot main bodies 10B and 10C and the position and orientation information about the robot main body 10D. The orientation information about the robot main bodies 10B and 10C may be operation angle information about the joints 31, 32, 33, 34, 35, and 36, or may be position and orientation information about the tip end 18. The position and orientation information about the robot main body 10D includes, for example, position and orientation information about the base 11 and orientation information about the robot main body 10D relative to the base 11.

[0062] The machine information includes information on control signals (hereinafter referred to as "real control signals") generated between the local controller 400 and the machine body 10. The real control signals may be internal signals generated by the local controller 400 for controlling the machine body 10, output signals output from the local controller 400 to the machine body 10, or feedback signals output from the machine body 10 to the local controller 400. Examples of internal signals include command values ​​for the position and orientation of the machine body 10. Examples of output signals include output current values ​​to actuators of the machine body 10. Specific examples of feedback signals include detected values ​​for the position, orientation, velocity, force, etc. of the machine body 10 in real space.

[0063] The information posting unit 315 updates the state information of the real space in accordance with the operations of the multiple machines 5. For example, the information posting unit 315 acquires status information of the machine main body 10 in the real space from each of the multiple local controllers 400, and updates the machine information based on the status information. The information posting unit 315 may further update the work information based on the status information of the multiple machines 5. For example, the information posting unit 315 may identify the work content performed on the work W based on the status information of the multiple machines 5, and update the work information based on the identified work content. The information posting unit 315 may also update the environmental information based on the detection results of an environmental sensor 6 provided separately from the multiple machines 5.

[0064] The environmental sensor 6 detects the state of the working environment of the multiple machines 5. An example of the environmental sensor 6 is a camera that captures images of the working environment of the multiple machines 5. When the environmental sensor 6 is a camera, the information display unit 315 performs image processing on the image captured by the environmental sensor 6 and updates the state information of the real space based on the image processing results. The environmental sensor 6 may be a sensor that detects the presence or absence of a workpiece W at a predetermined position using laser light or the like, or a sensor that detects the size of the workpiece W, etc. The production device 4 may be equipped with multiple environmental sensors 6.

[0065] The information display unit 315 may further collect progress information of the processing steps (processing steps stored for each product by the information storage unit 314) and store the information in association with the processing steps in the information storage unit 314. For example, the information display unit 315 may collect progress information of the processing steps based on the above-mentioned status states and store the information in the information storage unit 314. The progress information indicates, for example, whether each of the multiple tasks included in the processing step is not yet executed, is being executed, or has been executed.

[0066] The progress information may include reservation information indicating which of the multiple machines 5 is assigned to an unexecuted task. Assigning one of the multiple machines 5 to an unexecuted task may be performed by each of the multiple machines 5 autonomously selecting a task, or may be performed by the upper controller 300 (for example, a process assignment unit 316 described below).

[0067] The information posting unit 315 may be configured to prohibit allocation of another machine 5 to a task to which one of the multiple machines 5 is assigned in the reservation information. For example, when a request is made to allocate another machine 5 to a task to which one of the multiple machines 5 is assigned in the reservation information, the information posting unit 315 may reject the request. Furthermore, the information posting unit 315 may exclude in advance a task to which one of the multiple machines 5 is assigned from targets to which other machines 5 may be assigned.

[0068] Based on the progress information, the process allocation unit 316 allocates an unexecuted task in a processing step to one of the multiple machines 5. For example, the process allocation unit 316 allocates an unexecuted task to one of the multiple machines 5 using an algorithm that identifies a process to be executed by each of the multiple machines 5 based on the type of process that each of the multiple machines 5 can execute, the machine information, and the progress information. In this way, the task to be executed by each of the multiple machines 5 is autonomously selected. Based on the allocation result, the process allocation unit 316 updates the reservation information stored in the information storage unit 314.

[0069] Based on the progress information of the processing steps, the command output unit 317 outputs a command to execute the unexecuted task to the local controller 400. For example, the command output unit 317 identifies the next unexecuted task to be executed for each product, and outputs a command to execute the identified task to the local controller 400 of the machine 5 that is assigned to the identified task based on the reservation information.

[0070] If the information storage unit 314 stores a plurality of processing steps corresponding to a plurality of products, the command output unit 317 may output a task execution command for each product based on progress information for each of the processing steps. In this case, a plurality of execution commands corresponding to the plurality of processing steps may be output to the same local controller 400. For example, if the information storage unit 314 assigns a first processing step to a first product and a second processing step to a second product, the execution command for the task in the first processing step and the execution command for the task in the second processing step may be output to the same local controller 400. The command output unit 317 may output the task execution command in response to a request from the local controller 400 in the synchronous communication, or may output the execution command regardless of whether or not there is a request from the local controller 400.

[0071] The upper controller 300 may further include a display unit 318. The display unit 318 displays the information collected by the information display unit 315 (information stored in the information storage unit 314) on a monitor. The monitor may be included in the upper controller 300 itself, or may be included in another device (e.g., the data collection device 100) that can communicate with the upper controller 300. For example, the display unit 318 may display the information collected by the information display unit 315 on a display device of a user interface 195 (described later) of the data collection device 100.

[0072] The local controller 400 has, as functional blocks, a command buffer 411, a task program storage unit 412, a selection unit 413, a control unit 416, and a status output unit 417. The command buffer 411 stores execution commands output by the command output unit 317 of the upper controller 300. As described above, multiple execution commands corresponding to multiple processing steps can be output to the same local controller 400, and therefore multiple execution commands can be stored in the command buffer 411 at the same time.

[0073] The task program storage unit 412 stores two or more task programs 420, each defining the operation of two or more tasks executable by the machine body 10. Each of the two or more task programs 420 includes an operation program 421 and a condition header 422. The operation program 421 represents the operation of the machine body 10. For example, the operation program 421 includes a plurality of operation commands arranged in chronological order to cause the machine body 10 to perform a set of operations. When the machine body 10 is one of the robot bodies 10B, 10C, and 10D, the operation commands in the operation program 421 include a target position and target orientation of the tip unit 18 and a target displacement speed from the current position and current orientation to the target position and target orientation. The target position and target orientation of the tip unit 18 may be represented by target angles of the joints 31, 32, 33, 34, 35, and 36, and the target displacement speed may be represented by target rotational speeds of the joints 31, 32, 33, 34, 35, and 36. The condition header 422 indicates the execution conditions of the operation program 421. The execution conditions are conditions for determining the execution timing of the operation program 421 (the operation timing of the machine main body 10). The execution conditions include an execution possibility condition for determining whether the operation program 421 can be executed, and the priority of the operation program 421. The priority indicates the order of precedence among the multiple task programs 420 stored in the task program storage unit 412. When the priority is a numerical value representing the priority itself, the smaller the value, the higher the priority.

[0074] Examples of execution conditions include the following: Example 1) There are no obstacles to the operation of the machine body 10 within the operating range of the machine body 10. Example 2) The work W that is the target of the task (hereinafter simply referred to as "work W") is in the designated position. Example 3) There is no other work W at the destination where work W is being delivered. Example 4) The destination for work W is open.

[0075] Examples of obstacles include another machine body 10, a workpiece W held by the other machine body 10, or a person. An example of a destination for the workpiece W is an NC machine tool, which is an example of the other machine body 10. A specific example of the destination being open is when the door of the NC machine tool is open.

[0076] The selection unit 413 selects one of the tasks (hereinafter referred to as "corresponding tasks") corresponding to the execution command stored in the command buffer 411 based on the execution conditions (condition header 422) of each of the multiple tasks in the task program storage unit 412 and the state of real space stored in the information storage unit 314. For example, the selection unit 413 checks whether each of the corresponding tasks can be executed. For example, the selection unit 413 checks whether the state information of real space satisfies the execution condition of each of the one or more corresponding tasks. If two or more corresponding tasks are executable, the selection unit 413 selects one of the two or more executable corresponding tasks based on priority. For example, the selection unit 413 selects the corresponding task with the highest priority.

[0077] The control unit 416 controls the machine main body 10 to execute the corresponding task selected by the selection unit 413. The corresponding task corresponds to an execution command for a task autonomously selected by the process allocation unit 316 based on state information and progress information in the real space. The selection of the corresponding task by the selection unit 413 is autonomously performed based on the execution conditions (condition headers 422) of each of the multiple tasks in the task program storage unit 412 and the state of the real space in the information storage unit 314. Therefore, executing the corresponding task selected by the selection unit 413 is an example of autonomously executing at least a part of a processing step based on state information and progress information in the real space, and is also an example of autonomously executing a step assigned by the process allocation unit 316 based on state information in the real space.

[0078] The execution command for the corresponding task is output to the local controller 400 of the machine 5 that is assigned to the corresponding task by the reservation information. Therefore, executing the corresponding task selected by the selection unit 413 is also an example of executing a task assigned in the reservation information.

[0079] The control unit 416 may autonomously determine the initial movement in the corresponding task using an algorithm that corrects the movement from the current position and current posture of the machine body 10 to the initial target position and target posture of the corresponding task based on the state of real space so as to avoid collision with surrounding objects.

[0080] The status output unit 417 outputs the status information of the machine main body 10 to the host controller 300. The status information includes at least position and attitude information of the machine main body 10. The status output unit 417 may output a task completion notification together with the status information in response to completion of execution of the task program 420. The status output unit 417 may output the status information in response to a request from the host controller 300 in the synchronous communication, or may output the status information regardless of whether or not there is a request from the host controller 300.

[0081] When the machine body 10 is any of the robot bodies 10B, 10C, and 10D, the local controller 400 may further have an interlock unit 414. Hereinafter, the machine body 10 controlled by the local controller 400 will be referred to as the "corresponding machine body 10," and the machine body 10 controlled by the local controller 400 in the other machine 5 will be referred to as the "other machine body 10."

[0082] The interlock unit 414 sets a no-entry area for the corresponding machine body 10 in real space based on the progress of the task executed by the other machine body 10. For example, the interlock unit 414 sets the no-entry area for the corresponding machine body 10 based on the movement range of the other machine body 10 when executing the task assigned in the reservation information. The interlock unit 414 may set the no-entry area as the movement range itself when the other machine body 10 executes the task assigned in the reservation information, or may set the no-entry area as a range obtained by adding a predetermined margin to the movement range.

[0083] If the local controller 400 has an interlock unit 414, the execution conditions of the condition header 422 may further include a requirement that the no-entry area set by the interlock unit 414 does not overlap with the operating range of the corresponding machine main body 10. In this case, the selection unit 413 selects a corresponding task whose no-entry area does not overlap with the operating range of the corresponding machine main body 10.

[0084] The local controller 400 may further include a parameter storage unit 415. The parameter storage unit 415 stores one or more control parameters for controlling the machine body 10. Specific examples of the one or more control parameters include a position control gain, a speed control gain, and a current control gain. When the local controller 400 includes the parameter storage unit 415, the control unit 416 controls the machine body 10 based on the one or more control parameters stored in the parameter storage unit 415.

[0085] (Virtual Production Equipment) 5 is a schematic diagram illustrating a virtual production apparatus 212 that autonomously executes virtual processing steps. The virtual production apparatus 212 shown in FIG. 5 includes a plurality of virtual machines 600, including virtual robots corresponding to robots, and a process allocation unit 516 that collects state information of the virtual space. The virtual robots autonomously execute at least a part of the virtual processing steps based on the state information of the virtual space collected by the process allocation unit 516.

[0086] For example, the virtual production device 212 includes a virtual upper controller 500, multiple virtual machines 600, and a space simulator 700. The virtual upper controller 500 corresponds to the upper controller 300. The multiple virtual machines 600 correspond to the multiple machines 5, respectively. Each of the multiple virtual machines 600 has the same configuration as the local controller 400.

[0087] The space simulator 700 calculates numerical data representing the state of the machine main body 10 after operation, without operating the machine main body 10 in real space, based on the processing that each of the multiple virtual machines 600 executes in the same manner as the local controller 400. The space simulator 700 calculating numerical data representing the state of the machine main body 10 after operation, based on the processing of each of the multiple virtual machines 600, is an example of operating the machine main body 10 in virtual space (simulating the operation of the machine main body 10 in virtual space).

[0088] The virtual upper controller 500 is configured similarly to the upper controller 300, and has the following functional blocks: a task database 511, a production instruction acquisition unit 512, a processing step selection unit 513, an information storage unit 514, a virtual information display unit 515, a step allocation unit 516, and a command output unit 517. The task database 511 stores a plurality of types of processing steps corresponding to a plurality of types of products. The production instruction acquisition unit 512 acquires production instructions from the production instruction device 2. The processing step selection unit 513 selects a processing step for each product based on the production instructions acquired by the production instruction acquisition unit 512 and the plurality of types of processing steps stored in the task database 511, and stores the selected processing step in the information storage unit 514.

[0089] The virtual information posting unit 515 collects state information of the virtual space and stores it in the information storage unit 514. Similar to state information of the real space, state information of the virtual space includes, for example, information about a plurality of virtual machines 600 (hereinafter referred to as "virtual machine information") and information about virtual work (hereinafter referred to as "virtual work information"). An example of virtual work information is position and orientation information of the virtual work in the virtual space. An example of virtual machine information is position and orientation information of a plurality of virtual machines 600 in the virtual space.

[0090] The virtual machine information includes information on control signals (hereinafter referred to as "virtual control signals") generated between the multiple virtual machines 600 and the space simulator 700. The virtual control signals may be internal signals generated in the virtual machine 600 for controlling the machine main body 10, or feedback signals output from the space simulator 700 to the virtual machine 600. Examples of internal signals include command values ​​for the position and orientation of the machine main body 10. Specific examples of feedback signals include calculation results for the position, orientation, velocity, force, etc. of the machine main body 10 in the virtual space.

[0091] The virtual information posting unit 515 updates the status information of the virtual space in accordance with the operations of the multiple virtual machines 600. For example, the virtual information posting unit 515 acquires status information of the machine main body 10 in the virtual space from each of the multiple virtual machines 600, and updates the virtual machine information based on the status information. The virtual information posting unit 515 may further update the virtual work information based on the status information of the multiple virtual machines 600. For example, the virtual information posting unit 515 may identify the work content performed on the virtual work based on the status information of the multiple virtual machines 600, and update the virtual work information based on the identified work content.

[0092] The virtual information display unit 515 may further collect progress information of the virtual processing steps (the virtual processing steps stored by the information storage unit 514 for each product) and store the information in association with the virtual processing steps in the information storage unit 514. For example, the virtual information display unit 515 may collect progress information of the virtual processing steps based on the above-mentioned status states and store the information in the information storage unit 514. The progress information indicates, for example, whether each of the multiple tasks included in the virtual processing step is not yet executed, is being executed, or has been executed.

[0093] Similar to the progress information of processing steps, the progress information of virtual processing steps may include reservation information indicating which of the multiple virtual machines 600 is assigned to an unexecuted task. Assignment of one of the multiple virtual machines 600 to an unexecuted task may be performed by each of the multiple virtual machines 600 autonomously selecting a task, or may be performed by the virtual upper controller 500 (for example, a step assignment unit 516 described below).

[0094] The virtual information posting unit 515 may be configured to prohibit allocation of another virtual machine 600 to a task to which one of the multiple virtual machines 600 is assigned in the reservation information. For example, when a request is made to allocate another virtual machine 600 to a task to which one of the multiple virtual machines 600 is assigned in the reservation information, the virtual information posting unit 515 may reject the request. Furthermore, the virtual information posting unit 515 may exclude in advance a task to which one of the multiple virtual machines 600 is assigned from targets to which another virtual machine 600 may be assigned.

[0095] The process allocation unit 516 allocates an unexecuted task in a virtual processing process to one of the plurality of virtual machines 600 based on the progress information of the virtual processing process. For example, the process allocation unit 516 allocates an unexecuted task to one of the plurality of virtual machines 600 using an algorithm that identifies a process to be executed by each of the plurality of virtual machines 600 based on the type of process that each of the plurality of virtual machines 600 can execute, the virtual machine information, and the progress information of the virtual processing process. In this way, a task to be executed by each of the plurality of virtual machines 600 is autonomously selected. The process allocation unit 516 updates the reservation information stored in the information storage unit 514 based on the allocation result.

[0096] Based on the progress information of the virtual processing steps, the command output unit 517 outputs a command to execute the unexecuted task to the virtual machine 600. For example, the command output unit 517 identifies the next unexecuted task to be executed for each product, and outputs a command to execute the identified task to the virtual machine 600 assigned to the identified task based on the reservation information.

[0097] The virtual upper controller 500 may further include a display unit 518. The display unit 518 displays the information collected by the virtual information display unit 515 (information stored in the information storage unit 514) on a monitor. The monitor may be included in the cell simulator 200 itself that has the virtual upper controller 500, or may be included in another device that can communicate with the cell simulator 200. For example, the display unit 518 may display the information collected by the virtual information display unit 515 on a display device of a user interface 295 (described later) of the cell simulator 200.

[0098] The virtual machine 600 has, as functional blocks, a command buffer 611, a task program storage unit 612, a selection unit 613, a control unit 616, and a status output unit 617. The command buffer 611 stores an execution command output by the command output unit 517 of the virtual upper controller 500. The task program storage unit 612, like the task program storage unit 412, stores two or more task programs 420.

[0099] The selection unit 613 selects one of the tasks (hereinafter referred to as "corresponding tasks") corresponding to the execution command stored in the command buffer 611 based on the execution conditions (condition header 422) of each of the multiple tasks in the task program storage unit 612 and the state of the virtual space stored in the information storage unit 514. For example, the selection unit 613 checks whether each of the corresponding tasks can be executed. For example, the selection unit 613 checks whether the state information of the virtual space satisfies the execution condition of each of the one or more corresponding tasks. If two or more corresponding tasks are executable, the selection unit 613 selects one of the two or more executable corresponding tasks based on priority. For example, the selection unit 613 selects the corresponding task with the highest priority.

[0100] The control unit 616 outputs a control signal to the space simulator 700 for controlling the machine body 10 to execute the corresponding task selected by the selection unit 613. The space simulator 700 causes the machine body 10 to execute the corresponding task in a virtual space based on the control signal and the model stored in the model storage unit 211. For example, the space simulator 700 calculates the transition of the position and orientation of the machine body 10 during the execution of the corresponding task without actually operating the machine body 10.

[0101] The status output unit 617 outputs the status information of the machine main body 10 in the virtual space to the virtual upper controller 500. The status information includes at least information on the position and orientation of the machine main body 10 in the virtual space. When the execution of the task program 420 is completed, the status output unit 617 may output a task completion notification together with the status information.

[0102] Like the local controller 400, the virtual machine 600 may further include an interlock unit 614. Like the interlock unit 414, the interlock unit 614 sets a no-entry area for the corresponding machine body 10 in the virtual space based on the progress of the task executed by the other machine body 10. When the virtual machine 600 includes the interlock unit 614, the selection unit 613 selects a corresponding task whose no-entry area does not overlap with the operating range of the corresponding machine body 10.

[0103] The virtual machine 600 may further include a parameter storage unit 615. The parameter storage unit 615 stores one or more simulation parameters for operating the machine body 10 in the virtual space. Examples of the one or more simulation parameters include a position control gain, a speed control gain, and a current control gain. When the operation of the machine body 10 is opening or closing a door, the parameter storage unit 615 may store, as a simulation parameter, a waiting time from the output of a control signal to the completion of the operation of the machine body 10. When the virtual machine 600 includes the parameter storage unit 615, the control unit 616 controls the machine body 10 based on the one or more control parameters stored in the parameter storage unit 615.

[0104] As illustrated above, a system in which the production devices 4 autonomously determine how to allocate processing steps to the multiple machines 5 in accordance with production instructions from the upper controller 300 and at what timing the multiple machines 5 should execute the allocated processing steps, and then operate autonomously based on the results of the determination, enables flexible operation of the production system 1. Even under such flexible operation, by executing virtual processing steps based on the same production instructions as those for the production devices 4 and with the same algorithm as that of the production devices 4, it is possible to generate a more reliable comparison standard and verify the autonomous operation of the production devices 4 in real time.

[0105] When the selection of tasks to be executed by each of the multiple machines 5 is performed autonomously, not only may there be a discrepancy between the timing of transition of the state in the real space based on the start of the processing step and the timing of transition of the state in the virtual space based on the start of the virtual processing step, but there may also be a difference between the tasks executed by each of the multiple machines 5 and the tasks executed by each of the multiple virtual machines 600. Therefore, the comparison unit 216 may further compare the tasks executed by each of the multiple machines 5 with the tasks executed by each of the multiple virtual machines 600.

[0106] (Simulator Variation) 6, the cell simulator 200 may further include a service unit 221. In response to a request from the production equipment 4, the service unit 221 causes the virtual production equipment 212 to execute a specific simulation, and returns response information based on the results of the specific simulation to the production equipment 4. The specific simulation is a simulation specified by a request from the production equipment 4. An example of the specific simulation is a simulation for generating a recovery operation to resume the stopped operation when the production equipment 4 abnormally stops.

[0107] For example, in response to a request from the production device 4, the service unit 221 adjusts the state of the virtual space to the state of the real space and provisionally generates a return action. Thereafter, the service unit 221 generates a return action by repeatedly causing the virtual production device 212 to execute the return action in the virtual space and correcting the return action based on the result of the return action in the virtual space until the result of the return action satisfies a predetermined condition, and returns the generated return action to the production device 4 as response information. An example of the predetermined condition is that the return action does not cause collisions between objects.

[0108] Another example of a specific simulation is a simulation for correcting a corresponding task that does not satisfy the execution condition so as to satisfy the execution condition, when the corresponding task does not satisfy the execution condition.

[0109] According to the simulator that causes the virtual production equipment 212 to execute a virtual processing step based on a production instruction for the production equipment 4, the state of the virtual cell transitions along with the state of the cell. Therefore, a specific simulation in response to a request from the production equipment can be quickly executed based on the state of the virtual cell that transitions along with the state of the cell, and response information can be returned to the production equipment with a short waiting time.

[0110] The cell simulator 200 may further include a simulator corrector 222. Based on the comparison result by the comparator 216, the simulator corrector 222 changes the simulation parameters for causing the virtual production device 212 to execute the virtual processing step so as to reduce the discrepancy between the execution result of the processing step and the execution result of the virtual processing step. For example, as described above, if the waiting time from the output of the control signal to the completion of the operation of the machine main body 10 is stored as a simulation parameter and a discrepancy between the execution result of the processing step and the execution result of the virtual processing step occurs due to the stored waiting time, the simulator corrector 222 changes the waiting time so as to reduce the discrepancy.

[0111] The cell simulator 200 may further include a factor identification unit 223. When the comparison result by the comparison unit 216 includes a discrepancy between the execution result of at least a part of the processing steps by the robot and the execution result of at least a part of the virtual processing steps by the virtual robot, the factor identification unit 223 identifies a virtual machine other than the robot that is causing the discrepancy. When the factor identification unit 223 identifies a virtual machine that is causing the discrepancy, the simulator correction unit 222 corrects simulation parameters for causing the virtual machine that is causing the discrepancy to execute at least a part of the virtual processing steps.

[0112] For example, when a discrepancy occurs between the start time of a task by a robot and the start time of a task by a virtual robot due to a difference in the waiting time for a door to open or close on a machine tool, the factor identification unit 223 identifies the machine tool as the virtual machine causing the discrepancy. The simulator correction unit 222 corrects the waiting time for the door to open or close, which is stored as a simulation parameter of the machine tool and causes the discrepancy.

[0113] As shown in Fig. 7, the upper controller 300 may further include a parameter change unit 321. The parameter change unit 321 changes the control parameters for causing the production device 4 to execute the processing step based on the comparison result by the comparison unit 216, so as to reduce the discrepancy between the execution result of the processing step and the execution result of the virtual processing step. For example, the parameter change unit 321 changes the control parameters of the parameter holding unit 415 so as to reduce the discrepancy between the execution result of the processing step and the execution result of the virtual processing step (see Fig. 4). The parameter change unit 321 may be included in the upper controller 300 or the local controller 400.

[0114] The production instruction device 2 may further include a plan modification unit 811. The plan modification unit 811 modifies the production plan based on the comparison result by the comparison unit 216. For example, when the deviation between the execution result of a processing step and the execution result of a virtual processing step in one cell 3 exceeds a predetermined level, the plan modification unit 811 modifies the production plan so that the production plan assigned to that cell 3 is executed in another cell 3.

[0115] As shown in Fig. 8, the cell simulator 200 may further include an API 224 and a command conversion unit 225. The API 224 is an API (Application Programming Interface) that operates the virtual production equipment based on simulation commands. The command conversion unit 225 receives production commands, converts them into simulation commands, and passes them to the API 224. By effectively utilizing a simulator that operates based on commands in a format different from the production commands, it is possible to easily build a cell simulator 200 that causes the virtual production equipment 212 to execute a virtual processing step based on the same production commands as the production commands for the production equipment 4.

[0116] (Hardware configuration) 9 is a block diagram illustrating an example of the hardware configuration of the data collecting device 100, the cell simulator 200, the upper controller 300, and the local controller 400. As shown in FIG. 9, the local controller 400 has a circuit 490. The circuit 490 has a processor 491, a memory 492, a storage 493, a driver circuit 494, and a communication port 495. The storage 493 is configured with one or more non-volatile memory devices such as a flash memory or a hard disk. The storage 493 stores a program for configuring the above-mentioned functional blocks in the local controller 400.

[0117] The memory 492 is composed of one or more volatile memory devices such as a random access memory. The memory 492 temporarily stores a program loaded from the storage 493. The processor 491 is composed of one or more arithmetic devices such as a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit). The processor 491 executes the program loaded in the memory 492, thereby configuring each of the above-mentioned functional blocks in the local controller 400. The calculation results by the processor 491 are temporarily stored in the memory 492.

[0118] The driver circuit 494 operates the machine main body 10 in response to a request from the processor 491. The communication port 495 communicates with the upper controller 300 via the control communication network NW1 in response to a request from the processor 491.

[0119] The upper controller 300 has a circuit 390. The circuit 390 has a processor 391, a memory 392, a storage 393, an input / output port 394, a communication port 395, and a communication port 396. The storage 393 is configured with one or more non-volatile memory devices such as a flash memory or a hard disk. The storage 393 stores a program for causing the upper controller 300 to configure the above-mentioned functional blocks.

[0120] The memory 392 is composed of one or more volatile memory devices such as a random access memory. The memory 392 temporarily stores a program loaded from the storage 393. The processor 391 is composed of one or more arithmetic devices such as a CPU or a GPU. The processor 391 executes the program loaded in the memory 392, thereby configuring each of the above-mentioned functional blocks in the upper controller 300. The calculation results by the processor 391 are temporarily stored in the memory 392.

[0121] The input / output port 394 exchanges information with the environmental sensor 6 in response to a request from the processor 391. The communication port 395 communicates with the local controller 400 via the communication network NW1 in response to a request from the processor 391. The communication port 396 communicates with the data collection device 100, the cell simulator 200, and the production instruction device 2 via the communication network NW2 in response to a request from the processor 391. The communication network NW2 may be a network separate from the communication network NW1, or may be the same network as the communication network NW1.

[0122] The data collection device 100 includes a circuit 190. The circuit 190 includes a processor 191, a memory 192, a storage 193, a communication port 194, and a user interface 195. The storage 193 is configured with one or more non-volatile memory devices such as a flash memory or a hard disk. The storage 193 stores a program for configuring the above-described functional blocks in the data collection device 100.

[0123] The memory 192 is composed of one or more volatile memory devices such as a random access memory. The memory 192 temporarily stores a program loaded from the storage 193. The processor 191 is composed of one or more arithmetic devices such as a CPU or a GPU. The processor 191 executes the program loaded in the memory 192, thereby configuring each of the above-mentioned functional blocks in the data collection device 100. The calculation results by the processor 191 are temporarily stored in the memory 192.

[0124] The communication port 194 communicates with the cell simulator 200 and the upper controller 300 via the communication network NW2 in response to a request from the processor 191. The user interface 195 inputs and outputs information to and from an operator in response to a request from the processor 191. For example, the user interface 195 has a display device such as a liquid crystal monitor or an organic EL (Electro-Luminescence) monitor, and an input device such as a keyboard or a mouse. The input device may be integrated with the display device as a touch panel.

[0125] The cell simulator 200 includes a circuit 290. The circuit 290 includes a processor 291, a memory 292, a storage 293, a communication port 294, and a user interface 295. The storage 293 is configured with one or more non-volatile memory devices such as a flash memory or a hard disk. The storage 293 stores a program for causing the cell simulator 200 to configure the above-described functional blocks.

[0126] The memory 292 is composed of one or more volatile memory devices such as a random access memory. The memory 292 temporarily stores a program loaded from the storage 293. The processor 291 is composed of one or more arithmetic devices such as a CPU or a GPU. The processor 291 executes the program loaded in the memory 292 to configure each of the above-mentioned functional blocks in the cell simulator 200. The calculation results by the processor 291 are temporarily stored in the memory 292.

[0127] In response to a request from the processor 291, the communication port 294 communicates with the data collection device 100, the upper controller 300, and the production instruction device 2 via the communication network NW2. In response to a request from the processor 291, the user interface 295 inputs and outputs information to and from the operator. For example, the user interface 295 has a display device such as a liquid crystal monitor or an organic EL (Electro-Luminescence) monitor, and an input device such as a keyboard or a mouse. The input device may be integrated with the display device as a touch panel.

[0128] The above hardware configuration is merely an example and can be modified as appropriate. For example, the cell simulator 200 may be incorporated into the data collecting device 100. Furthermore, the cell simulator 200 and the data collecting device 100 may be incorporated into the upper controller 300.

[0129] [Production procedure] As an example of a production method, the following illustrates a procedure for executing a processing step and a virtual processing step by the production system 1. This procedure includes: producing a product by executing a processing step on a workpiece in real space based on a production instruction transmitted based on a production plan; causing a virtual production device to execute a virtual processing step in virtual space that corresponds to the processing step executed by the production device based on the production instruction; and comparing the execution result of the processing step with the execution result of the virtual processing step.

[0130] 10, the production instruction device 2 executes step S11. In step S11, the production instruction device 2 transmits a production instruction based on a cell-based production plan to the upper controller 300 and the cell simulator 200.

[0131] In response to receiving a production instruction transmitted from the production instruction device 2, the upper controller 300 executes a processing step in step S21. In parallel with the execution of the processing step by the upper controller 300, the data collection device 100 executes step S31. In step S31, the history acquisition unit 111 collects the execution history of the processing step and stores it in the database 112.

[0132] In response to receiving a production instruction transmitted from the production instruction device 2, the cell simulator 200 executes steps S41 and S42. In step S41, the state matching unit 213 acquires state information of the real space from the database 112. In step S42, the state matching unit 213 matches the state of the virtual space to the state of the real space based on the information acquired in step S41.

[0133] Next, the cell simulator 200 executes step S43. In step S43, the virtual production device 212 executes a virtual processing process in the virtual space. Also, in step S43, in parallel with the execution of the virtual processing process, the virtual data collection unit 214 collects the execution history of the virtual processing process and stores it in the virtual database 215.

[0134] Next, the cell simulator 200 executes steps S44 and S45. In step S44, the comparison unit 216 acquires, from the database 112, the execution history of the processing steps collected by the history acquisition unit 111 in step S31 as the execution result of the processing steps. In step S45, the comparison unit 216 compares the execution result of the processing steps with the execution result of the virtual processing steps. For example, the comparison unit 216 compares the execution history of the processing steps acquired in step S44 with the execution history of the virtual processing steps collected by the virtual data collection unit 214 in step S43 and stored in the virtual database 215. In step S45, the abnormality detection unit 217 may detect an abnormality in the production equipment 4 based on the comparison result by the comparison unit 216.

[0135] Based on the comparison result by the comparison unit 216, the cell simulator 200 may further execute step S46. In step S46, the simulator correction unit 222 changes the simulation parameters for causing the virtual production device 212 to execute the virtual processing process so as to reduce the discrepancy between the execution result of the processing process and the execution result of the virtual processing process.

[0136] Based on the comparison result by the comparison unit 216, the upper controller 300 may further execute step S22. In step S22, the parameter change unit 321 changes the control parameters for causing the production device 4 to execute the processing step so as to reduce the discrepancy between the execution result of the processing step and the execution result of the virtual processing step.

[0137] The production instruction device 2 may further execute step S12 based on the comparison result by the comparison unit 216. In step S12, the plan modification unit 811 modifies the production plan based on the comparison result by the comparison unit 216.

[0138] 11 is a flowchart illustrating the processing executed by the upper controller 300 in the above-described processing steps. As shown in FIG. 11, the upper controller 300 first executes steps S211 and S212. In step S211, the production instruction acquisition unit 312 waits for acquisition of a production instruction. In step S212, the processing step selection unit 313 selects a processing step for each product based on the production instruction acquired by the production instruction acquisition unit 312 and the multiple types of processing steps stored in the processing step database 311.

[0139] Next, the upper controller 300 executes steps S213 and S214. In step S213, the process allocation unit 316 allocates an unexecuted task in a processing process to one of the multiple machines 5 based on the progress information of the processing process. In step S214, the command output unit 317 outputs an execution command for the unexecuted task to the local controller 400 based on the progress information of the processing process.

[0140] Next, upper controller 300 executes steps S215 and S216. In step S215, information display unit 315 collects state information of the real space and progress information of the processing steps, and stores them in information storage unit 314. In step S216, display unit 318 displays the information stored in information storage unit 314 on a monitor.

[0141] Next, the upper controller 300 executes step S217. In step S217, the command output unit 317 checks whether the processing steps selected for each product by the processing step selection unit 313 have been completed. If it is determined in step S217 that at least some of the processing steps have not been executed, the upper controller 300 returns the process to step S213. Thereafter, the output of execution commands and the updating of information are repeated until the processing steps for each product are completed. If it is determined in step S217 that the processing steps have been completed, the upper controller 300 ends the process.

[0142] 12 is a flowchart illustrating the processing executed by the local controller 400 in the above processing steps. As shown in FIG. 12, the local controller 400 first executes step S221. In step S221, the selection unit 413 waits for the execution command to be stored in the command buffer 411.

[0143] Next, the local controller 400 executes steps S222 and S223. In step S222, the interlock unit 414 sets a no-entry area for the corresponding machine main body 10 in real space based on the progress of the task executed by the other machine main body 10. In step S223, the selection unit 413 checks whether any of the tasks corresponding to the execution command stored in the command buffer 411 (the corresponding tasks) are executable, based on the execution conditions (condition headers 422) of each of the multiple tasks in the task program storage unit 412 and the state of real space stored in the information storage unit 314. If it is determined in step S223 that there is no executable corresponding task, the local controller 400 returns the process to step S221.

[0144] If it is determined in step S223 that there is an executable corresponding task, the local controller 400 executes step S224. In step S224, the selection unit 413 selects an executable corresponding task. If two or more corresponding tasks are executable, the selection unit 413 selects the corresponding task with the highest priority.

[0145] Next, the local controller 400 executes steps S225 and S226. In step S225, the control unit 416 starts controlling the machine main body 10 to execute the corresponding task selected by the selection unit 413. In step S226, the status output unit 417 transmits the above-mentioned status information of the machine main body 10 to the upper controller 300.

[0146] Next, the local controller 400 executes step S227. In step S227, the status output unit 417 checks whether the execution of the corresponding task has been completed. If it is determined that the execution of the corresponding task has not been completed, the local controller 400 returns the process to step S226. Thereafter, the local controller 400 repeatedly transmits the above status information of the machine main body 10 to the upper controller 300 until the execution of the corresponding task is completed.

[0147] If it is determined in step S227 that the execution of the corresponding task has been completed, the status output unit 417 executes step S228. In step S228, the status output unit 417 includes a notification of the completion of the corresponding task in the status information and transmits the status information to the upper controller 300. Thereafter, the local controller 400 returns the process to step S221. The local controller 400 repeatedly executes the above process at a predetermined control period.

[0148] 13 is a flowchart illustrating the processing executed by the virtual upper controller 500 in the above-mentioned virtual processing steps. As shown in FIG. 13, the virtual upper controller 500 first executes steps S411 and S412. In step S411, the production instruction acquisition unit 512 waits for acquisition of a production instruction. In step S412, the processing step selection unit 513 selects a virtual processing step for each product based on the production instruction acquired by the production instruction acquisition unit 512 and the multiple types of processing steps stored in the task database 511.

[0149] Next, the virtual upper controller 500 executes steps S413 and S414. In step S413, the process allocation unit 516 allocates an unexecuted task in the processing process to one of the plurality of virtual machines 600 based on the progress information of the processing process. In step S414, the command output unit 517 outputs an execution command for the unexecuted task to the virtual machine 600 based on the progress information of the processing process.

[0150] Next, virtual upper controller 500 executes steps S415 and S416. In step S415, virtual information bulletin board unit 515 collects state information of the virtual space and progress information of the virtual processing steps, and stores them in information storage unit 514. In step S416, display unit 518 displays the information stored in information storage unit 514 on a monitor.

[0151] Next, the virtual superior controller 500 executes step S417. In step S417, the command output unit 517 checks whether the virtual processing steps selected for each product by the processing step selection unit 513 have been completed. If it is determined in step S417 that at least some of the virtual processing steps have not been executed, the virtual superior controller 500 returns the process to step S413. Thereafter, the output of execution commands and the updating of information are repeated until the virtual processing steps for each product are completed. If it is determined in step S417 that the virtual processing steps have been completed, the virtual superior controller 500 ends the process.

[0152] 14 is a flowchart illustrating the process executed by the virtual machine 600 in the virtual processing step. As shown in FIG. 14, the virtual machine 600 first executes step S421. In step S421, the selection unit 613 waits for the execution command to be stored in the command buffer 611.

[0153] Next, the virtual machine 600 executes steps S422 and S423. In step S422, the interlock unit 614 sets a no-entry area for the corresponding machine main body 10 in the virtual space based on the progress of the task executed by the other machine main body 10. In step S423, the selection unit 613 checks whether any of the tasks corresponding to the execution command stored in the command buffer 611 (the corresponding tasks) are executable, based on the execution conditions (condition headers 422) of each of the multiple tasks in the task program storage unit 612 and the state of the virtual space stored in the interlock unit 614. If it is determined in step S423 that there is no executable corresponding task, the virtual machine 600 returns the process to step S421.

[0154] If it is determined in step S423 that there is an executable corresponding task, the virtual machine 600 executes step S424. In step S424, the selection unit 613 selects an executable corresponding task. If two or more corresponding tasks are executable, the selection unit 613 selects the corresponding task with the highest priority.

[0155] Next, the virtual machine 600 executes steps S425 and S426. In step S425, the control unit 616 starts causing the machine main body 10 to execute, in the virtual space, the corresponding task selected by the selection unit 613. In step S426, the status output unit 617 transmits the status information of the machine main body 10 in the virtual space to the virtual upper controller 500.

[0156] Next, the virtual machine 600 executes step S427. In step S427, the status output unit 617 checks whether the execution of the corresponding task has been completed. If it is determined that the execution of the corresponding task has not been completed, the virtual machine 600 returns the process to step S426. Thereafter, the virtual machine 600 repeatedly transmits the above-mentioned status information of the machine main body 10 in the virtual space to the virtual upper controller 500 until the execution of the corresponding task is completed.

[0157] If it is determined in step S427 that the execution of the corresponding task has been completed, the status output unit 617 executes step S428. In step S428, the status output unit 617 includes a notification of the completion of the corresponding task in the status information and transmits this information to the virtual upper controller 500. Thereafter, the virtual machine 600 returns the process to step S421. The virtual machine 600 repeatedly executes the above process.

[0158] FIG. 15 is a flowchart illustrating an example of an unplanned processing procedure performed by the production system 1. As shown in FIG. 15, the host controller 300 first executes step S231. In step S231, the host controller 300 waits until unplanned processing becomes necessary. An example of unplanned processing is the above-mentioned recovery operation. For example, when the operation of multiple machines 5 is stopped due to the occurrence of an abnormality, the host controller 300 determines that recovery operation is necessary.

[0159] Next, the upper controller 300 executes step S232. In step S232, the upper controller 300 requests a service for executing an unplanned process from the cell simulator 200. For example, the upper controller 300 requests the cell simulator 200 to generate an unplanned process to be executed by at least one of the multiple machines 5.

[0160] In response to a service request from the upper controller 300, the cell simulator 200 executes steps S431 and S432. In step S431, the state matching unit 213 acquires state information of the real space from the database 112. In step S432, the state matching unit 213 executes step S4 3 Based on the information obtained in step 1, the state of the virtual space is adjusted to match the state of the real space.

[0161] Next, the cell simulator 200 executes steps S433 and S434. In step S433, the service unit 221 executes service processing to cause the virtual production device 212 to execute the specific simulation and generate response information based on the result of the specific simulation. In step S434, the service unit 221 transmits the result of the service processing to the upper controller 300 as response information.

[0162] In response to receiving the service result, the upper controller 300 executes step S233. In step S233, the upper controller 300 causes at least one of the multiple machines 5 to execute unplanned processing based on the response information. This completes the unplanned processing procedure by the production system 1.

[0163] Figure 16 shows the steps S433 16 is a flowchart illustrating a procedure of a service process in the cell simulator 200. As shown in Fig. 16, the cell simulator 200 first executes steps S451 and S452. In step S451, the service unit 221 provisionally generates an unplanned process. In step S452, the service unit 221 causes the virtual production device 212 to execute the unplanned process in the virtual space.

[0164] Next, the cell simulator 200 executes step S453. In step S453, it is confirmed whether the operation result of the virtual production device 212 in the virtual space satisfies a predetermined condition. If it is determined in step S453 that the operation result of the virtual production device 212 in the virtual space does not satisfy the predetermined condition, the cell simulator 200 executes step S454. In step S454, the service unit 221 corrects the unplanned processing based on the operation result of the virtual production device 212 in the virtual space. Thereafter, the cell simulator 200 returns the processing to step S452.

[0165] Thereafter, correction of the unplanned process and operation of the virtual production device 212 in the virtual space are repeated until the operation result of the virtual production device 212 in the virtual space satisfies the predetermined condition. If it is determined in step S453 that the operation result of the virtual production device 212 in the virtual space satisfies the predetermined condition, the cell simulator 200 completes the service processing.

[0166] 〔summary〕 The above-described exemplary embodiment includes the following configurations. (1) A production system 1 comprising: a production device 4 that produces a product by executing a processing step on a workpiece in real space based on a production instruction transmitted based on a production plan; a simulator 200 having a virtual production device 212 that executes a virtual processing step in virtual space corresponding to the processing step performed by the production device 4 based on the production instruction; and a comparison unit 216 that compares the execution result of the processing step with the execution result of the virtual processing step. Based on the same production instructions as those for the production device 4, the virtual production device 212 executes a virtual processing process in a virtual space, and the execution results of the virtual processing process according to the situation in which the production device 4 executes the processing process are generated as a comparison standard, and the execution results of the processing process can be monitored based on a comparison with the comparison standard.

[0167] (2) The production system 1 described in (1) further includes a state matching unit 213 that matches the state of the virtual space to the state of the real space when starting to execute the processing process, and the virtual production device 212 executes the virtual processing process based on the state of the virtual space that has been matched to the state of the real space. By adjusting the state of the virtual space to the state of the real space immediately before the processing step according to the production instruction is executed, and then having the virtual production device 212 execute the virtual processing step, a more reliable comparison standard can be generated.

[0168] (3) The production system 1 described in (2) further includes a history acquisition unit 111 that collects the execution history of processing processes from the production equipment 4 and stores it in a database 112, and a state matching unit 213 matches the state of the virtual space to the state of the real space based on the information stored in the database 112. By using an architecture in which the production device 4 stores the execution history of processing steps in the database 112 and adjusts the state of the virtual cell to the state of the cell based on the information stored in the database 112, it is possible to easily build a system in which the state of the virtual space is adjusted to the state of the real space immediately before the processing step according to the production instruction is executed, and then the virtual production device 212 executes the virtual processing step.

[0169] (4) A production system 1 described in any one of (1) to (3), wherein the production device 4 autonomously executes processing steps using a predetermined algorithm based on production instructions and the state of the real space, and the virtual production device 212 autonomously executes virtual processing steps using an algorithm based on production instructions and the state of the virtual space. By executing the virtual processing steps based on the same production instructions as those for the production equipment 4 and using the same algorithm as that of the production equipment 4, a more reliable comparison standard can be generated.

[0170] (5) The production system 1 described in (4) has a plurality of machines 5 including robots 5B, 5C, and 5D, and an information display unit 315 that collects status information of the real space, and the robots 5B, 5C, and 5D autonomously perform at least a part of the processing steps based on the status information of the real space collected by the information display unit 315. When the robots 5B, 5C, and 5D are made to perform autonomous operations based on production instructions and cell status information, it is even more difficult to identify the virtual processing steps to be executed by the virtual production device 212 in order to generate a comparison object. For this reason, it is even more useful to compare the results with a comparison object generated by a simulation based on the production instructions.

[0171] (6) The production system 1 described in (5), wherein the information display unit 315 further collects progress information of the processing process, and the robots 5B, 5C, and 5D autonomously execute at least a part of the processing process based on the state information of the real space and the progress information. When the robots 5B, 5C, and 5D are made to perform autonomous operations based on progress information in addition to production instructions and cell status information, it becomes even more difficult to specify the virtual processing steps to be executed by the virtual production device 212 in order to generate a comparison object. For this reason, it is even more useful to compare the results with a comparison object generated by a simulation based on the production instructions.

[0172] (7) The production system 1 described in (6) further includes a process allocation unit 316 that allocates unexecuted processes in the processing process to one of multiple machines 5 based on progress information, and the robots 5B, 5C, and 5D autonomously execute the processes allocated by the process allocation unit 316 based on state information in the real space. When the process allocation unit 316 autonomously allocates processes to multiple machines 5 based on progress information, it becomes even more difficult to identify the virtual processing processes to be executed by the virtual production device 212 in order to generate a comparison object. For this reason, it is even more useful to compare the process with a comparison object generated by a simulation based on production instructions.

[0173] (8) The production system 1 described in (6) or (7), wherein the robots 5B, 5C, and 5D have an interlock unit 414 that sets no-entry areas for the robots 5B, 5C, and 5D based on the progress of a process performed by any of the multiple machines 5 other than the robots 5B, 5C, and 5D. Because the no-entry areas for the robots 5B, 5C, and 5D are dynamically generated based on the progress of the processes executed by the machines 5 other than the robots 5B, 5C, and 5D, there is no need to set no-entry areas for the robots 5B, 5C, and 5D in advance, taking into account every possible situation. This makes it easy to build the production system 1. If the no-entry area is set autonomously, it becomes more difficult to specify the virtual processing steps to be executed by the virtual production device 212 in order to generate a comparison object. For this reason, it is more useful to compare the no-entry area with a comparison object generated by a simulation based on production instructions.

[0174] (9) The progress information includes reservation information indicating which of the multiple machines 5 is assigned to an unexecuted process, and the information posting unit 315 prohibits the assignment of any of the multiple machines 5 to a process to which any of the multiple machines 5 is assigned in the reservation information, and each of the multiple machines 5 executes the process assigned in the reservation information. ( 8 ) The production system 1 described above. By using the reservation information, the setting of the no-entry areas can be executed in a more timely manner. Furthermore, by using the reservation information, the autonomous operation of each of the multiple machines 5 can be executed in a more timely manner.

[0175] (10) The production system 1 according to any one of (5) to (9), further comprising a display unit 318 that displays the information collected by the information display unit 315 on a monitor. The operator can easily understand what state the autonomously performed operations of the robots 5B, 5C, and 5D are based on.

[0176] (11) A production system 1 described in any one of (5) to (10), wherein the virtual production device 212 has a plurality of virtual machines 600 including virtual robots corresponding to the robots 5B, 5C, and 5D, and a virtual information display unit 515 that collects status information of the virtual space, and the virtual robots autonomously execute at least a part of the virtual processing steps based on the status information of the virtual space collected by the virtual information display unit 515. By matching the configuration of the virtual production equipment 212 to the configuration of the production equipment 4, a more reliable comparison object can be generated.

[0177] (12) The production system 1 described in (11) further includes a factor identification unit 223 that identifies a virtual machine 600 other than the robots 5B, 5C, and 5D that is the cause of the deviation when the comparison result by the comparison unit 216 includes a deviation between the execution result of at least a portion of the processing step by the robots 5B, 5C, and 5D and the execution result of at least a portion of the virtual processing step by the virtual robot, and a simulator correction unit 222 that corrects simulation parameters for causing the virtual machine 600 that is the cause of the deviation to execute at least a portion of the virtual processing step. The reliability of comparison objects generated by simulation can be further improved.

[0178] (13) A production system 1 according to any one of (2) to (12), wherein the comparison unit 216 compares the timing of transition of the state of the real space according to the progress of the processing process with the timing of transition of the state of the virtual space according to the progress of the virtual processing process. This makes it easier to utilize the results of comparing the execution results of the processing steps with the execution results of the virtual processing steps.

[0179] (14) The production system 1 described in any one of (1) to (13), wherein the simulator 200 further includes a service unit 221 that causes the virtual production device 212 to execute a specific simulation in response to a request from the production device 4 and returns response information based on the results of the specific simulation to the production device 4. According to the simulator 200, which causes the virtual production equipment 212 to execute a virtual processing step based on a production instruction for the production equipment 4, the state of the virtual cell transitions along with the state of the cell. Therefore, a specific simulation in response to a request from the production equipment 4 can be quickly executed based on the state of the virtual cell that transitions along with the state of the cell, and response information can be returned to the production equipment 4 with a short waiting time.

[0180] (15) The production system 1 described in any one of (1) to (14) further comprises a parameter change unit 321 that changes control parameters for causing the production device 4 to execute a processing process so as to reduce the discrepancy between the execution result of the processing process and the execution result of the virtual processing process based on the comparison result by the comparison unit 216. The comparison result by the comparison unit 216 can be used to adjust the control parameters.

[0181] (16) The production system 1 described in any one of (1) to (15) further comprises a simulator correction unit 222 that changes simulation parameters for causing the virtual production device 212 to execute a virtual processing process based on the comparison result by the comparison unit 216 so as to reduce the discrepancy between the execution result of the processing process and the execution result of the virtual processing process. The comparison results from the comparison unit 216 can be used to adjust the simulation parameters.

[0182] (17) The production system 1 according to any one of (1) to (16), further comprising a plan change unit 811 that changes the production plan based on the comparison result by the comparison unit 216. The comparison result by the comparison unit 216 can be used to adjust the production plan.

[0183] (18) The production system 1 according to any one of (1) to (17), wherein the simulator 200 further includes an API 224 that operates the virtual production device 212 based on a simulation instruction, and a command conversion unit 225 that receives the production instruction and converts it into a simulation instruction. It is possible to easily construct a simulator 200 that causes a virtual production device 212 to execute a virtual processing step based on the same production instructions as those for the production device 4.

[0184] (19) A production method including: producing a product by executing a processing step on a workpiece in real space based on a production instruction transmitted based on a production plan; causing a virtual production device 212 to execute a virtual processing step in virtual space that corresponds to the processing step performed by the production device 4 based on the production instruction; and comparing the execution result of the processing step with the execution result of the virtual processing step.

[0185] Although the embodiments have been described above, the present disclosure is not necessarily limited to the above-described embodiments, and can be modified as appropriate within the scope of the gist thereof. [Explanation of symbols]

[0186] 1...production system, 4...production equipment, 111...history acquisition unit, 112...database, 200...simulator, 212...virtual production equipment, 213...state matching unit, 216...comparison unit, 5...machine, 5B, 5C, 5D...robot, 315...information display unit, 316...process allocation unit, 318...display unit, 414...interlock unit, 515...virtual information display unit, 600...virtual machine, 221...service unit, 222...simulator correction unit, 223...factor identification unit, 321...parameter change unit, 811...plan change unit, 224...API, 225...command conversion unit.

Claims

1. A plurality of machines that execute processing on work in real space; an information display unit that acquires information about the state of the real space, including the states of the plurality of machines and the state of the workpiece; a production instruction acquisition unit that acquires production instructions transmitted by a production instruction device based on a production plan; a production device that produces a product by executing a processing step on the workpiece in the real space based on a predetermined algorithm, the production instruction, and information on the state of the real space, so as to autonomously change the operation details of the plurality of machines corresponding to the production instruction depending on the state of the real space when the operation is started based on the production instruction; a plurality of virtual machines that execute processing for virtual work in a virtual space; a virtual information display unit that acquires information about the state of the virtual space, including the states of the plurality of virtual machines and the state of the virtual work; a virtual production instruction acquisition unit that acquires the same production instruction as the production instruction; a virtual production device that executes a virtual processing step corresponding to the processing step in the virtual space based on the algorithm, the production instruction, and information on the state of the virtual space so as to autonomously change the operation content of the plurality of virtual machines corresponding to the production instruction depending on the state of the virtual space when the operation is started based on the production instruction; a comparison unit that compares the execution result of the processing step with the execution result of the virtual processing step; an abnormality detection unit that detects an abnormality in the production device when a deviation between the execution result of the processing process and the execution result of the virtual processing process exceeds a predetermined level in the comparison result by the comparison unit; A production system comprising: a state matching unit that matches the state of the virtual space to the state of the real space when execution of the processing process is started before the virtual information display unit collects information on the state of the virtual space for the virtual processing process.

2. further comprising a history acquisition unit that collects execution histories of the processing steps from the production devices and stores the collected execution histories in a database; the state matching unit matches the state of the virtual space to the state of the real space based on the information stored in the database; The production system according to claim 1.

3. The plurality of machines includes a robot, the robot autonomously executes at least a part of the processing steps based on the state information of the real space collected by the information display unit. The production system according to claim 1.

4. The information display unit further collects progress information of the processing steps, the robot autonomously executes at least a part of the processing steps based on the state information of the real space and the progress information. The production system according to claim 3.

5. The production device comprises: a process allocation unit that allocates an unexecuted process in the processing process to one of the plurality of machines based on the progress information; and the robot autonomously executes the process assigned by the process assignment unit based on state information of the real space. The production system according to claim 4.

6. the robot has an interlock unit that sets a no-entry area for the robot based on the progress of a process executed by any one of the plurality of machines other than the robot; The production system according to claim 5.

7. the progress information includes reservation information indicating which of the plurality of machines is assigned to an unexecuted process, the information posting unit prohibits allocation of other machines to a process to which any of the plurality of machines is allocated in the reservation information, each of the plurality of machines performs a process assigned in the reservation information; The production system according to claim 6.

8. The information display unit further includes a display unit that displays the information collected by the information display unit on a monitor. The production system according to any one of claims 3 to 7.

9. The plurality of virtual machines includes a virtual robot corresponding to the robot, the virtual robot autonomously executes at least a part of the virtual processing step based on state information of the virtual space collected by the virtual information display unit. The production system according to any one of claims 3 to 7.

10. a factor identification unit that, when the comparison result by the comparison unit includes a discrepancy between the execution result of at least a part of the processing steps by the robot and the execution result of at least a part of the virtual processing steps by the virtual robot, identifies a virtual machine other than the robot that is the cause of the discrepancy; a simulator correction unit that corrects simulation parameters for causing a virtual machine that causes the deviation to execute at least a part of the virtual processing steps; Further comprising: The production system according to claim 9.

11. the comparison unit compares a transition timing of the state of the real space according to the progress of the processing step with a transition timing of the state of the virtual space according to the progress of the virtual processing step; The production system according to any one of claims 1 to 7.

12. A service section that, in response to a request from the production device, causes the virtual production device to execute a specific simulation separate from the virtual processing process, and returns response information based on the result of the specific simulation to the production device. Further comprising: The production system according to any one of claims 1 to 7.

13. a parameter changing unit that changes a control parameter for causing the production device to execute the processing step based on a comparison result by the comparing unit so as to reduce a discrepancy between an execution result of the processing step and an execution result of the virtual processing step. The production system according to any one of claims 1 to 7.

14. a simulator correction unit that changes simulation parameters for causing the virtual production apparatus to execute the virtual processing process based on a comparison result by the comparison unit so as to reduce a discrepancy between an execution result of the processing process and an execution result of the virtual processing process. The production system according to any one of claims 1 to 7.

15. further comprising a plan change unit that changes the production plan based on a comparison result by the comparison unit. The production system according to any one of claims 1 to 7.

16. an API for operating the virtual production device based on a simulation instruction; a command conversion unit that receives the production command and converts it into a simulation command; Further comprising: The production system according to any one of claims 1 to 7.

17. In a production device having a plurality of machines that execute processes on workpieces in real space, acquiring production instructions transmitted by a production instruction device based on a production plan; acquiring information on a state of the real space including states of the plurality of machines and a state of the workpiece; producing a product by having the production device execute a processing step on the workpiece in the real space based on a predetermined algorithm, the production instruction, and information on the state of the real space, so that the operation details of the plurality of machines corresponding to the production instruction are autonomously changed depending on the state of the real space when the production device starts operating based on the production instruction; acquiring a production instruction identical to the production instruction in a virtual production device having a plurality of virtual machines that execute processing on virtual work in a virtual space; adjusting the state of the virtual space to the state of the real space at the time of starting execution of the processing step; acquiring information on a state of the virtual space, including a state of the plurality of virtual machines in the virtual space that is matched to a state of the real space and a state of the virtual work; causing the virtual production device to execute a virtual processing step corresponding to the processing step in the virtual space based on the algorithm, the production instruction, and information on the state of the virtual space, so that the operation content of the plurality of virtual machines corresponding to the production instruction is autonomously changed depending on the state of the virtual space when the virtual production device starts operation based on the production instruction; comparing the execution result of the processing steps with the execution result of the virtual processing steps; detecting an abnormality in the production device when a deviation between the execution result of the processing step and the execution result of the virtual processing step exceeds a predetermined level in a comparison result between the execution result of the processing step and the execution result of the virtual processing step; A production method including:

Citation Information

Patent Citations

  • Transfer method

    JP1988064800A

  • Lot

    JP1989051278A

  • Assigning method of resource to lot for attaining target of system

    JP1994259402A

  • Production system

    JP1994274499A

  • Virtual cim system, construction method for the virtual cim system and construction method for cim system

    JP1995325803A