WO2023157889A1 - 生産システム及び生産方法 - Google Patents

生産システム及び生産方法 Download PDF

Info

Publication number
WO2023157889A1
WO2023157889A1 PCT/JP2023/005317 JP2023005317W WO2023157889A1 WO 2023157889 A1 WO2023157889 A1 WO 2023157889A1 JP 2023005317 W JP2023005317 W JP 2023005317W WO 2023157889 A1 WO2023157889 A1 WO 2023157889A1
Authority
WO
WIPO (PCT)
Prior art keywords
virtual
production
unit
information
state
Prior art date
Application number
PCT/JP2023/005317
Other languages
English (en)
French (fr)
Inventor
剛 山下
幸男 橋口
佳史 斧山
Original Assignee
株式会社安川電機
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社安川電機 filed Critical 株式会社安川電機
Publication of WO2023157889A1 publication Critical patent/WO2023157889A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Definitions

  • the present disclosure relates to production systems and production methods.
  • Patent Document 1 discloses a control system that includes a plurality of local controllers that respectively control a plurality of local devices including at least robots, and an environment manager that can communicate with the plurality of local controllers.
  • the environment management unit has an environment information storage unit that stores environment information, and an information update unit that updates the environment information according to 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 a local device to be controlled when the environment information satisfies the predetermined condition. and an operation execution unit that causes the to execute a predetermined operation.
  • the present disclosure provides an effective system for verifying autonomous behavior in real time.
  • a production system includes a production apparatus that produces a product by executing a processing process on a workpiece in real space based on a production instruction transmitted based on a production plan, and a production apparatus that produces a product based on the production instruction.
  • a simulator having a virtual production device that executes, in a virtual space, a virtual processing step corresponding to the processing steps performed by the production device; Prepare.
  • a production method includes: producing a product by executing a processing process on a workpiece in a real space based on a production instruction transmitted based on a production plan; , causing a virtual production device to execute a virtual processing step corresponding to the processing step performed by the production device in a virtual space, and comparing the execution result of the processing step with the execution result of the virtual processing step.
  • FIG. 1 is a schematic diagram illustrating the configuration of a production system
  • FIG. 1 is a schematic diagram illustrating the configuration of a production apparatus
  • FIG. 1 is a schematic diagram illustrating the configuration of a robot
  • FIG. 3 is a block diagram illustrating functional configurations of a higher-level controller and a local controller
  • FIG. 3 is a block diagram illustrating the functional configuration of a virtual production device
  • FIG. It is a block diagram which shows the modification of a production system.
  • FIG. 11 is a block diagram showing another modified example of the production system
  • FIG. 11 is a block diagram showing still another modified example of the production system
  • 3 is a block diagram illustrating hardware configurations of a data collection device, a cell simulator, a host controller, and a local controller;
  • 4 is a sequence chart illustrating a production procedure; 4 is a flow chart illustrating an execution procedure of processing steps; 4 is a flow chart illustrating an execution procedure of processing steps; 4 is a flow chart illustrating an execution procedure of a virtual processing step; 4 is a flow chart illustrating an execution procedure of a virtual processing step; 4 is a flow chart illustrating an unplanned processing procedure; 4 is a flow chart illustrating a service processing procedure;
  • a production system 1 shown in FIG. 1 is a system for producing a product in a physical space.
  • a product may be any tangible object produced by mechanical processing and assembly of one or more parts.
  • Real space is the space in which tangible objects actually exist.
  • a production system 1 makes it possible to verify the autonomous operation of production equipment in real time by utilizing so-called digital twin technology.
  • a production system 1 includes a production device, a simulator, and a comparison section. Based on the production instructions transmitted based on the production plan, the production equipment executes the processing steps on the workpiece in the real space to produce the product.
  • the simulator has a virtual production device that executes, in virtual space, virtual processing steps corresponding to the processing steps performed by the production device based on the production instructions.
  • the comparison unit compares the execution result of the processing step with the execution result of the virtual processing step.
  • the simulator executes virtual processing steps based on the same production instructions as the production equipment is based on.
  • the same production instructions mean that the content of the production instructions is the same and the transmission timing of the production instructions is the same.
  • the simulator receives production instructions after the production instructions are transmitted to the production equipment, and executes virtual processing steps based on the received production instructions.
  • the simulator may execute the virtual processing steps during a period that at least partially overlaps with the period during which the production apparatus executes the processing steps, but the execution timing of the processing steps does not necessarily match the execution timing of the virtual processing steps. It doesn't have to be.
  • the simulator may perform virtual process steps after receiving production instructions and before the production equipment performs the process steps.
  • the execution results of the virtual processing steps according to the situation in which the production equipment executes the processing steps are generated by the simulator as comparison standards, and the execution results of the processing steps are timely displayed based on comparison with the comparison standards. can be monitored. Therefore, it is effective for verifying the autonomous operation of production equipment in real time.
  • 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 a production plan for each cell, and issues production instructions based on the production plan for each cell to one or more cells 3. Send to each.
  • MES Manufacturing Execution System
  • the production system 1 may include a plurality of cells 3.
  • the production instruction device 2 transmits production instructions to each of the plurality of cells 3 .
  • the cell 3 has a production device 4 , a data collection device 100 and a cell simulator 200 .
  • the production device 4, the data collection device 100, and the cell simulator 200 mutually transmit and receive information through network communication or the like.
  • the production device 4 executes the processing steps on the workpiece in the real space to produce the product based on the production instructions sent from the production instruction device 2.
  • a work is a tangible object handled by the production apparatus 4 to constitute at least part of the product.
  • the work may be a part to be assembled into a product, an intermediate product formed by assembling parts, or the final product itself.
  • the processing process for the workpiece includes multiple processes. Examples of multiple steps include bringing the base part into the work area, assembling the part to the base part, securing the part to the base part by fastening or welding, etc., and assembling one or more parts to the base part. Carrying out the completed product from the work area, and the like.
  • the production equipment 4 has multiple machines including at least one robot.
  • machines other than robots include, but are not limited to, a conveying device that conveys a work, a device that adjusts the position and orientation of a work to be worked on, and a machine tool that processes a work. It is included in multiple machines if it is possible to execute processes for workpieces.
  • a plurality of steps may include two or more steps to be executed sequentially in series, or may include two or more steps that can be executed concurrently by a plurality of machines.
  • processes executed by robots include work transfer, work assembly, work fixation by fastening, and work loading/unloading to and from peripheral machines such as machine tools.
  • processes executed by a machine tool include opening and closing of doors, chucking of loaded workpieces, rotation/movement of workpieces, tool change, arrangement/movement of tools relative to workpieces, and release of chucks after machining. .
  • the data collection device 100 collects and accumulates data from the production device 4.
  • the data collection device 100 has a history acquisition unit 111 and a database 112 as functional components (hereinafter referred to as “function blocks”).
  • the history acquisition unit 111 collects execution histories of processing steps from the production apparatuses 4 and stores them in the database 112 .
  • the execution history of the processing steps is, for example, the transition of the state of the real space due to the execution of the processing steps.
  • the state of the physical space is, for example, the state of the cell 3 in the physical space, and includes the states of each of a plurality of machines and the state of the work.
  • Examples of the state of the robot include the joint angle of the robot, the type of tool attached to the robot, the operating state of the tool, and the like.
  • Examples of the state of the machine tool include the state of the door, the presence or absence of a workpiece, and the progress of machining.
  • Examples of work status include the placement of work and the progress of processes with respect to work.
  • the state of the physical space may include the state of the workpiece for each of the plurality of products.
  • the production device 4 periodically acquires information representing the state of the physical space.
  • the history acquisition unit 111 sequentially acquires the information acquired by the production apparatus 4 and stores it in the database 112 in association with the time.
  • the database 112 accumulates an execution history that expresses transitions of a plurality of types of information at a common time.
  • the information representing the state of the physical space may include still image data or moving image data of the physical space captured by a camera or the like.
  • the content of processing by the functional block corresponds to the content of processing by the subject having the functional block.
  • the history acquisition unit 111 collecting the execution history of the processing steps and storing them in the database 112 corresponds to the data collection device 100 collecting and storing the execution history of the processing steps. The same applies to the following.
  • the cell simulator 200 is the simulator described above, and has functional blocks including a model storage unit 211, a virtual production device 212, a state matching unit 213, a virtual data collection unit 214, a virtual database 215, a comparison unit 216, and an abnormality detection unit 217 .
  • the model storage unit 211 stores at least models of a plurality of machines.
  • a model is numerical data representing the arrangement, structure, shape, size, etc. in the real space.
  • the model storage unit 211 may further store models of workpieces.
  • the virtual production equipment 212 executes virtual processing steps in virtual space based on the same production instructions as the production instructions based on the production equipment.
  • a virtual process step includes a plurality of virtual steps having the same content as a plurality of steps included in the process step.
  • the virtual production device 212 operates a plurality of virtual machines in the virtual space based on the production instructions so as to correspond to the operations of the machines based on the production instructions.
  • a plurality of virtual machines are models of a plurality of machines stored in the model storage unit 211, for example.
  • Running multiple virtual machines in a virtual space means calculating numerical data representing the state of multiple machines after operation based on the above model without actually running multiple machines. For example, it can be said that numerical data representing the states of a plurality of machines after operation are a plurality of virtual machines in the virtual space.
  • the virtual space is the coordinates that serve as a reference for numerical data representing the states of multiple machines after operation.
  • the virtual production device 212 may change the state of the virtual work corresponding to the work in the virtual space according to the operation of the virtual machine in the virtual space.
  • Changing the state of the virtual work in the virtual space means calculating numerical data representing the state of the work after operation based on the model without actually operating the machine. For example, it can be said that numerical data representing the state of the work after operation is the virtual work.
  • the state matching unit 213 matches the state of the virtual space with the state of the real space when starting the execution of the processing steps. For example, the state matching unit 213 matches the state of the virtual space with 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 of the virtual cell corresponding to the cell 3 in the virtual space.
  • the state matching unit 213 matches the states of the plurality of virtual machines and works in the virtual space to the states of the plurality of machines and works in the real space.
  • Matching the states of multiple virtual machines and virtual works in the virtual space to the states of the multiple machines and works in the real space is the above-mentioned "numerical data representing the states of multiple machines after operation" and "post-operation It means matching the initial data, which is the basis for calculating "numerical data representing the state of the workpiece", to the states of multiple machines and workpieces in the real space.
  • the state matching unit 213 may match the state of the virtual space with the state of the real space in response to receiving the production instruction.
  • the state matching unit 213 may repeat matching the state of the virtual space with the state of the real space during a period other than the period during which the virtual production device 212 executes the virtual processing steps.
  • the virtual production device 212 executes the virtual processing steps based on the state of the virtual space adjusted to the state of the real space, and the state of the virtual space is changed to the state of the real space immediately before the processing step according to the production instruction is executed. are combined and the virtual production equipment is caused to execute the virtual processing steps, it is possible to generate a comparison standard with higher reliability.
  • the virtual data collection unit 214 collects execution histories of virtual processing steps and stores them in the virtual database 215 .
  • the execution history of the virtual process is, for example, transition of the state of the virtual space due to the execution of the virtual process.
  • the state of the virtual space is, for example, the state of a virtual cell in the virtual space, and includes the state of each of a plurality of virtual machines and the state of virtual work.
  • the virtual production device 212 periodically calculates numerical data representing the state of the virtual space according 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 computation time by the virtual production device 212, but the time simulating the elapsed time in the real space.
  • the virtual data collection unit 214 sequentially acquires the numerical data calculated by the virtual production apparatus 212 and stores them in the virtual database 215 in association with the elapsed time. As a result, the virtual database 215 accumulates execution histories in which transitions of a plurality of types of information are represented by a common time.
  • the comparison unit 216 compares the execution result of the processing step and the execution result of the provisional processing step. For example, the comparison unit 216 compares the execution history of processing steps stored in the database 112 and the execution history of 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 and the transition timing of the state of the virtual space based on the start time of the virtual processing step. Examples of the state transition timing of the physical space/virtual space include the state transition timing of a plurality of machines/virtual machines, the state transition timing of a work/virtual work, and the like. Transition timing means the timing at which the state changes.
  • the comparison between the execution result of the processing step and the execution result of the virtual processing step is not necessarily limited to comparison of transition timing.
  • the comparison unit 216 may compare the states of the plurality of machines and the states of the plurality of virtual machines at the time when the same time has passed since the reference. Examples of comparison between the state of the machine and the state of the virtual machine include comparison between the joint angle of the robot and the joint angle of the virtual robot, and comparison between the joint torque of the robot and the joint torque of the virtual robot.
  • the comparison unit 216 may compare the state of the work and the state of the virtual work at the time when the same time has passed since the reference. Examples of the comparison between the state of the work and the state of the virtual work include the comparison of the arrangement of the work and the arrangement of the virtual work, the comparison of the progress of the process with respect to the work and the progress of the process with respect to the virtual work, and the like.
  • the abnormality detection unit 217 detects an abnormality in the production device 4 based on the comparison result by the comparison unit 216. For example, the abnormality detection unit 217 detects an abnormality in the production apparatus 4 when a deviation satisfying 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 anomaly detection unit 217 detects an anomaly in the production apparatus 4 when the difference between the state transition timing in the real space and the state transition timing in the virtual space exceeds a predetermined threshold.
  • the production device 4 may autonomously execute processing steps according to a predetermined algorithm based on the production instructions and the state of the real space.
  • the virtual production equipment 212 may autonomously execute the virtual processing steps according to the above algorithm based on the production instructions and the state of the virtual space.
  • Autonomously executing a processing step means that at least one of the operation to be executed by each of the plurality of machines and the operation timing of each of the plurality of machines to execute the processing step is determined based on the state of the physical space. It means to decide for yourself.
  • production instructions include instructions on the type and quantity of products to be produced.
  • the production device 4 modifies at least a part of the operations to be executed by each of the plurality of machines for the selected process, based on the state of the real space, so as to avoid collisions with surrounding objects. may autonomously determine at least a portion of the actions to be performed by each of the machines.
  • the virtual production device 212 determines, based on the state of the virtual space, at least a part of the actions to be executed by each of the plurality of virtual machines for the selected virtual process so as to avoid collisions with surrounding objects.
  • a modified algorithm may autonomously determine at least a portion of the actions to be performed by each of the plurality of virtual machines.
  • the production apparatus 4 determines the operation timing of each of the plurality of machines using an algorithm that determines whether or not each operation of the plurality of machines can be executed based on predetermined conditions and the state of the physical space. At least a part may be determined autonomously.
  • the virtual production device 212 determines whether or not each of the virtual machines can perform operations based on predetermined conditions and the state of the virtual space. may autonomously determine at least part of the operation timing of each of the .
  • Autonomously executing a processing step may further include autonomously selecting a step to be executed by each of a plurality of machines from a plurality of steps included in the processing step.
  • the production device 4 identifies the process to be executed by each of the plurality of machines based on the types of processes that can be executed by each of the machines, the status of each of the machines, and the progress of the processes.
  • a process to be executed by each of a plurality of machines may be autonomously selected depending on the algorithm used.
  • the virtual production apparatus 212 is configured to control the plurality of virtual machines based on the types of virtual processes that can be executed by each of the plurality of virtual machines, the state of each of the plurality of virtual machines, and the progress of the plurality of virtual processes.
  • a process to be executed by each of a plurality of virtual machines may be autonomously selected by an algorithm that specifies a virtual process to be executed by each of the virtual machines.
  • FIG. 2 is a schematic diagram illustrating a production device 4 that autonomously executes processing steps.
  • the production apparatus 4 shown in FIG. 2 has a plurality of machines 5 including robots, and a process allocation unit 316 that collects state information in the real space.
  • the robot autonomously executes at least part of the process based on the state information of the real space collected by the process assigning unit 316 .
  • the production device 4 includes a plurality of machines 5 and a host controller 300.
  • Each of the multiple machines 5 includes a machine body 10 and a local controller 400 .
  • the machine body 10 directly performs work on the work W in the physical space. Direct work is work that imparts some kind of energy to the work W, such as thermal energy, kinetic energy, or potential energy.
  • the local controller 400 controls the machine body 10 to perform work.
  • Each of the multiple machines 5 is, for example, an industrial machine.
  • the plurality of machines 5 includes at least robots (at least one machine 5 is a robot).
  • the plurality of machines 5 also includes industrial machines that cooperate with robots. Examples of industrial machines that cooperate with robots include other robots, machine tools, and the like.
  • the plurality of machines 5 shown in FIG. 2 includes a carrier device 5A and robots 5B, 5C, and 5D, but is not limited to this.
  • the number and type of machines 5 can vary, as long as they include at least one robot.
  • the transport device 5A has a device main body 10A (machine main body) and a device controller 400A (local controller).
  • the device main body 10A is driven by, for example, an electric motor or the like, and conveys the work W.
  • the apparatus controller 400A controls the apparatus main body 10A so that the workpiece W is transported. Examples of the apparatus main body 10A include belt conveyors, roller conveyors, and carousels.
  • the robot 5B has a robot main body 10B and a robot controller 400B
  • the robot 5C has a robot main body 10C and a robot controller 400C
  • the robot 5D has a robot main body 10D and a robot controller 400D.
  • the robot main bodies 10B, 10C, and 10D (machine main bodies) work on the work W conveyed by the apparatus main body 10A.
  • Robot controllers 400B, 400C and 400D local controllers respectively control robot main bodies 10B, 10C and 10D to perform work.
  • Examples of work on the work W include assembling another work W (for example, sub-parts) to the work W (for example, base parts) conveyed by the apparatus main body 10A, fastening parts ( For example, bolting)/joining (for example, welding), loading of the workpiece W into the NC machine tool installed around the apparatus main body 10A, and unloading of the workpiece W from the NC machine tool.
  • fastening parts For example, bolting
  • joining for example, welding
  • the robot main bodies 10B and 10C are 6-axis vertical articulated robots, and as shown in FIG. , tip 18 and actuators 41 , 42 , 43 , 44 , 45 , 46 .
  • the base 11 is installed around the device main body 10A of the transport device 5A.
  • the swivel part 12 is provided on the base part 11 so as to swivel around a vertical axis 21 .
  • the first arm 13 is connected to the swivel portion 12 so as to swing about an axis 22 that intersects (for example, is perpendicular to) the axis 21 .
  • Crossing includes a twisted relationship such as a so-called overpass.
  • the second arm 14 is connected to the tip of the first arm 13 so as to swing about an axis 23 substantially parallel to the axis 22 .
  • the second arm 14 includes a swinging portion 15 and a turning portion 16 .
  • the swinging portion 15 is connected to the tip of the first arm 13 and extends along an axis 24 that intersects (for example, orthogonally) the axis 23 .
  • the swivel portion 16 is connected to the distal end portion of the swing portion 15 so as to swivel around the axis 24 and further extends along the axis 24 .
  • the third arm 17 is connected to the distal end of the turning section 16 so as to swing about an axis 25 intersecting (for example, perpendicular to) the axis 24 .
  • the distal end portion 18 is connected to the distal end portion of the third arm 17 so as to pivot about an axis 26 that intersects (for example, is perpendicular to) the axis 25 .
  • a work tool such as a hand, a suction nozzle, or a welding torch is attached to the tip 18 .
  • the robot bodies 10B and 10C include a joint 31 connecting the base portion 11 and the revolving portion 12, a joint 32 connecting the revolving portion 12 and the first arm 13, the first arm 13 and the second arm 14. a joint 34 connecting the swinging portion 15 and the turning portion 16 in the second arm 14; a joint 35 connecting the turning portion 16 and the third arm 17; It has a joint 36 that connects with the tip 18 .
  • the actuators 41, 42, 43, 44, 45, 46 include, for example, electric motors and speed reducers, and drive the joints 31, 32, 33, 34, 35, 36, respectively.
  • the actuator 41 swings the swivel unit 12 about the axis 21
  • the actuator 42 swings the first arm 13 about the axis 22
  • the actuator 43 swings the second arm 14 about the axis 23
  • the actuator 44 pivots the pivot 16 about the axis 24
  • the actuator 45 pivots the third arm 17 about the axis 25
  • the actuator 46 pivots the tip 18 about the axis 26 .
  • the configuration of the robot main bodies 10B and 10C can be changed as appropriate.
  • the robot main bodies 10B and 10C may be 7-axis redundant robots obtained by adding 1-axis joint to the 6-axis environment sensor vertical articulated robot, or may be a so-called scalar type articulated robot. good.
  • the robot body 10D is a robot that can run independently.
  • the robot main body 10D is a robot similar to the robot main bodies 10B and 10C in which the base portion 11 is self-propelled.
  • An example of the self-propellable base 11 is an electric automatic guided vehicle (AGV: Automated Guided Vehicle).
  • the upper controller 300 performs wired or wireless synchronous communication with the local controllers 400 of the multiple machines 5, and collects state information of the real space. Synchronous communication means that a plurality of machines 5 also communicate with the local controller 400 every cycle in synchronization with a synchronous frame of a certain cycle (the communication cycle described above).
  • the local controller 400 controls the machine body 10 to autonomously execute at least part of the processing steps based on the state information of the real space collected by the host controller 300 .
  • the host controller 300 communicates with the production instruction device 2 by wire or wirelessly, and acquires production instructions. Communication between the host controller 300 and the production instruction device 2 may be synchronous communication or asynchronous communication.
  • the host controller 300 may determine the processing steps to be executed by the multiple machines 5 based on the production instructions.
  • the host controller 300 collects the state information of the plurality of machines 5 in the real space and the state information of the real space including the progress information of the processing steps, and collects the state information of the plurality of machines 5 and the progress information of the processing steps. Based on this, the process to be executed by each of the plurality of machines 5 may be autonomously selected.
  • the local controller 400 may autonomously execute the selected process based on the state information of the plurality of machines 5 in the physical space and the progress information of the processing process.
  • the host controller 300 includes, 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, and a process allocation unit. It has a unit 316 and a command output unit 317 .
  • the processing process database 311 stores multiple types of processing processes corresponding to multiple types of products. Each of the multiple types of processing steps includes multiple tasks (steps). A task is a unit of work that one machine 5 executes. Multiple tasks of one process step may include tasks performed by multiple different machines 5 .
  • the production instruction acquisition unit 312 acquires production instructions from the production instruction device 2.
  • the production instruction includes product types and production quantities for each type.
  • the processing process selection unit 313 selects a processing process for each product based on the production instruction acquired by the production instruction acquisition unit 312 and a plurality of types of processing processes stored in the processing process database 311 .
  • the processing process selection unit 313 causes the information storage unit 314 to store the selection result of the processing process for each product.
  • 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 physical space includes, for example, information about the plurality of machines 5 (hereinafter referred to as "machine information") and information about the work W (hereinafter referred to as "work information").
  • An example of the work information is the position/orientation information of the work W.
  • FIG. An example of the machine information is position/orientation information of each of the plurality of machines 5 .
  • Examples of the position/posture information of the machine 5 include posture information of the robot bodies 10B and 10C and position/posture information of the robot body 10D.
  • the posture information of the robot bodies 10B and 10C may be motion angle information of the joints 31, 32, 33, 34, 35, and 36, or may be position/posture information of the tip portion 18.
  • the position/posture information of the robot body 10D includes, for example, the position/posture information of the base 11 and the posture information of the robot body 10D with the base 11 as a reference.
  • the machine information includes information on control signals generated between the local controller 400 and the machine body 10 (hereinafter referred to as "real control signals").
  • the real control signal may be an internal signal generated by the local controller 400 for controlling the machine main body 10, an output signal output from the local controller 400 to the machine main body 10, or a machine control signal. It may be a feedback signal output from the main body 10 to the local controller 400 .
  • An example of the internal signal is a position/orientation command value of the machine body 10 .
  • Examples of the output signal include an output current value to the actuator of the machine body 10 and the like. Specific examples of the feedback signal include detected values of the position/orientation, velocity, force, etc. of the machine body 10 in the real space.
  • the information display unit 315 updates the state information of the physical space according to the operations of the multiple machines 5.
  • the information posting unit 315 acquires status information of the machine body 10 in the physical space from each of the plurality of 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 multiple machines 5 .
  • the information posting unit 315 may identify the work performed on the work W based on the status information of the plurality of machines 5, and update the work information based on the identified work.
  • the information posting unit 315 may update the environment information further based on the detection results of the environment sensor 6 provided separately from the plurality of machines 5 .
  • the environment sensor 6 detects the state of the work environment of multiple machines 5 .
  • An example of the environment sensor 6 is a camera that captures the work environment of a plurality of machines 5, for example. If the environment sensor 6 is a camera, the information posting unit 315 performs image processing on the image captured by the environment sensor 6, and updates the state information of the physical space based on the image processing result.
  • the environment sensor 6 may be a sensor that detects the presence or absence of the work W at a predetermined position using a laser beam or the like, or may be a sensor that detects the size of the work W or the like.
  • the production equipment 4 may comprise multiple environment sensors 6 .
  • the information display unit 315 may further collect progress information of processing steps (processing steps stored by the information storage unit 314 for each product) and store the progress information in the information storage unit 314 in association with the processing steps. For example, the information display unit 315 may collect progress information of the processing steps based on the status state and store the information in the information storage unit 314 .
  • the progress information indicates, for example, whether each of the plurality of tasks included in the processing step is unexecuted, being executed, or completed.
  • the progress information may include reservation information indicating which of the plurality of machines 5 is assigned to the unexecuted task. Assignment of one of the plurality of machines 5 to an unexecuted task may be performed by autonomous task selection of each of the plurality of machines 5, or may be performed by the host controller 300 (for example, a process assignment unit 316 described later). ) may be performed by
  • the information posting unit 315 may be configured to prohibit assignment of other machines 5 to a task to which one of the plurality of machines 5 is assigned in the reservation information. For example, the information posting unit 315 may reject the request when the reservation information requests assignment of another machine 5 to a task to which any one of the plurality of machines 5 is assigned. In addition, the information posting unit 315 may preliminarily exclude a task to which any one of the plurality of machines 5 is assigned from targets to which other machines 5 can be assigned.
  • the process allocation unit 316 allocates an unexecuted task in the processing process to one of the machines 5 based on the progress information. For example, the process allocation unit 316 uses an algorithm for specifying processes to be executed by each of the plurality of machines 5 based on the types of processes that can be executed by each of the plurality of machines 5, machine information, and progress information. A task for execution is assigned to one of a plurality of machines 5. Thereby, a task to be executed by each of the plurality of machines 5 is autonomously selected. The process allocation unit 316 updates the reservation information stored in the information storage unit 314 based on the allocation result.
  • the command output unit 317 outputs an execution command for an unexecuted task to the local controller 400 based on the progress information of the processing steps. For example, the command output unit 317 specifies an unexecuted task to be executed next for each product, and issues an execution command of the specified task to the local controller 400 of the machine 5 assigned to the specified task based on the reservation information. to output
  • the command output unit 317 determines the tasks for each product based on the progress information of each of the plurality of processing steps. You may output an execution command. In this case, multiple execution commands corresponding to multiple processing steps can be output to the same local controller 400 . For example, in the information storage unit 314, when a first process is assigned to a first product and a second process is assigned to a second product, a task execution command in the first process and a second process are assigned. Instructions for executing tasks in two processing steps can be output to the same local controller 400 .
  • the command output unit 317 may output a task execution command in response to a request from the local controller 400 in the synchronous communication, or may output a task execution command regardless of the presence or absence of a request from the local controller 400. good.
  • the upper controller 300 may further have a display section 318 .
  • the display unit 318 displays information collected by the information display unit 315 (information stored in the information storage unit 314) on the monitor.
  • the monitor may be possessed by the host controller 300 itself, or may be possessed by another device capable of communicating with the host controller 300 (for example, the data collection device 100).
  • the display unit 318 may display information collected by the information display unit 315 on a display device of the user interface 195 (described later) of the data collection device 100 .
  • the local controller 400 has a command buffer 411, a task program storage section 412, a selection section 413, a control section 416, and a status output section 417 as functional blocks.
  • the command buffer 411 stores execution commands output by the command output unit 317 of the host controller 300 . As described above, multiple execution commands corresponding to multiple processing steps can be output to the same local controller 400, so multiple execution commands can be stored in the command buffer 411 at the same time.
  • the task program storage unit 412 stores two or more task programs 420 that respectively define operations in two or more tasks executable by the machine body 10 .
  • Each of the two or more task programs 420 includes an operating program 421 and conditional headers 422 .
  • the operating program 421 represents the operation of the machine body 10 .
  • the operation program 421 includes a plurality of operation instructions arranged in chronological order so as to cause the machine body 10 to execute a group of operations.
  • the action command in the action program 421 includes the target position/target orientation of the tip portion 18 and the distance from the current position/current orientation to the target position/target orientation. and a target displacement velocity.
  • the target position/orientation of the distal end portion 18 may be represented by the target angles of the joints 31, 32, 33, 34, 35, and 36, and the target displacement speeds of the joints 31, 32, 33, 34, 35, It may be represented by 36 target rotational speeds.
  • the condition header 422 represents execution conditions of the operating program 421 .
  • the execution condition is a condition for determining the execution timing of the operation program 421 (the operation timing of the machine body 10).
  • the execution condition includes an execution enable/disable condition for determining whether or not the operation program 421 can be executed, and the priority of the operation program 421 .
  • the priority indicates the order of priority among the plurality of task programs 420 stored in the task program storage unit 412 . If the priority is a numerical value representing the priority itself, the lower the value, the higher the priority.
  • Examples of execution enable/disable conditions include the following.
  • Example 1) There are no obstacles to the movement of the machine body 10 within the movement range of the machine body 10 .
  • Example 2) The work W to be the task target (hereinafter simply referred to as "work W") is at a predetermined position.
  • Example 3) There is no other work W at the place where the work W is carried.
  • Example 4) The destination of the workpiece W is open.
  • Examples of obstacles include other machine bodies 10, workpieces W held by other machine bodies 10, and people.
  • An NC machine tool which is an example of another machine main body 10, is given as an example of a destination to which the work W is carried.
  • a specific example of the fact that the delivery destination is open is that the door of the NC machine tool is open.
  • the selection unit 413 selects an execution command stored in the command buffer 411 based on the execution conditions (condition headers 422) of the plurality of tasks in the task program storage unit 412 and the state of the physical space stored in the information storage unit 314. select one of the tasks corresponding to (hereinafter referred to as "corresponding task"). For example, the selection unit 413 checks whether each corresponding task can be executed. For example, the selection unit 413 checks whether the state information of the physical space satisfies the executability condition for each of 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 the priority. For example, the selection unit 413 selects the corresponding task with the highest priority.
  • the control unit 416 controls the machine body 10 to execute the corresponding task selected by the selection unit 413 .
  • the corresponding task corresponds to a task execution command autonomously selected by the process allocation unit 316 based on the state information of the physical space and the progress information.
  • Selection of the corresponding task by the selection unit 413 is autonomous based on the execution conditions (condition header 422) of each of the plurality of tasks in the task program storage unit 412 and the state of the real space in the information storage unit 314. It is done. Therefore, executing the corresponding task selected by the selection unit 413 is an example of autonomously executing at least a part of the processing steps based on the state information of the physical space and the progress information. This is also an example of autonomously executing the process assigned by the assigning unit 316 based on the state information of the physical space.
  • the corresponding task execution command is output to the local controller 400 of the machine 5 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 the task assigned in the reservation information.
  • the control unit 416 corrects the motion from the current position/current attitude of the machine body 10 to the first target position/target attitude of the corresponding task so as to avoid collisions with surrounding objects based on the state of the real space.
  • the algorithm may autonomously determine the first action in the corresponding task.
  • the status output unit 417 outputs the above status information of the machine body 10 to the host controller 300 .
  • the status information includes at least position/orientation information of the machine body 10 .
  • the status output unit 417 may include a task completion notification in the status information and output it upon completion of execution of the task program 420 .
  • the status output unit 417 may output status information in response to a request from the host controller 300 in the synchronous communication, or may output status information regardless of the presence or absence of a request from the host controller 300 .
  • the local controller 400 may further have an interlock section 414.
  • the machine main body 10 controlled by the local controller 400 will be referred to as the "corresponding machine main body 10”
  • the machine main body 10 controlled by the local controller 400 in the other machine 5 will be referred to as the "other machine main body 10”.
  • the interlock unit 414 sets an entry-prohibited area for the corresponding machine body 10 in the physical space based on the progress of the tasks executed by the other machine bodies 10 . For example, the interlock unit 414 sets a no-entry area for the corresponding machine body 10 based on the operating range when the other machine body 10 executes the task assigned in the reservation information.
  • the interlock unit 414 may set the operation range itself when the other machine main body 10 executes the task assigned in the reservation information as the no-entry area, and the range obtained by adding a predetermined margin to the operation range may be the no-entry area. may be
  • the execution enable/disable condition of the condition header 422 is that the no-entry area set by the interlock unit 414 and the corresponding operating range of the machine body 10 do not overlap.
  • the selection unit 413 selects a corresponding task in which the entry-inhibited area and the operating range of the corresponding machine body 10 do not overlap.
  • the local controller 400 may further have a parameter holding unit 415.
  • the parameter holding unit 415 stores one or more control parameters for controlling the machine body 10 . Specific examples of one or more control parameters include position control gain, speed control gain, and current control gain. If the local controller 400 has a parameter storage unit 415 , the control unit 416 controls the machine body 10 based on one or more control parameters stored in the parameter storage unit 415 .
  • FIG. 5 is a schematic diagram illustrating a virtual production device 212 that autonomously executes virtual processing steps.
  • the virtual production apparatus 212 shown in FIG. 5 has a plurality of virtual machines 600 including virtual robots corresponding to robots, and a process allocation unit 516 that collects virtual space state information.
  • the virtual robot autonomously executes at least part of the virtual processing process based on the state information of the virtual space collected by the process allocation unit 516 .
  • the virtual production equipment 212 includes a virtual upper controller 500, a plurality of virtual machines 600, and a space simulator 700.
  • a virtual upper controller 500 corresponds to the upper controller 300 .
  • a plurality of virtual machines 600 correspond to a plurality of machines 5, respectively.
  • Each of the multiple virtual machines 600 is configured similarly to the local controller 400 .
  • the space simulator 700 calculates numerical values representing the state of the machine body 10 after operation without operating the machine body 10 in the real space based on the processing executed by each of the plurality of virtual machines 600 in the same manner as the local controller 400. Calculate the data.
  • the space simulator 700 calculates numerical data representing the state of the machine body 10 after operation based on the processing of each of the plurality of virtual machines 600, which causes the machine body 10 to operate in the virtual space. This is an example of simulating the operation of the main body 10).
  • the virtual upper controller 500 is configured in the same manner as the upper controller 300, and includes functional blocks such as a task database 511, a production instruction acquisition unit 512, a process selection unit 513, an information storage unit 514, and a virtual information display unit. 515 , a process allocation unit 516 , and a command output unit 517 .
  • the task database 511 stores a plurality of types of processing steps respectively 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 process selection unit 513 selects a processing process for each product based on the production instructions acquired by the production instruction acquisition unit 512 and a plurality of types of processing processes stored in the task database 511, and stores them in the information storage unit 514. Memorize.
  • the virtual information posting unit 515 collects virtual space state information and stores it in the information storage unit 514 .
  • the state information of the virtual space includes, for example, information about the plurality of virtual machines 600 (hereinafter referred to as "virtual machine information") and information about the virtual work (hereinafter referred to as "virtual work information"). .) and including.
  • An example of the virtual work information is the position/orientation information of the virtual work in the virtual space.
  • An example of the virtual machine information is position/orientation information of a plurality of virtual machines 600 in the virtual space.
  • the virtual machine information includes information on control signals generated between the plurality of virtual machines 600 and the space simulator 700 (hereinafter referred to as "virtual control signals").
  • the virtual control signal may be an internal signal generated by the virtual machine 600 for controlling the machine body 10 or a feedback signal output from the space simulator 700 to the virtual machine 600 .
  • An example of the internal signal is a position/orientation command value of the machine body 10 .
  • Specific examples of the feedback signal include calculation results of the position/orientation, speed, force, etc. of the machine body 10 in the virtual space.
  • the virtual information posting unit 515 updates the state information of the virtual space according to the operations of the multiple virtual machines 600 .
  • the virtual information posting unit 515 acquires status information of the machine body 10 in the virtual space from each of the plurality of 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 .
  • the virtual information posting unit 515 may identify the work performed on the virtual work based on the status information of the plurality of virtual machines 600, and update the virtual work information based on the identified work.
  • the virtual information posting unit 515 may further collect progress information of virtual processing steps (virtual processing steps stored by the information storage unit 514 for each product) and store the progress information in the information storage unit 514 in association with the virtual processing steps. good.
  • the virtual information posting unit 515 may collect progress information of the virtual processing steps based on the status state, and store the information in the information storage unit 514 .
  • the progress information indicates, for example, whether each of the plurality of tasks included in the virtual processing step is unexecuted, being executed, or already executed.
  • the progress information of the virtual processing step may include reservation information indicating which of the plurality of virtual machines 600 is assigned to the unexecuted task. Assignment of one of the plurality of virtual machines 600 to an unexecuted task may be performed by autonomous task selection of each of the plurality of virtual machines 600, or may be performed by the virtual upper controller 500 (for example, a process described later). allocation unit 516).
  • the virtual information posting unit 515 may be configured to prohibit assignment of another virtual machine 600 to a task to which one of the plurality of virtual machines 600 has been assigned in the reservation information. For example, the virtual information posting unit 515 may reject the request when the reservation information requests assignment of another virtual machine 600 to a task to which one of the plurality of virtual machines 600 is assigned. . In addition, the virtual information posting unit 515 may exclude in advance a task to which any one of the plurality of virtual machines 600 is assigned from targets to which other virtual machines 600 can be assigned.
  • the process allocation unit 516 allocates an unexecuted task in the virtual process to one of the plurality of virtual machines 600 based on the progress information of the virtual process. For example, the process allocation unit 516 causes each of the plurality of virtual machines 600 to execute a process based on the type of process executable by each of the plurality of virtual machines 600, the virtual machine information, and the progress information of the virtual processing process. allocates an unexecuted task to one of the plurality of virtual machines 600 by an algorithm that identifies . Thereby, 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.
  • the instruction output unit 517 outputs an execution instruction for an unexecuted task to the virtual machine 600 based on the progress information of the virtual processing steps. For example, the command output unit 517 identifies an unexecuted task to be executed next for each product, and outputs an execution command for the identified task to the virtual machine 600 assigned by reservation information to the identified task. .
  • the virtual upper controller 500 may further have a display unit 518 .
  • the display unit 518 displays information collected by the virtual information display unit 515 (information stored in the information storage unit 514) on the monitor.
  • the monitor may be possessed by the cell simulator 200 itself having the virtual upper controller 500 or may be possessed by another device capable of communicating with the cell simulator 200 .
  • the display unit 518 may display information collected by the virtual information display unit 515 on a display device of the user interface 295 (described later) of the cell simulator 200 .
  • the virtual machine 600 has a command buffer 611, a task program storage unit 612, a selection unit 613, a control unit 616, and a status output unit 617 as functional blocks.
  • the command buffer 611 stores execution commands output by the command output unit 517 of the virtual upper controller 500 .
  • the task program storage unit 612 stores two or more task programs 420 in the same manner as the task program storage unit 412 .
  • the selection unit 613 selects an execution command stored in the command buffer 611 based on the execution conditions (condition headers 422) of the plurality of tasks in the task program storage unit 612 and the state of the virtual space stored in the information storage unit 514. select one of the tasks corresponding to (hereinafter referred to as "corresponding task"). For example, the selection unit 613 confirms whether or not each corresponding task can be executed. For example, the selection unit 613 checks whether the state information of the virtual space satisfies the executability conditions for each of 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 the priority. For example, the selection unit 613 selects the corresponding task with the highest priority.
  • the control unit 616 outputs to the space simulator 700 a control signal 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 corresponding tasks in the virtual space based on the control signal and the model stored in the model storage unit 211 . For example, the space simulator 700 calculates changes in the position and orientation of the machine body 10 during execution of the corresponding task without actually operating the machine body 10 .
  • the status output unit 617 outputs the above status information of the machine body 10 in the virtual space to the virtual upper controller 500 .
  • the status information includes at least position/orientation information of the machine body 10 in the virtual space.
  • the status output unit 617 may include a task completion notification in the status information and output it upon completion of execution of the task program 420 .
  • the virtual machine 600 may further have an interlock section 614 .
  • the interlock unit 614 sets an entry-prohibited area for the corresponding machine body 10 in the virtual space based on the progress of tasks executed by other machine bodies 10 .
  • the selection unit 613 selects a corresponding task in which the no-entry area and the operating range of the corresponding machine body 10 do not overlap.
  • the virtual machine 600 may further have a parameter holding unit 615.
  • the parameter holding unit 615 stores one or more simulation parameters for operating the machine body 10 in the virtual space. Examples of one or more simulation parameters include position control gain, speed control gain, current control gain, and the like.
  • the parameter holding unit 615 may store a waiting time from the output of the control signal to the completion of the operation of the machine body 10 as a simulation parameter. If the virtual machine 600 has a parameter storage unit 615 , the control unit 616 controls the machine body 10 based on one or more control parameters stored in the parameter storage unit 615 .
  • the production apparatus 4 determines how to allocate processing steps according to production instructions from the host controller 300 to the plurality of machines 5 and at what timing the plurality of machines 5 are to execute the allocated processing steps. determines autonomously and operates autonomously based on the determination result, the production system 1 can be operated flexibly. Even under such flexible operation, a more reliable comparison standard is generated by executing the virtual processing process with the same algorithm as that of the production equipment 4 based on the same production instructions as the production instructions for the production equipment 4. Then, the autonomous operation of the production equipment 4 can be verified in real time.
  • the comparison unit 216 may further compare the task executed by each of the plurality of machines 5 and the task executed by each of the plurality of virtual machines 600 .
  • the cell simulator 200 may further have a service section 221 .
  • the service unit 221 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 .
  • a specific simulation is a simulation specified by a request from the production device 4 .
  • An example of a specific simulation is a simulation for generating a return action for restarting the stopped action when the production device 4 stops abnormally.
  • the service unit 221 adjusts the state of the virtual space to the state of the real space in response to a request from the production device 4, and tentatively generates a return action.
  • the service unit 221 causes the virtual production apparatus 212 to execute a return action in the virtual space, and corrects the return action based on the result of the return action in the virtual space, and the result of the return action satisfies a predetermined condition.
  • a return motion is generated, and the generated return motion is returned to the production device 4 as response information.
  • the predetermined condition is that objects do not collide with each other due to the return motion.
  • Another example of a specific simulation is a simulation for correcting a corresponding task so that it satisfies the executability condition when the corresponding task does not satisfy the executability condition.
  • the state of the virtual cell changes 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 has changed along with the state of the cell, and response information can be returned to the production equipment in a short waiting time.
  • the cell simulator 200 may further have a simulator correction section 222 .
  • the simulator correction unit 222 makes the virtual production apparatus 212 execute virtual processing steps so as to reduce the deviation between the execution result of the processing steps and the execution result of the virtual processing steps.
  • Change simulation parameters For example, as described above, the waiting time from the output of the control signal to the completion of the operation of the machine body 10 is stored as a simulation parameter. If there is a deviation from the execution result, the simulator correction unit 222 changes the waiting time so as to reduce the deviation.
  • the cell simulator 200 may further have a factor identification unit 223.
  • the comparison result by the comparison unit 216 includes a deviation between the execution result of at least part of the processing steps by the robot and the execution result of at least part of the virtual processing steps by the virtual robot, the robot that causes the deviation Identify virtual machines other than
  • the simulator correction unit 222 corrects the simulation parameters for causing the virtual machine that causes the deviation to execute at least a part of the virtual processing steps. .
  • the factor identification unit 223 identifies the cause of the deviation. Identify the machine tool as a virtual machine that becomes The simulator correction unit 222 corrects the waiting time for door opening/closing stored as a simulation parameter of the machine tool that causes the deviation.
  • the upper controller 300 may further have a parameter changer 321.
  • the parameter changing unit 321 sets control parameters for causing the production apparatus 4 to execute the processing steps so as to reduce the deviation between the execution results of the processing steps and the execution results of the virtual processing steps. to change
  • the parameter changing unit 321 changes the control parameters of the parameter holding unit 415 so as to reduce the deviation between the execution result of the processing step and the execution result of the virtual processing step (see FIG. 4).
  • the parameter changing unit 321 may be included in the host controller 300 or may be included in the local controller 400 .
  • the production instruction device 2 may further have a plan change unit 811.
  • a plan changing unit 811 changes the production plan based on the comparison result by the comparing unit 216 . For example, when the deviation between the execution result of the processing step and the execution result of the virtual processing step exceeds a predetermined level in one cell 3, the plan change unit 811 changes the production plan assigned to the cell 3 to another cell. Change the production plan to run in cell 3.
  • the cell simulator 200 may further have an API 224 and a command conversion section 225.
  • the API 224 is an API (Application Programming Interface) that operates the virtual production equipment based on the simulation instructions.
  • the instruction conversion unit 225 receives the production instruction, converts it into a simulation instruction, and passes it to the API 224 .
  • FIG. 9 is a block diagram illustrating hardware configurations of the data collection device 100, the cell simulator 200, the host controller 300, and the local controller 400.
  • local controller 400 includes circuitry 490 .
  • Circuitry 490 includes processor 491 , memory 492 , storage 493 , driver circuitry 494 and communication port 495 .
  • the storage 493 is composed of one or more non-volatile memory devices such as flash memory or hard disk. The storage 493 stores programs for causing the local controller 400 to configure the functional blocks described above.
  • the memory 492 is composed of one or more volatile memory devices such as random access memory. Memory 492 temporarily stores programs loaded from storage 493 .
  • the processor 491 is composed of one or more computing devices such as a CPU (Central Processing Unit) or a GPU (Graphics Processing Unit). The processor 491 executes a program loaded in the memory 492 to configure each functional block described above in the local controller 400 . A calculation result by the processor 491 is temporarily stored in the memory 492 .
  • the driver circuit 494 operates the machine body 10 according to requests from the processor 491 .
  • the communication port 495 communicates with the host controller 300 via the communication network NW1 for control in response to requests from the processor 491 .
  • the upper controller 300 has a circuit 390.
  • Circuit 390 has processor 391 , memory 392 , storage 393 , input/output port 394 , communication port 395 and communication port 396 .
  • the storage 393 is composed of one or more non-volatile memory devices such as flash memory or hard disk. The storage 393 stores a program for configuring the upper controller 300 with the functional blocks described above.
  • the memory 392 is composed of one or more volatile memory devices such as random access memory. Memory 392 temporarily stores programs loaded from storage 393 .
  • the processor 391 is composed of one or more computing devices such as CPU or GPU. The processor 391 executes a program loaded in the memory 392 to configure each functional block described above in the host controller 300 . A calculation result by the processor 391 is temporarily stored in the memory 392 .
  • the input/output port 394 exchanges information with the environment sensor 6 in response to requests from the processor 391 .
  • Communication port 395 communicates with local controller 400 via communication network NW1 in response to requests from 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 requests from the processor 391.
  • the communication network NW2 may be a network different from the communication network NW1, or may be the same network as the communication network NW1.
  • the data collection device 100 has a circuit 190.
  • Circuitry 190 includes processor 191 , memory 192 , storage 193 , communication port 194 and user interface 195 .
  • the storage 193 is composed of one or more non-volatile memory devices such as flash memory or hard disk.
  • the storage 193 stores a program for configuring the data collection device 100 with the functional blocks described above.
  • the memory 192 is composed of one or more volatile memory devices such as random access memory. Memory 192 temporarily stores programs loaded from storage 193 .
  • the processor 191 is composed of one or more arithmetic devices such as CPU or GPU. The processor 191 executes the program loaded in the memory 192 to configure the data collection device 100 with each functional block described above. A calculation result by the processor 191 is temporarily stored in the memory 192 .
  • the communication port 194 communicates with the cell simulator 200 and the upper controller 300 via the communication network NW2 in response to requests from the processor 191.
  • a user interface 195 inputs and outputs information to and from an operator in response to requests from the processor 191 .
  • 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 mouse.
  • the input device may be integrated with the display device as a touch panel.
  • the cell simulator 200 has a circuit 290.
  • Circuitry 290 includes processor 291 , memory 292 , storage 293 , communication port 294 and user interface 295 .
  • the storage 293 is composed of one or more non-volatile memory devices such as flash memory or hard disk. Storage 293 stores a program for configuring cell simulator 200 with the functional blocks described above.
  • the memory 292 is composed of one or more volatile memory devices such as random access memory. Memory 292 temporarily stores programs loaded from storage 293 .
  • the processor 291 is composed of one or more arithmetic devices such as CPU or GPU. The processor 291 executes the program loaded in the memory 292 to configure the above functional blocks in the cell simulator 200 . A calculation result by the processor 291 is temporarily stored in the memory 292 .
  • the communication port 294 communicates with the data collection device 100, the host controller 300, and the production instruction device 2 via the communication network NW2 in response to requests from the processor 291.
  • a user interface 295 inputs and outputs information to and from an operator in response to requests from the processor 291 .
  • 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 mouse.
  • the input device may be integrated with the display device as a touch panel.
  • cell simulator 200 may be incorporated in data collection device 100 .
  • the cell simulator 200 and the data collection device 100 may be incorporated in the host controller 300 .
  • [Production procedure] As an example of the production method, the execution procedure of the processing steps and the virtual processing steps by the production system 1 will be illustrated. This procedure is based on the production instructions sent based on the production plan, executing the processing processes for the workpiece in the real space to produce the product, and the processing processes performed by the production equipment based on the production instructions. It includes causing a corresponding virtual process step to be executed by a virtual production device in a virtual space, and comparing the execution result of the process step with the execution result of the virtual process step.
  • the production instruction device 2 executes step S11.
  • step S ⁇ b>11 the production instruction device 2 transmits production instructions based on the cell-by-cell production plan to the host controller 300 and the cell simulator 200 .
  • step S21 In response to receiving the production instruction transmitted from the production instruction device 2, the host controller 300 executes the process in step S21. In parallel with execution of processing steps by the host controller 300, the data collection device 100 executes step S31. In step S ⁇ b>31 , the history acquisition unit 111 collects execution histories of processing steps and stores them in the database 112 .
  • step S ⁇ b>41 the state matching unit 213 acquires the state information of the physical space from the database 112 .
  • step S42 the state matching unit 213 matches the state of the virtual space with the state of the real space based on the information acquired in step S41.
  • step S43 the cell simulator 200 executes step S43.
  • the virtual production device 212 executes a virtual processing step in the virtual space.
  • the virtual data collection unit 214 collects execution histories of the virtual processing steps and stores them in the virtual database 215 in parallel with the execution of the virtual processing steps.
  • 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.
  • step S45 the comparison unit 216 compares the execution result of the processing step with the execution result of the virtual processing step.
  • 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 and stored in the virtual database 215 in step S43.
  • step S ⁇ b>45 the abnormality detection section 217 may detect abnormality of the production apparatus 4 based on the comparison result by the comparison section 216 .
  • the cell simulator 200 may further execute step S46 based on the comparison result by the comparison unit 216.
  • the simulator correction unit 222 changes the simulation parameters for causing the virtual production apparatus 212 to execute the virtual process so as to reduce the deviation between the execution result of the process and the execution result of the virtual process.
  • the host controller 300 may further execute step S22.
  • the parameter changing section 321 changes the control parameters for causing the production apparatus 4 to execute the processing steps so as to reduce the deviation between the execution results of the processing steps and the execution results of the virtual processing steps.
  • the production instruction device 2 may further execute step S12.
  • step S ⁇ b>12 the plan changing unit 811 changes the production plan based on the comparison result by the comparing unit 216 .
  • FIG. 11 is a flow chart illustrating the processing executed by the host controller 300 in the above processing steps.
  • the host controller 300 first executes steps S211 and S212.
  • step S211 the production instruction acquisition unit 312 waits for acquisition of production instructions.
  • step S212 the processing process selection unit 313 selects a processing process for each product based on the production instruction acquired by the production instruction acquisition unit 312 and the multiple types of processing processes stored in the processing process database 311.
  • FIG. 11 is a flow chart illustrating the processing executed by the host controller 300 in the above processing steps.
  • the host controller 300 first executes steps S211 and S212.
  • the production instruction acquisition unit 312 waits for acquisition of production instructions.
  • step S212 the processing process selection unit 313 selects a processing process for each product based on the production instruction acquired by the production instruction acquisition unit 312 and the multiple types of processing processes stored in the processing process database 311.
  • step S213 the process allocation unit 316 allocates the unexecuted task in the process to one of the plurality of machines 5 based on the progress information of the process.
  • 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 steps.
  • step S ⁇ b>215 the information display unit 315 collects the state information of the physical space and the progress information of the processing steps, and stores them in the information storage unit 314 .
  • step S216 the display unit 318 displays the information stored in the information storage unit 314 on the monitor.
  • step S217 the command output unit 317 confirms whether or not the processing steps selected by the processing step selection unit 313 for each product have been completed. If it is determined in step S217 that at least part of the processing steps have not been executed, the host controller 300 returns the process to step S213. After that, 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 host controller 300 terminates the processing.
  • FIG. 12 is a flowchart illustrating processing executed by the local controller 400 in the above processing steps.
  • the local controller 400 first executes step S221.
  • the selection unit 413 waits for the execution command to be stored in the command buffer 411 .
  • step S ⁇ b>222 the interlock unit 414 sets an entry prohibited area for the corresponding machine body 10 in the physical space based on the progress of the task executed by the other machine body 10 .
  • the selection unit 413 selects the command buffer 411 based on the execution conditions (condition headers 422) of the plurality of tasks in the task program storage unit 412 and the state of the physical space stored in the information storage unit 314. It is checked whether any of the tasks (corresponding tasks) corresponding to the stored execution commands are executable. If it is determined in step S223 that there is no executable corresponding task, the local controller 400 returns the process to step S221.
  • 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.
  • step S ⁇ b>225 the control unit 416 starts controlling the machine body 10 to execute the corresponding task selected by the selection unit 413 .
  • step S ⁇ b>226 the status output unit 417 transmits the status information of the machine body 10 to the host controller 300 .
  • step S227 the status output unit 417 confirms whether or not execution of the corresponding task has been completed. If the local controller 400 determines that execution of the corresponding task has not been completed, the process returns to step S226. Thereafter, the transmission of the status information of the machine main body 10 to the host controller 300 is repeated until the execution of the corresponding task is completed.
  • step S227 When it is determined in step S227 that the execution of the corresponding task has been completed, the status output unit 417 executes step S228.
  • step S ⁇ b>228 the status output unit 417 transmits the notification of completion of the corresponding task to the host controller 300 while including it in the status information.
  • the local controller 400 After that, the local controller 400 returns the process to step S221.
  • the local controller 400 repeatedly executes the above processing at a predetermined control cycle.
  • FIG. 13 is a flow chart illustrating the processing executed by the virtual upper controller 500 in the above virtual processing steps.
  • the virtual upper controller 500 first executes steps S411 and S412.
  • step S411 the production instruction acquisition unit 512 waits for acquisition of production instructions.
  • step S412 the process selection unit 513 selects a virtual process for each product based on the production instructions acquired by the production instruction acquisition unit 512 and the multiple types of processes stored in the task database 511.
  • step S413 the process allocation unit 516 allocates the unexecuted task in the process to one of the plurality of virtual machines 600 based on the progress information of the process.
  • 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 steps.
  • step S415 the virtual upper controller 500 executes steps S415 and S416.
  • step S ⁇ b>415 the virtual information posting unit 515 collects state information of the virtual space and progress information of the virtual processing steps, and stores them in the information storage unit 514 .
  • step S416 the display unit 518 displays the information stored in the information storage unit 514 on the monitor.
  • step S417 the command output unit 517 confirms whether or not the virtual processing steps selected by the processing step selection unit 513 for each product have been completed. If it is determined in step S417 that at least part of the virtual processing steps have not been executed, the virtual upper controller 500 returns the process to step S413. After that, until the virtual processing steps for each product are completed, the output of the execution command and the updating of the information are repeated. If it is determined in step S417 that the virtual processing step has been completed, the virtual upper controller 500 ends the processing.
  • FIG. 14 is a flowchart illustrating processing executed by the virtual machine 600 in the virtual processing steps.
  • the virtual machine 600 first executes step S421.
  • the selection unit 613 waits for the execution command to be stored in the command buffer 611 .
  • step S422 the interlock unit 614 sets an entry prohibited 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.
  • step S423 the selection unit 613 selects the command buffer 611 based on the execution conditions (condition headers 422) of the plurality of tasks in the task program storage unit 612 and the state of the virtual space stored by the interlock unit 614. It is checked whether any of the tasks (corresponding tasks) corresponding to the stored execution commands are executable. If it is determined in step S423 that there is no executable corresponding task, the virtual machine 600 returns the process to step S421.
  • step S423 If it is determined in step S423 that there is an executable corresponding task, the virtual machine 600 executes step S424.
  • 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.
  • step S425 the control unit 616 starts causing the machine body 10 to execute the corresponding task selected by the selection unit 613 in the virtual space.
  • step S ⁇ b>426 the status output unit 617 transmits the status information of the machine body 10 in the virtual space to the virtual upper controller 500 .
  • step S427 the status output unit 617 confirms whether or not execution of the corresponding task has been completed.
  • step S426 the virtual machine 600 returns the process to step S426. Thereafter, until the execution of the corresponding task is completed, the transmission of the status information of the machine body 10 in the virtual space to the virtual upper controller 500 is repeated.
  • step S427 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.
  • step S ⁇ b>428 the status output unit 617 transmits the notification of completion of the corresponding task to the virtual upper controller 500 while including it in the status information. After that, the virtual machine 600 returns the processing to step S421. The virtual machine 600 repeatedly executes the above processing.
  • FIG. 15 is a flowchart illustrating an unplanned processing procedure by the production system 1.
  • the host controller 300 first executes step S231.
  • the host controller 300 waits for unscheduled processing. Examples of unplanned processing include the return operation described above. For example, when the operation of a plurality of machines 5 is stopped due to the occurrence of an abnormality, the host controller 300 determines that a recovery operation is necessary.
  • step S232 upper controller 300 requests cell simulator 200 for a service for executing unplanned processing.
  • the host controller 300 requests the cell simulator 200 to generate unplanned processing to be executed by at least one of the plurality of machines 5 .
  • the cell simulator 200 executes steps S431 and S432.
  • step S ⁇ b>431 the state matching unit 213 acquires the state information of the physical space from the database 112 .
  • step S432 the state matching unit 213 matches the state of the virtual space with the state of the real space based on the information acquired in step S41.
  • the cell simulator 200 executes steps S433 and S434.
  • the service unit 221 causes the virtual production device 212 to execute the specific simulation, and executes service processing for generating response information based on the result of the specific simulation.
  • the service section 221 transmits the service processing result to the host controller 300 as response information.
  • step S233 the host controller 300 causes at least one of the plurality of machines 5 to execute unplanned processing based on the response information. Thus, the unplanned processing procedure by the production system 1 is completed.
  • FIG. 16 is a flowchart illustrating the procedure of service processing in step S221.
  • the cell simulator 200 first executes steps S451 and S452.
  • the service unit 221 provisionally generates an unplanned process.
  • the service unit 221 causes the virtual production device 212 to execute unplanned processing in the virtual space.
  • step S453 it is checked whether the operation result of the virtual production device 212 in the virtual space satisfies a predetermined condition.
  • 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. After that, the cell simulator 200 returns the processing to step S452.
  • step S453 the operation result of the virtual production device 212 in the virtual space satisfies the predetermined condition.
  • a production device 4 that executes a processing process on a workpiece in real space to produce a product based on a production instruction transmitted based on a production plan, and a process performed by the production device 4 based on the production instruction.
  • a production system comprising a simulator 200 having a virtual production device 212 that executes a virtual process corresponding to the process in a virtual space, and a comparator 216 that compares the execution result of the process with the execution result of the virtual process. 1.
  • the virtual production apparatus 212 is caused to execute the virtual processing steps in the virtual space, and the execution results of the virtual processing steps are compared according to the situation in which the production apparatus 4 executes the processing steps.
  • a reference can be generated and the results of the execution of the process steps can be monitored based on comparison with the comparison reference.
  • the simulator 200 further has a state matching unit 213 that matches the state of the virtual space with the state of the real space when starting the execution of the processing steps.
  • the production system 1 according to (1) which executes virtual processing steps based on the state of the virtual space obtained. After matching the state of the virtual space with the state of the real space immediately before the processing steps according to the production instruction are executed, the virtual production device 212 is caused to execute the virtual processing steps, thereby establishing a more reliable comparison standard. can be generated.
  • the history acquisition unit 111 collects the execution history of the processing steps from the production apparatus 4 and stores it in the database 112.
  • the state matching unit 213 acquires the state of the virtual space based on the information stored in the database 112. to the state of the real space, the production system 1 according to (2).
  • After matching the state of the virtual space with the state of the real space it is possible to easily construct a system that causes the virtual production device 212 to execute the virtual processing steps.
  • the production device 4 autonomously executes processing steps according to a predetermined algorithm.
  • the production system 1 according to any one of (1) to (3), which autonomously executes the virtual processing steps with an algorithm based on. By executing the virtual processing steps with the same algorithm as the algorithm of the production apparatus 4 based on the same production instruction as the production instruction for the production apparatus 4, a more reliable comparison standard can be generated.
  • the production device 4 has a plurality of machines 5 including robots 5B, 5C, and 5D, and an information display unit 315 that collects state information of the real space.
  • the production system 1 according to (4), which autonomously executes at least part of the processing steps based on the state information of the physical space collected by the unit 315 .
  • the robots 5B, 5C, and 5D are caused to perform autonomous operations based on production instructions and cell state information, it is even more difficult to specify the virtual processing steps to be executed by the virtual production device 212 in order to generate a comparison target. be. For this reason, comparisons with comparisons generated by simulations based on production orders are even more useful.
  • the information display unit 315 further collects progress information of the processing steps, and the robots 5B, 5C, and 5D autonomously perform at least a part of the processing steps based on the state information of the real space and the progress information.
  • the production system 1 according to (5), which executes When the robots 5B, 5C, and 5D are caused to perform autonomous operations based on the progress information in addition to the production instructions and the cell status information, the virtual processing to be executed by the virtual production device 212 in order to generate a comparison target. Process identification is even more difficult. For this reason, comparisons with comparisons generated by simulations based on production orders are even more useful.
  • a process allocation unit 316 for allocating unexecuted processes in the processing process to one of the plurality of machines 5 based on the progress information, and the robots 5B, 5C, and 5D are allocated by the process allocation unit 316.
  • the robots 5B, 5C and 5D set a no-entry area for the robots 5B, 5C and 5D based on the progress of the process executed by any of the machines 5 other than the robots 5B, 5C and 5D.
  • the production system 1 according to (6) or (7), which has an interlock part 414 . Based on the progress of the processes executed by the machines 5 other than the robots 5B, 5C, and 5D, the no-entry areas for the robots 5B, 5C, and 5D are dynamically generated. There is no need to set a 5D prohibited area in advance. Therefore, the production system 1 can be easily constructed. If the no-entry area is set more autonomously, it becomes more difficult to specify the virtual processing steps to be executed by the virtual production device 212 to generate the comparison target. For this reason, comparisons with comparisons generated by simulations based on production orders are even more useful.
  • the progress information includes reservation information indicating which of the plurality of machines 5 is assigned to the unexecuted process, and the information display unit 315 displays which of the plurality of machines 5 is assigned in the reservation information.
  • the no-entry area can be set more timely.
  • each autonomous operation of the plurality of machines 5 can be executed in a more timely manner.
  • the production system 1 according to any one of (5) to (9), further comprising a display section 318 for displaying information collected by the information display section 315 on a monitor. It is possible for the operator to easily comprehend what state the robots 5B, 5C, and 5D operate autonomously based on.
  • 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 virtual space state information.
  • the production system 1 according to any one of (5) to (10), which autonomously executes at least part of the virtual processing steps based on the state information of the virtual space collected by the virtual information posting unit 515. By matching the configuration of the virtual production device 212 to the configuration of the production device 4, a more reliable comparison target can be generated.
  • the comparison result by the comparison unit 216 includes a deviation between the execution result of at least part of the processing steps by the robots 5B, 5C, and 5D and the execution result of at least part of the virtual processing steps by the virtual robot.
  • a factor identification unit 223 for identifying the virtual machines 600 other than the robots 5B, 5C, and 5D that cause the deviation; and simulation parameters for causing the virtual machine 600 that causes the deviation to execute at least part of the virtual process
  • the comparison unit 216 compares the transition timing of the state of the real space according to the progress of the processing steps with the transition timing of the state of the virtual space according to the progress of the virtual processing steps. ). It is possible to improve the ease of utilization of the result of comparison between the execution result of the processing step and the execution result of the virtual processing step.
  • the simulator 200 further has a service section 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 result of the specific simulation to the production device 4. , (1) to (13).
  • the state of the virtual cell changes along with the state of the cell. Therefore, a specific simulation in response to a request from the production device 4 can be quickly executed based on the state of the virtual cell that has changed together with the state of the cell, and response information can be returned to the production device 4 in a short waiting time.
  • Simulation parameters for causing the virtual production device 212 to execute the virtual processing steps are set so as to reduce the deviation between the execution results of the processing steps and the execution results of the virtual processing steps, based on the comparison result by the comparison unit 216.
  • the production system 1 according to any one of (1) to (15), further comprising a simulator correction section 222 that changes.
  • the comparison result by the comparison unit 216 can be used for adjusting the simulation parameters.
  • the production system 1 according to any one of (1) to (16), further comprising a plan changing section 811 that changes the production plan based on the comparison result of the comparing section 216.
  • the comparison result by the comparison unit 216 can be used for adjusting the production plan.
  • 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 a production instruction and converts it into a simulation instruction. 1.
  • a production system 1 according to any of the preceding claims. It is possible to easily construct the simulator 200 that causes the virtual production device 212 to execute a virtual process based on the same production instruction as the production instruction for the production device 4 .
  • a production method comprising causing a virtual production device 212 to execute a corresponding virtual processing step in a virtual space, and comparing the execution result of the processing step with the execution result of the virtual processing step.

Abstract

生産システム1は、生産計画に基づき送信された生産指示に基づいて、ワークに対し処理工程を現実空間で実行して生産物を生産する生産装置4と、生産指示に基づいて、生産装置4が行う処理工程に対応した仮想処理工程を、仮想空間で実行する仮想生産装置212を有するシミュレータ200と、処理工程の実行結果と、仮想処理工程の実行結果とを比較する比較部216と、を備える。

Description

生産システム及び生産方法
 本開示は、生産システム及び生産方法に関する。
 特許文献1には、少なくともロボットを含む複数のローカル機器をそれぞれ制御する複数のローカルコントローラと、複数のローカルコントローラと通信可能な環境管理部と、を備える制御システムが開示されている。環境管理部は、環境情報を格納する環境情報格納部と、複数のローカル機器の動作に応じて環境情報を更新する情報更新部と、を有する。複数のローカルコントローラのそれぞれは、環境情報格納部に格納された環境情報が所定の条件を満たすか否かを監視する条件監視部と、環境情報が所定の条件を満たす場合に制御対象のローカル機器に所定の動作を実行させる動作実行部と、を有する。
特開2021-86393号公報
 本開示は、自律的な動作をリアルタイムに検証するのに有効なシステムを提供する。
 本開示の一側面に係る生産システムは、生産計画に基づき送信された生産指示に基づいて、ワークに対し処理工程を現実空間で実行して生産物を生産する生産装置と、生産指示に基づいて、生産装置が行う処理工程に対応した仮想処理工程を、仮想空間で実行する仮想生産装置を有するシミュレータと、処理工程の実行結果と、仮想処理工程の実行結果とを比較する比較部と、を備える。
 本開示の他の側面に係る生産方法は、生産計画に基づき送信された生産指示に基づいて、ワークに対し処理工程を現実空間で実行して生産物を生産することと、生産指示に基づいて、生産装置が行う処理工程に対応した仮想処理工程を、仮想空間で仮想生産装置に実行させることと、処理工程の実行結果と、仮想処理工程の実行結果とを比較することと、を含む。
 本開示によれば、自律的な動作をリアルタイムに検証するのに有効なシステムを提供することができる。
生産システムの構成を例示しる模式図である。 生産装置の構成を例示する模式図である。 ロボットの構成を例示する模式図である。 上位コントローラ及びローカルコントローラの機能的な構成を例示するブロック図である。 仮想生産装置の機能的な構成を例示するブロック図である。 生産システムの変形例を示すブロック図である。 生産システムの他の変形例を示すブロック図である。 生産システムの更に他の変形例を示すブロック図である。 データ収集装置、セルシミュレータ、上位コントローラ、及びローカルコントローラのハードウェア構成を例示するブロック図である。 生産手順を例示するシーケンスチャートである。 処理工程の実行手順を例示するフローチャートである。 処理工程の実行手順を例示するフローチャートである。 仮想処理工程の実行手順を例示するフローチャートである。 仮想処理工程の実行手順を例示するフローチャートである。 計画外の処理手順を例示するフローチャートである。 サービス処理手順を例示するフローチャートである。
 以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
〔生産システム〕
 図1に示す生産システム1は、現実空間において生産物を生産するシステムである。生産物は、1以上の部品に対する機械的な加工、組み立てにより生産される有体物であればいかなるものであってもよい。現実空間は、有体物が実際に存在する空間である。
 生産システムの柔軟な運用のためには、上位コントローラからの生産指示に応じた処理工程を複数のマシンにどのように割り当て、割り当てた処理工程を複数のマシンにいかなるタイミングで実行させるかを生産装置が自律的に判断し、判断結果に基づき自律的に動作することが望ましい。しかしながら、生産指示に基づき生産装置が自律的に処理工程を実行するシステムにおいては、生産指示を取得する際における現実空間の状態と、生産指示の内容との組み合わせによって生産装置に実行させるべき動作は変わる。このため、生産装置が実際に行い得る動作内容の全てに対して、正しい動作内容を予め設定しておき、生産装置の動作内容を正しい動作内容と比較してリアルタイムに検証するのが難しい。
 これに対し、生産システム1は、所謂デジタルツイン技術の活用により、生産装置の自律的な動作をリアルタイムに検証することを可能にする。生産システム1は、生産装置と、シミュレータと、比較部とを備える。生産装置は、生産計画に基づき送信された生産指示に基づいて、ワークに対し処理工程を現実空間で実行して生産物を生産する。シミュレータは、上記生産指示に基づいて、生産装置が行う処理工程に対応した仮想処理工程を、仮想空間で実行する仮想生産装置を有する。比較部は、処理工程の実行結果と、仮想処理工程の実行結果とを比較する。
 シミュレータは、生産装置が基づく生産指示と同一の生産指示に基づいて仮想処理工程を実行する。生産指示が同一であるとは、生産指示の内容が同一であることに加えて、生産指示の送信タイミングが同一であることを意味する。例えばシミュレータは、生産装置に対して生産指示が送信された後に生産指示を受信し、受信した生産指示に基づいて仮想処理工程を実行する。
 シミュレータは、生産装置が処理工程を実行する期間と少なくとも一部が重複する期間に仮想処理工程を実行してもよいが、処理工程の実行タイミングと、仮想処理工程の実行タイミングとは必ずしも一致していなくてもよい。例えばシミュレータは、生産指示を受信した後、生産装置が処理工程を実行する前に仮想処理工程を実行してもよい。
 生産システム1によれば、生産装置が処理工程を実行する状況に応じた仮想処理工程の実行結果を、シミュレータにより比較基準として生成し、処理工程の実行結果を比較基準との比較に基づきタイムリーに監視することができる。従って、生産装置の自律的な動作をリアルタイムに検証するのに有効である。
 図1に例示するように、生産システム1は、生産指示装置2と、1以上のセル3とを備える。生産指示装置2は、製造実行システム9(MES:Manufacturing Execution System)により生成された生産計画をセル単位の生産計画にブレークダウンし、セル単位の生産計画に基づく生産指示を1以上のセル3のそれぞれに送信する。
 図1には、1のセル3のみが図示されているが、生産システム1は複数のセル3を備えていてもよい。この場合、生産指示装置2は、複数のセル3のそれぞれに対して生産指示を送信する。セル3は、生産装置4と、データ収集装置100と、セルシミュレータ200とを有する。後に例示するように、生産装置4と、データ収集装置100と、セルシミュレータ200とは、ネットワーク通信等によって相互に情報の送受信を行う。
 生産装置4は、生産計画に基づき生産指示装置2から送信された生産指示に基づいて、ワークに対し処理工程を現実空間で実行して生産物を生産する。ワークは、生産物の少なくとも一部を構成するために生産装置4が扱う有体物である。例えばワークは生産物に組付けられる部品であってもよく、部品の組付け等によって構成される中間生成物であってもよく、最終的に完成した生産物自体であってもよい。
 ワークに対する処理工程は、複数の工程を含む。複数の工程の例としては、ベース部品を作業エリアに搬入すること、部品をベース部品に組み付けること、締結又は溶接などにより部品をベース部品に固定すること、ベース部品に1以上の部品を組み付けて完成した生産物を作業エリアから搬出すること、等が挙げられる。
 後述するように、生産装置4は、少なくとも1のロボットを含む複数のマシンを有する。ロボット以外のマシンの例としては、ワークを搬送する搬送装置、作業対象のワークの位置・姿勢を調節する装置、ワークに対する加工を行う工作機械等が挙げられるが、例示したものに限られない。ワークに対する工程を実行可能であれば複数のマシンに含まれる。
 複数の工程は、直列的に順次実行すべき2以上の工程を含んでいてもよく、複数のマシンによって同時進行で実行可能な2以上の工程を含んでいてもよい。ロボットにより実行される工程の例としては、ワークの搬送、ワークの組付け、締結などによるワークの固定、工作機械などの周辺マシンに対するワークの搬入・搬出等が挙げられる。工作機械により実行される工程の例としては、扉の開閉、搬入されたワークのチャック、ワークの回転・移動、工具交換、ワークに対する工具の配置・移動、加工後のチャックの解除等が挙げられる。
 データ収集装置100は、生産装置4からデータを収集して蓄積する。例えばデータ収集装置100は、機能上の構成要素(以下、「機能ブロック」という。)として、履歴取得部111と、データベース112とを有する。履歴取得部111は、上記データの例として、処理工程の実行履歴を生産装置4から収集してデータベース112に記憶させる。
 処理工程の実行履歴は、例えば、処理工程の実行による現実空間の状態の推移である。現実空間の状態は、例えば現実空間におけるセル3の状態であり、複数のマシンのそれぞれの状態と、ワークの状態とを含む。ロボットの状態の例としては、ロボットの関節角度、ロボットに装着されているツールの種別、ツールの動作状態等が挙げられる。工作機械の状態の例としては、扉の状態、ワークの有無、加工の進捗状態等が挙げられる。
 ワークの状態の例としては、ワークの配置、ワークに対する工程の進捗状態等が挙げられる。生産装置が同種の複数の生産物を生産する場合、現実空間の状態は、複数の生産物ごとにワークの状態を含んでいてもよい。
 生産装置4は、現実空間の状態を表す情報を周期的に取得する。履歴取得部111は、生産装置4が取得した情報を順次取得し、時刻に対応付けてデータベース112に記憶させる。これにより、複数種類の情報の推移を共通の時刻で表した実行履歴がデータベース112に蓄積される。現実空間の状態を表す情報は、カメラ等により撮影された現実空間の静止画データ又は動画データを含んでいてもよい。
 なお、機能ブロックによる処理内容は、機能ブロックを有する主体による処理内容に相当する。例えば、履歴取得部111が処理工程の実行履歴を収集してデータベース112に記憶させることは、データ収集装置100が処理工程の実行履歴を収集して記憶することに相当する。以下においても同様である。
 セルシミュレータ200は、上述したシミュレータであり、機能ブロックとして、モデル記憶部211と、仮想生産装置212と、状態整合部213と、仮想データ収集部214と、仮想データベース215と、比較部216と、異常検出部217とを有する。モデル記憶部211は、少なくとも複数のマシンのモデルを記憶する。モデルは、現実空間における配置、構造、形状、大きさ等を表す数値データである。
 モデルに基づくことで、マシンを実際に動作させることなく、動作に伴うマシンの状態の変化を算出することが可能となる。モデル記憶部211は、ワークのモデルを更に記憶していてもよい。
 仮想生産装置212は、生産装置が基づく生産指示と同一の生産指示に基づいて、仮想処理工程を仮想空間で実行する。仮想処理工程は、処理工程に含まれる複数の工程と同じ内容を有する複数の仮想工程を含む。例えば仮想生産装置212は、上記生産指示に基づく複数のマシンの動作に対応するように、上記生産指示に基づいて複数の仮想マシンを仮想空間で動作させる。複数の仮想マシンは、例えばモデル記憶部211が記憶する複数のマシンのモデルである。
 複数の仮想マシンを仮想空間で動作させることは、上記モデルに基づいて、複数のマシンを実際に動作させることなく、動作後の複数のマシンの状態を表す数値データを算出することを意味する。例えば、動作後の複数のマシンの状態を表す数値データが、仮想空間における複数の仮想マシンであるともいえる。動作後の複数のマシンの状態を表す数値データの基準となる座標が仮想空間である。
 仮想生産装置212は、仮想空間における仮想マシンの動作に応じて、ワークに対応する仮想ワークの状態を仮想空間で変化させてもよい。仮想ワークの状態を仮想空間で変化させることは、上記モデルに基づいて、マシンを実際に動作させることなく、動作後におけるワークの状態を表す数値データを算出することを意味する。例えば、動作後のワークの状態を表す数値データが仮想ワークであるともいえる。
 状態整合部213は、処理工程の実行を開始する際における現実空間の状態に、仮想空間の状態を合わせる。例えば状態整合部213は、データ収集装置100のデータベース112が記憶する情報に基づいて、仮想空間の状態を現実空間の状態に合わせる。仮想空間の状態は、例えばセル3に対応する仮想セルの仮想空間における状態である。例えば状態整合部213は、現実空間における複数のマシン及びワークの状態に、仮想空間における複数の仮想マシン及び仮想ワークの状態を合わせる。仮想空間における複数の仮想マシン及び仮想ワークの状態を、現実空間における複数のマシン及びワークの状態に合わせることは、上述した「動作後の複数のマシンの状態を表す数値データ」及び「動作後におけるワークの状態を表す数値データ」を算出する基準となる初期データを、現実空間における複数のマシン及びワークの状態に合わせることを意味する。
 状態整合部213は、仮想空間の状態を現実空間の状態に合わせることを、生産指示の受信に応じて実行してもよい。状態整合部213は、仮想空間の状態を現実空間の状態に合わせることを、仮想生産装置212が仮想処理工程を実行する期間以外において繰り返してもよい。
 仮想生産装置212は、現実空間の状態に合わせられた仮想空間の状態に基づいて仮想処理工程を実行する、生産指示に応じた処理工程が実行される直前の現実空間の状態に仮想空間の状態を合わせた上で、仮想生産装置に仮想処理工程を実行させることで、より信頼性の高い比較基準を生成することができる。
 仮想データ収集部214は、仮想処理工程の実行履歴を収集して仮想データベース215に記憶させる。仮想処理工程の実行履歴は、例えば、仮想処理工程の実行による仮想空間の状態の推移である。仮想空間の状態は、例えば仮想空間における仮想セルの状態であり、複数の仮想マシンのそれぞれの状態と、仮想ワークの状態とを含む。
 仮想生産装置212は、仮想処理工程の開始からの経過時間を増加させながら、経過時間に応じた仮想空間の状態を表す数値データを周期的に算出する。なお、経過時間は、仮想生産装置212による演算時間ではなく、現実空間における経過時間を模擬した時間である。仮想データ収集部214は、仮想生産装置212が算出した数値データを順次取得し、経過時間に対応付けて仮想データベース215に記憶させる。これにより、複数種類の情報の推移を共通の時刻で表した実行履歴が仮想データベース215に蓄積される。
 比較部216は、処理工程の実行結果と、仮処理工程の実行結果とを比較する。例えば比較部216は、データベース112が記憶する処理工程の実行履歴と、仮想データベース215が記憶する仮想処理工程の実行履歴とを比較する。例えば比較部216は、処理工程の開始時点を基準とした現実空間の状態の遷移タイミングと、仮想処理工程の開始時点を基準とした仮想空間の状態の遷移タイミングとを比較する。現実空間・仮想空間の状態の遷移タイミングの例としては、複数のマシン・複数の仮想マシンの状態の遷移タイミング、ワーク・仮想ワークの状態の遷移タイミング等が挙げられる。遷移タイミングは、状態が変化するタイミングを意味する。
 処理工程の実行結果と、仮想処理工程の実行結果との比較は、必ずしも遷移タイミングの比較に限られない。比較部216は、基準から同一の時間が経過した時点における複数のマシンの状態と複数の仮想マシンの状態とを比較してもよい。マシンの状態と仮想マシンの状態との比較の例として、ロボットの関節角度と仮想ロボットの関節角度との比較、ロボットの関節トルクと仮想ロボットの関節トルクとの比較等が挙げられる。
 比較部216は、基準から同一の時間が経過した時点におけるワークの状態と仮想ワークの状態とを比較してもよい。ワークの状態と仮想ワークの状態との比較の例として、ワークの配置と仮想ワークの配置との比較、ワークに対する工程の進捗と仮想ワークに対する工程の進捗との比較等が挙げられる。
 異常検出部217は、比較部216による比較結果に基づいて、生産装置4の異常を検出する。例えば異常検出部217は、処理工程の実行結果と仮想処理工程の実行結果とに、所定条件を満たす乖離が検出された場合に、生産装置4の異常を検出する。一例として、異常検出部217は、現実空間の状態の遷移タイミングと、仮想空間の状態の遷移タイミングとの差が所定の閾値を超えた場合に生産装置4の異常を検出する。
 生産装置4は、生産指示と、現実空間の状態とに基づいて、所定のアルゴリズムで自律的に処理工程を実行してもよい。これに対応し、仮想生産装置212は、生産指示と、仮想空間の状態とに基づいて、上記アルゴリズムで自律的に仮想処理工程を実行してもよい。生産装置に対する生産指示と同じ生産指示に基づき、生産装置のアルゴリズムと同じアルゴリズムで仮想処理工程を実行することで、より信頼性の高い比較基準を生成することができる。
 処理工程を自律的に実行することは、処理工程を実行するために複数のマシンのそれぞれに実行させる動作、及び複数のマシンのそれぞれの動作タイミングの少なくともいずれかを、現実空間の状態に基づいて自ら決定することを意味する。
 例えば生産指示は、生産すべき生産物の種類及び数量の指示を含む。生産装置4は、選択した工程のために複数のマシンのそれぞれに実行させる動作の少なくとも一部を、現実空間の状態に基づいて、周辺物体への衝突を回避するように修正するアルゴリズムによって、複数のマシンのそれぞれに実行させる動作の少なくとも一部を自律的に決定してもよい。同様に、仮想生産装置212は、選択した仮想工程のために複数の仮想マシンのそれぞれに実行させる動作の少なくとも一部を、仮想空間の状態に基づいて、周辺物体への衝突を回避するように修正するアルゴリズムによって、複数の仮想マシンのそれぞれに実行させる動作の少なくとも一部を自律的に決定してもよい。
 生産装置4は、複数のマシンのそれぞれの動作を実行可能であるか否かを、予め定められた条件と現実空間の状態とに基づいて判定するアルゴリズムによって、複数のマシンのそれぞれの動作タイミングの少なくとも一部を自律的に決定してもよい。同様に、仮想生産装置212は、複数の仮想マシンのそれぞれの動作を実行可能であるか否かを、予め定められた条件と仮想空間の状態とに基づいて判定するアルゴリズムによって、複数の仮想マシンのそれぞれの動作タイミングの少なくとも一部を自律的に決定してもよい。
 処理工程を自律的に実行することは、処理工程が含む複数の工程から、複数のマシンのそれぞれに実行させる工程を自律的に選択することを更に含んでいてもよい。例えば生産装置4は、複数のマシンのそれぞれが実行可能な工程の種類と、複数のマシンのそれぞれの状態と、複数の工程の進捗とに基づいて、複数のマシンのそれぞれに実行させる工程を特定するアルゴリズムによって、複数のマシンのそれぞれに実行させる工程を自律的に選択してもよい。同様に、仮想生産装置212は、複数の仮想マシンのそれぞれが実行可能な仮想工程の種類と、複数の仮想マシンのそれぞれの状態と、複数の仮想工程の進捗とに基づいて、複数の仮想マシンのそれぞれに実行させる仮想工程を特定するアルゴリズムによって、複数の仮想マシンのそれぞれに実行させる工程を自律的に選択してもよい。
(生産装置)
 図2は、処理工程を自律的に実行する生産装置4を例示する模式図である。図2に示す生産装置4は、ロボットを含む複数のマシン5と、現実空間の状態情報を収集する工程割当部316とを有する。ロボットは、工程割当部316が収集した現実空間の状態情報に基づいて、自律的に処理工程の少なくとも一部を実行する。
 例えば生産装置4は、複数のマシン5と、上位コントローラ300とを備える。複数のマシン5のそれぞれは、マシン本体10と、ローカルコントローラ400とを含む。マシン本体10は、現実空間において、ワークWに対し直接的に作業を実行する。直接的な作業は、例えば熱エネルギー、運動エネルギー、位置エネルギー等の何らかのエネルギーをワークWに付与する作業である。ローカルコントローラ400は、作業を実行するようにマシン本体10を制御する。
 複数のマシン5のそれぞれは、例えば産業機械である。複数のマシン5は、少なくともロボットを含む(少なくとも1のマシン5はロボットである。)。また、複数のマシン5は、ロボットと協働する産業機械を含む。ロボットと協働する産業機械の例としては、他のロボット、工作機械等が挙げられる。図2に示す複数のマシン5は、搬送装置5Aと、ロボット5B,5C,5Dとを含んでいるが、これに限られない。少なくとも1のロボットを含んでいる限り、マシン5の数及び種類はいかようにも変更可能である。
 搬送装置5Aは、装置本体10A(マシン本体)と装置コントローラ400A(ローカルコントローラ)とを有する。装置本体10Aは、例えば電動モータ等により駆動され、ワークWを搬送する。装置コントローラ400AはワークWを搬送するように装置本体10Aを制御する。装置本体10Aの例としては、ベルトコンベヤ、ローラコンベヤ、カルーセル等が挙げられる。
 ロボット5Bは、ロボット本体10Bとロボットコントローラ400Bとを有し、ロボット5Cは、ロボット本体10Cとロボットコントローラ400Cとを有し、ロボット5Dは、ロボット本体10Dとロボットコントローラ400Dとを有する。ロボット本体10B,10C,10D(マシン本体)は、装置本体10Aが搬送するワークWに対する作業を行う。ロボットコントローラ400B,400C,400D(ローカルコントローラ)は、作業を行うようにロボット本体10B,10C,10Dをそれぞれ制御する。ワークWに対する作業の例としては、装置本体10Aが搬送するワークW(例えばベースパーツ)に対する他のワークW(例えばサブパーツ)の組付け、装置本体10Aが搬送するワークWにおけるパーツ同士の締結(例えばボルト締結)・接合(例えば溶接)、装置本体10Aの周囲に設置されたNC工作機械へのワークWの搬入、NC工作機械からのワークWの搬出等が挙げられる。
 ロボット本体10B,10Cは、6軸の垂直多関節ロボットであり、図3に示すように、基部11と、旋回部12と、第1アーム13と、第2アーム14と、第3アーム17と、先端部18と、アクチュエータ41,42,43,44,45,46とを有する。基部11は、搬送装置5Aの装置本体10Aの周囲に設置されている。旋回部12は、鉛直な軸線21まわりに旋回するように基部11上に設けられている。第1アーム13は、軸線21に交差(例えば直交)する軸線22まわりに揺動するように旋回部12に接続されている。交差は、所謂立体交差のようにねじれの関係にある場合も含む。第2アーム14は、軸線22に実質的に平行な軸線23まわりに揺動するように第1アーム13の先端部に接続されている。第2アーム14は、揺動部15と旋回部16とを含む。揺動部15は、第1アーム13の先端部に接続され、軸線23に交差(例えば直交)する軸線24に沿って延びている。旋回部16は、軸線24まわりに旋回するように揺動部15の先端部に接続され、軸線24に沿って更に延びている。第3アーム17は、軸線24に交差(例えば直交)する軸線25まわりに揺動するように旋回部16の先端部に接続されている。先端部18は、軸線25に交差(例えば直交)する軸線26まわりに旋回するように第3アーム17の先端部に接続されている。先端部18には、例えはハンド、吸着ノズル、溶接トーチ等の作業ツールが取り付けられる。
 このように、ロボット本体10B,10Cは、基部11と旋回部12とを接続する関節31と、旋回部12と第1アーム13とを接続する関節32と、第1アーム13と第2アーム14とを接続する関節33と、第2アーム14において揺動部15と旋回部16とを接続する関節34と、旋回部16と第3アーム17とを接続する関節35と、第3アーム17と先端部18とを接続する関節36とを有する。
 アクチュエータ41,42,43,44,45,46は、例えば電動モータ及び減速機を含み、関節31,32,33,34,35,36をそれぞれ駆動する。例えばアクチュエータ41は、軸線21まわりに旋回部12を旋回させ、アクチュエータ42は、軸線22まわりに第1アーム13を揺動させ、アクチュエータ43は、軸線23まわりに第2アーム14を揺動させ、アクチュエータ44は、軸線24まわりに旋回部16を旋回させ、アクチュエータ45は、軸線25まわりに第3アーム17を揺動させ、アクチュエータ46は、軸線26まわりに先端部18を旋回させる。
 なお、ロボット本体10B,10Cの構成は適宜変更可能である。例えばロボット本体10B,10Cは、上記環境センサ6軸の垂直多関節ロボットに更に1軸の関節を追加した7軸の冗長型ロボットであってもよく、所謂スカラー型の多関節ロボットであってもよい。
 図2に戻り、ロボット本体10Dは、自立走行可能なロボットである。ロボット本体10Dは、ロボット本体10B,10Cと同様のロボットにおいて、基部11が自走可能となったものである。自走可能な基部11の例としては、電動式の無人搬送車(AGV:Automated Guided Vehcle)が挙げられる。
 上位コントローラ300は、複数のマシン5のローカルコントローラ400と有線又は無線による同期通信を行い、現実空間の状態情報を収集する。同期通信とは、一定の周期(上記通信周期)の同期フレームに同期して、1周期ごとに、複数のマシン5もローカルコントローラ400との通信を行うことを意味する。ローカルコントローラ400は、上位コントローラ300が収集した現実空間の状態情報に基づいて、自律的に処理工程の少なくとも一部を実行するようにマシン本体10を制御する。
 上位コントローラ300は、生産指示装置2と有線又は無線による通信を行い、生産指示を取得する。上位コントローラ300と生産指示装置2との通信は、同期通信であってもよく、非同期通信であってもよい。上位コントローラ300は、生産指示に基づいて、複数のマシン5に実行させる処理工程を決定してもよい。上位コントローラ300は、現実空間における複数のマシン5の状態情報と、処理工程の進捗情報とを含む現実空間の状態情報を収集し、複数のマシン5の状態情報と、処理工程の進捗情報とに基づいて、複数のマシン5のそれぞれに実行させる工程を自律的に選択してもよい。ローカルコントローラ400は、選択された工程を、現実空間における複数のマシン5の状態情報と、処理工程の進捗情報とに基づいて自律的に実行してもよい。
 図4に示すように、上位コントローラ300は、機能ブロックとして、処理工程データベース311と、生産指示取得部312と、処理工程選択部313と、情報格納部314と、情報掲示部315と、工程割当部316と、指令出力部317とを有する。
 処理工程データベース311は、複数種類の生産物にそれぞれ対応する複数種類の処理工程を記憶する。複数種類の処理工程のそれぞれは、複数のタスク(工程)を含む。タスクは、1のマシン5が実行する一まとまりの作業単位である。1の処理工程の複数のタスクが、互いに異なる複数のマシン5により実行されるタスクを含んでいてもよい。
 生産指示取得部312は、生産指示装置2から生産指示を取得する。生産指示は、生産物の種類と、種類ごとの生産数量とを含む。処理工程選択部313は、生産指示取得部312が取得した生産指示と、処理工程データベース311が記憶する複数種類の処理工程とに基づいて、生産物ごとに処理工程を選択する。処理工程選択部313は、生産物ごとの処理工程の選択結果を情報格納部314に記憶させる。
 情報掲示部315は、現実空間の状態情報を収集して情報格納部314に記憶させる。現実空間の状態情報は、例えば複数のマシン5に関する情報(以下、「マシン情報」という。)と、ワークWに関する情報(以下、「ワーク情報」という。)とを含む。ワーク情報の例としては、ワークWの位置・姿勢情報が挙げられる。マシン情報の例としては、複数のマシン5のそれぞれの位置・姿勢情報が挙げられる。マシン5の位置・姿勢情報の例としては、ロボット本体10B,10Cの姿勢情報、及びロボット本体10Dの位置・姿勢情報等が挙げられる。ロボット本体10B,10Cの姿勢情報は、関節31,32,33,34,35,36の動作角度情報であってもよいし、先端部18の位置・姿勢情報であってもよい。ロボット本体10Dの位置・姿勢情報は、例えば基部11の位置・姿勢情報と、基部11を基準としたロボット本体10Dの姿勢情報とを含む。
 マシン情報は、ローカルコントローラ400と、マシン本体10との間に発生した制御信号(以下、「リアル制御信号」という。)の情報を含む。リアル制御信号は、マシン本体10の制御のためにローカルコントローラ400で生成される内部信号であってもよいし、ローカルコントローラ400からマシン本体10に出力される出力信号であってもよいし、マシン本体10からローカルコントローラ400に出力されるフィードバック信号であってもよい。内部信号の例としては、マシン本体10の位置・姿勢の指令値等が挙げられる。出力信号の例としては、マシン本体10のアクチュエータへの出力電流値等が挙げられる。フィードバック信号の具体例としては、現実空間におけるマシン本体10の位置・姿勢、速度、力等の検出値が挙げられる。
 情報掲示部315は、複数のマシン5の動作に応じて現実空間の状態情報を更新する。例えば情報掲示部315は、複数のローカルコントローラ400のそれぞれから現実空間におけるマシン本体10のステータス情報を取得し、ステータス情報に基づいてマシン情報を更新する。情報掲示部315は、複数のマシン5のステータス情報に基づいてワーク情報を更に更新してもよい。例えば情報掲示部315は、複数のマシン5のステータス情報に基づいてワークWに対し行われた作業内容を特定し、特定した作業内容に基づいてワーク情報を更新してもよい。情報掲示部315は、複数のマシン5とは別に設けられた環境センサ6の検出結果に更に基づいて環境情報を更新してもよい。
 環境センサ6は、複数のマシン5の作業環境の状態を検出する。環境センサ6の例としては、例えば複数のマシン5の作業環境を撮影するカメラが挙げられる。環境センサ6がカメラである場合、情報掲示部315は、環境センサ6が撮影した画像に対して画像処理を行い、画像処理結果に更に基づいて現実空間の状態情報を更新する。環境センサ6は、レーザ光等により、所定位置におけるワークWの有無を検出するセンサであってもよいし、ワークWのサイズ等を検出するセンサであってもよい。生産装置4は、複数の環境センサ6を備えてもよい。
 情報掲示部315は、処理工程(情報格納部314が生産物ごとに記憶する処理工程)の進捗情報を更に収集し、処理工程に対応付けて情報格納部314に記憶させてもよい。例えば情報掲示部315は、上記ステータス状態に基づいて、処理工程の進捗情報を収集し、情報格納部314に記憶させてもよい。進捗情報は、例えば、処理工程が含む複数のタスクのそれぞれが、未実行、実行中、及び実行済みのいずれであるかを示す。
 進捗情報は、未実行のタスクに対し複数のマシン5のいずれが割り当てられているかを表す予約情報を含んでもよい。未実行のタスクに対し複数のマシン5のいずれかを割り当てることは、複数のマシン5のそれぞれの自律的なタスクの選択により行われてもよいし、上位コントローラ300(例えば後述の工程割当部316)によって行われてもよい。
 情報掲示部315は、予約情報において複数のマシン5のいずれかが割り当てられたタスクに対する他のマシン5の割り当てを禁止するように構成されていてもよい。例えば情報掲示部315は、予約情報において、複数のマシン5のいずれかが割り当てられたタスクに対し、他のマシン5の割り当てがリクエストされた場合に、そのリクエストを拒否してもよい。また、情報掲示部315は、複数のマシン5のいずれかが割り当てられたタスクを、他のマシン5を割り当て得る対象から予め除外してもよい。
 工程割当部316は、進捗情報に基づいて、処理工程における未実行のタスクを複数のマシン5のいずれかに割り当てる。例えば工程割当部316は、複数のマシン5のそれぞれが実行可能な工程の種類と、マシン情報と、進捗情報とに基づいて、複数のマシン5のそれぞれに実行させる工程を特定するアルゴリズムによって、未実行のタスクを複数のマシン5のいずれかに割り当てる。これにより、複数のマシン5のそれぞれに実行させるタスクが自律的に選択される。工程割当部316は、割り当ての結果に基づいて、情報格納部314が記憶する上記予約情報を更新する。
 指令出力部317は、処理工程の進捗情報に基づいて、未実行のタスクの実行指令をローカルコントローラ400に出力する。例えば指令出力部317は、生産物ごとに、次に実行すべき未実行のタスクを特定し、特定したタスクに対し予約情報により割り当てられたマシン5のローカルコントローラ400に、特定したタスクの実行指令を出力する。
 情報格納部314が、複数の生産物にそれぞれ対応する複数の処理工程を記憶している場合、指令出力部317は、複数の処理工程のそれぞれの進捗情報に基づいて、生産物ごとにタスクの実行指令を出力してもよい。この場合、複数の処理工程にそれぞれ対応する複数の実行指令が同一のローカルコントローラ400に出力され得る。例えば、情報格納部314において、第1生産物に対し第1処理工程が割り当てられ、第2生産物に対し第2処理工程が割り当てられている場合、第1処理工程におけるタスクの実行指令と第2処理工程におけるタスクの実行指令とが同じローカルコントローラ400に出力され得る。指令出力部317は、上記同期通信におけるローカルコントローラ400からの要求に応じてタスクの実行指令を出力してもよいし、ローカルコントローラ400からの要求の有無によらずに実行指令を出力してもよい。
 上位コントローラ300は、表示部318を更に有してもよい。表示部318は、情報掲示部315が収集した情報(情報格納部314が記憶する情報)をモニタに表示させる。モニタは、上位コントローラ300自体が有していてもよく、上位コントローラ300と通信可能な他の装置(例えばデータ収集装置100)が有していてもよい。例えば表示部318は、データ収集装置100のユーザインタフェース195(後述)の表示デバイスに、情報掲示部315が収集した情報を表示させてもよい。
 ローカルコントローラ400は、機能ブロックとして、指令バッファ411と、タスクプログラム格納部412と、選択部413と、制御部416と、ステータス出力部417とを有する。指令バッファ411は、上位コントローラ300の指令出力部317が出力した実行指令を記憶する。上述のとおり、複数の処理工程にそれぞれ対応する複数の実行指令が同一のローカルコントローラ400に出力され得るので、指令バッファ411には、同時期に複数の実行指令が記憶され得る。
 タスクプログラム格納部412は、マシン本体10が実行可能な2以上のタスクにおける動作をそれぞれ定める2以上のタスクプログラム420を記憶する。2以上のタスクプログラム420のそれぞれは、動作プログラム421と、条件ヘッダ422とを含む。動作プログラム421は、マシン本体10の動作を表す。例えば動作プログラム421は、マシン本体10に一まとまりの動作を実行させるように時系列に並ぶ複数の動作命令を含む。マシン本体10がロボット本体10B,10C,10Dのいずれかである場合、動作プログラム421における動作命令は、先端部18の目標位置・目標姿勢と、現在位置・現在姿勢から目標位置・目標姿勢までの目標変位速度とを含む。先端部18の目標位置・目標姿勢は、関節31,32,33,34,35,36の目標角度により表されていてもよく、目標変位速度は、関節31,32,33,34,35,36の目標回転速度により表されていてもよい。条件ヘッダ422は、動作プログラム421の実行条件を表す。実行条件は、動作プログラム421の実行タイミング(マシン本体10の動作タイミング)を決定するための条件である。実行条件は、動作プログラム421の実行可否を決定するための実行可否条件と、動作プログラム421の優先度とを含む。優先度は、タスクプログラム格納部412が記憶する複数のタスクプログラム420における優先順位を表す。優先度が、優先順位自体を表す数値である場合、値が小さい程優先度は高くなる。
 実行可否条件の例としては、以下が挙げられる。
例1)マシン本体10の動作範囲内に、マシン本体10の動作の障害物が存在しないこと。
例2)タスクの対象となるワークW(以下、単に「ワークW」という。)が所定位置にあること。
例3)ワークWの搬入先に他のワークWがないこと。
例4)ワークWの搬入先が開放されていること。
 障害物の例としては、他のマシン本体10、他のマシン本体10が保持するワークW、又は人等が挙げられる。ワークWの搬入先の例としては、他のマシン本体10の一例であるNC工作機械が挙げられる。搬入先が開放されていることの具体例としては、NC工作機械の扉が開放されていることが挙げられる。
 選択部413は、タスクプログラム格納部412における複数のタスクのそれぞれの実行条件(条件ヘッダ422)と、情報格納部314が記憶する現実空間の状態とに基づいて、指令バッファ411が記憶する実行指令に対応するタスク(以下、「対応タスク」という。)のいずれかを選択する。例えば選択部413は、対応タスクのそれぞれの実行可否を確認する。例えば選択部413は、1以上の対応タスクのそれぞれの実行可否条件を現実空間の状態情報が満たしているかを確認する。2以上の対応タスクが実行可能である場合、選択部413は、実行可能な2以上の対応タスクのいずれかを優先度に基づいて選択する。例えば選択部413は、優先度が最も高い対応タスクを選択する。
 制御部416は、選択部413により選択された対応タスクを実行するようにマシン本体10を制御する。対応タスクは、現実空間の状態情報と、進捗情報とに基づいて、工程割当部316により自律的に選択されたタスクの実行指令に対応している。また、選択部413による対応タスクの選択は、タスクプログラム格納部412における複数のタスクのそれぞれの実行条件(条件ヘッダ422)と、情報格納部314の現実空間の状態とに基づいて、自律的に行われている。従って、選択部413により選択された対応タスクを実行することは、現実空間の状態情報と、進捗情報とに基づいて、自律的に処理工程の少なくとも一部を実行することの一例であり、工程割当部316により割り当てられた工程を、現実空間の状態情報に基づいて自律的に実行することの一例でもある。
 対応タスクの実行指令は、対応タスクに対し予約情報により割り当てられたマシン5のローカルコントローラ400に出力されている。従って、選択部413により選択された対応タスクを実行することは、予約情報において割り当てられたタスクを実行することの一例でもある。
 制御部416は、マシン本体10の現在位置・現在姿勢から、対応タスクの最初の目標位置・目標姿勢までの動作を、現実空間の状態に基づいて、周辺物体への衝突を回避するように修正するアルゴリズムによって、対応タスクにおける最初の動作を自律的に決定してもよい。
 ステータス出力部417は、マシン本体10の上記ステータス情報を上位コントローラ300に出力する。ステータス情報は、少なくともマシン本体10の位置・姿勢情報を含む。ステータス出力部417は、上記タスクプログラム420の実行が完了するのに応じ、タスクの完了通知をステータス情報に含めて出力してもよい。ステータス出力部417は、上記同期通信における上位コントローラ300からの要求に応じてステータス情報を出力してもよいし、上位コントローラ300からの要求の有無によらずにステータス情報を出力してもよい。
 マシン本体10がロボット本体10B,10C,10Dのいずれかである場合、ローカルコントローラ400は、インタロック部414を更に有してもよい。以下、ローカルコントローラ400が制御するマシン本体10を「対応するマシン本体10」といい、他のマシン5においてローカルコントローラ400が制御するマシン本体10を「他のマシン本体10」という。
 インタロック部414は、他のマシン本体10が実行するタスクの進捗に基づいて、対応するマシン本体10の進入禁止領域を現実空間に設定する。例えばインタロック部414は、予約情報において割り当てられたタスクを他のマシン本体10が実行する際の動作範囲に基づいて、対応するマシン本体10の進入禁止領域を設定する。インタロック部414は、予約情報において割り当てられたタスクを他のマシン本体10が実行する際の動作範囲自体を進入禁止領域としてもよく、当該動作範囲に所定のマージンを加えた範囲を進入禁止領域としてもよい。
 ローカルコントローラ400がインタロック部414を有する場合、上記条件ヘッダ422の実行可否条件は、インタロック部414により設定された進入不可領域と、対応するマシン本体10の動作範囲とが重複していないことを更に含んでいてもよい。この場合、選択部413は、進入不可領域と、対応するマシン本体10の動作範囲とが重複しない対応タスクを選択することとなる。
 ローカルコントローラ400は、パラメータ保持部415を更に有してもよい。パラメータ保持部415は、マシン本体10を制御するための1以上の制御パラメータを記憶する。1以上の制御パラメータの具体例としては、位置制御ゲイン、速度制御ゲイン、電流制御ゲイン等が挙げられる。ローカルコントローラ400がパラメータ保持部415を有する場合、制御部416は、パラメータ保持部415が記憶する1以上の制御パラメータに基づいてマシン本体10を制御する。
(仮想生産装置)
 図5は、仮想処理工程を自律的に実行する仮想生産装置212を例示する模式図である。図5に示す仮想生産装置212は、ロボットに対応する仮想ロボットを含む複数の仮想マシン600と、仮想空間の状態情報を収集する工程割当部516とを有する。仮想ロボットは、工程割当部516が収集した仮想空間の状態情報に基づいて、自律的に仮想処理工程の少なくとも一部を実行する。
 例えば仮想生産装置212は、仮想上位コントローラ500と、複数の仮想マシン600と、空間シミュレータ700とを備える。仮想上位コントローラ500は、上位コントローラ300に対応する。複数の仮想マシン600は、複数のマシン5にそれぞれ対応する。複数の仮想マシン600のそれぞれは、ローカルコントローラ400と同様に構成されている。
 空間シミュレータ700は、複数の仮想マシン600のそれぞれが、ローカルコントローラ400と同様に実行する処理に基づいて、現実空間においてマシン本体10を動作させることなく、動作後のマシン本体10の状態を表す数値データを算出する。空間シミュレータ700が、複数の仮想マシン600のそれぞれの処理に基づいて、動作後のマシン本体10の状態を表す数値データを算出することは、仮想空間においてマシン本体10を動作させる(仮想空間においてマシン本体10の動作をシミュレーションする)ことの一例である。
 仮想上位コントローラ500は、上位コントローラ300と同様に構成されており、機能ブロックとして、タスクデータベース511と、生産指示取得部512と、処理工程選択部513と、情報格納部514と、仮想情報掲示部515と、工程割当部516と、指令出力部517とを有する。タスクデータベース511は、複数種類の生産物にそれぞれ対応する複数種類の処理工程を記憶する。生産指示取得部512は、生産指示装置2から生産指示を取得する。処理工程選択部513は、生産指示取得部512が取得した生産指示と、タスクデータベース511が記憶する複数種類の処理工程とに基づいて、生産物ごとに処理工程を選択し、情報格納部514に記憶させる。
 仮想情報掲示部515は、仮想空間の状態情報を収集して情報格納部514に記憶させる。現実空間の状態情報と同様に、仮想空間の状態情報は、例えば複数の仮想マシン600に関する情報(以下、「仮想マシン情報」という。)と、仮想ワークに関する情報(以下、「仮想ワーク情報」という。)とを含む。仮想ワーク情報の例としては、仮想空間における仮想ワークの位置・姿勢情報が挙げられる。仮想マシン情報の例としては、仮想空間における複数の仮想マシン600の位置・姿勢情報が挙げられる。
 仮想マシン情報は、複数の仮想マシン600と、空間シミュレータ700との間に発生した制御信号(以下、「仮想制御信号」という。)の情報を含む。仮想制御信号は、マシン本体10の制御のために仮想マシン600で生成される内部信号であってもよいし、空間シミュレータ700から仮想マシン600に出力されるフィードバック信号であってもよい。内部信号の例としては、マシン本体10の位置・姿勢の指令値等が挙げられる。フィードバック信号の具体例としては、仮想空間におけるマシン本体10の位置・姿勢、速度、力等の算出結果が挙げられる。
 仮想情報掲示部515は、複数の仮想マシン600の動作に応じて仮想空間の状態情報を更新する。例えば仮想情報掲示部515は、複数の仮想マシン600のそれぞれから仮想空間におけるマシン本体10のステータス情報を取得し、ステータス情報に基づいて仮想マシン情報を更新する。仮想情報掲示部515は、複数の仮想マシン600のステータス情報に基づいて仮想ワーク情報を更に更新してもよい。例えば仮想情報掲示部515は、複数の仮想マシン600のステータス情報に基づいて仮想ワークに対し行われた作業内容を特定し、特定した作業内容に基づいて仮想ワーク情報を更新してもよい。
 仮想情報掲示部515は、仮想処理工程(情報格納部514が生産物ごとに記憶する仮想処理工程)の進捗情報を更に収集し、仮想処理工程に対応付けて情報格納部514に記憶させてもよい。例えば仮想情報掲示部515は、上記ステータス状態に基づいて、仮想処理工程の進捗情報を収集し、情報格納部514に記憶させてもよい。進捗情報は、例えば、仮想処理工程が含む複数のタスクのそれぞれが、未実行、実行中、及び実行済みのいずれであるかを示す。
 処理工程の進捗情報と同様に、仮想処理工程の進捗情報は、未実行のタスクに対し複数の仮想マシン600のいずれが割り当てられているかを表す予約情報を含んでもよい。未実行のタスクに対し複数の仮想マシン600のいずれかを割り当てることは、複数の仮想マシン600のそれぞれの自律的なタスクの選択により行われてもよいし、仮想上位コントローラ500(例えば後述の工程割当部516)によって行われてもよい。
 仮想情報掲示部515は、予約情報において複数の仮想マシン600のいずれかが割り当てられたタスクに対する他の仮想マシン600の割り当てを禁止するように構成されていてもよい。例えば仮想情報掲示部515は、予約情報において、複数の仮想マシン600のいずれかが割り当てられたタスクに対し、他の仮想マシン600の割り当てがリクエストされた場合に、そのリクエストを拒否してもよい。また、仮想情報掲示部515は、複数の仮想マシン600のいずれかが割り当てられたタスクを、他の仮想マシン600を割り当て得る対象から予め除外してもよい。
 工程割当部516は、仮想処理工程の進捗情報に基づいて、仮想処理工程における未実行のタスクを複数の仮想マシン600のいずれかに割り当てる。例えば工程割当部516は、複数の仮想マシン600のそれぞれが実行可能な工程の種類と、仮想マシン情報と、仮想処理工程の進捗情報とに基づいて、複数の仮想マシン600のそれぞれに実行させる工程を特定するアルゴリズムによって、未実行のタスクを複数の仮想マシン600のいずれかに割り当てる。これにより、複数の仮想マシン600のそれぞれに実行させるタスクが自律的に選択される。工程割当部516は、割り当ての結果に基づいて、情報格納部514が記憶する上記予約情報を更新する。
 指令出力部517は、仮想処理工程の進捗情報に基づいて、未実行のタスクの実行指令を仮想マシン600に出力する。例えば指令出力部517は、生産物ごとに、次に実行すべき未実行のタスクを特定し、特定したタスクに対し予約情報により割り当てられた仮想マシン600に、特定したタスクの実行指令を出力する。
 仮想上位コントローラ500は、表示部518を更に有してもよい。表示部518は、仮想情報掲示部515が収集した情報(情報格納部514が記憶する情報)をモニタに表示させる。モニタは、仮想上位コントローラ500を有するセルシミュレータ200自体が有していてもよく、セルシミュレータ200と通信可能な他の装置が有していてもよい。例えば表示部518は、セルシミュレータ200のユーザインタフェース295(後述)の表示デバイスに、仮想情報掲示部515が収集した情報を表示させてもよい。
 仮想マシン600は、機能ブロックとして、指令バッファ611と、タスクプログラム格納部612と、選択部613と、制御部616と、ステータス出力部617とを有する。指令バッファ611は、仮想上位コントローラ500の指令出力部517が出力した実行指令を記憶する。タスクプログラム格納部612は、タスクプログラム格納部412と同様に、2以上のタスクプログラム420を記憶する。
 選択部613は、タスクプログラム格納部612における複数のタスクのそれぞれの実行条件(条件ヘッダ422)と、情報格納部514が記憶する仮想空間の状態とに基づいて、指令バッファ611が記憶する実行指令に対応するタスク(以下、「対応タスク」という。)のいずれかを選択する。例えば選択部613は、対応タスクのそれぞれの実行可否を確認する。例えば選択部613は、1以上の対応タスクのそれぞれの実行可否条件を仮想空間の状態情報が満たしているかを確認する。2以上の対応タスクが実行可能である場合、選択部613は、実行可能な2以上の対応タスクのいずれかを優先度に基づいて選択する。例えば選択部613は、優先度が最も高い対応タスクを選択する。
 制御部616は、選択部613により選択された対応タスクを実行するようにマシン本体10を制御するための制御信号を空間シミュレータ700に出力する。空間シミュレータ700は、制御信号と、モデル記憶部211が記憶するモデルとに基づいて、仮想空間においてマシン本体10に対応タスクを実行させる。例えば空間シミュレータ700は、マシン本体10を実際に動作させることなく、対応タスクの実行中におけるマシン本体10の位置・姿勢の推移を算出する。
 ステータス出力部617は、仮想空間におけるマシン本体10の上記ステータス情報を仮想上位コントローラ500に出力する。ステータス情報は、少なくとも仮想空間におけるマシン本体10の位置・姿勢情報を含む。ステータス出力部617は、上記タスクプログラム420の実行が完了するのに応じ、タスクの完了通知をステータス情報に含めて出力してもよい。
 ローカルコントローラ400と同様に、仮想マシン600は、インタロック部614を更に有してもよい。インタロック部414と同様に、インタロック部614は、他のマシン本体10が実行するタスクの進捗に基づいて、対応するマシン本体10の進入禁止領域を仮想空間に設定する。仮想マシン600がインタロック部614を有する場合、選択部613は、進入不可領域と、対応するマシン本体10の動作範囲とが重複しない対応タスクを選択することとなる。
 仮想マシン600は、パラメータ保持部615を更に有してもよい。パラメータ保持部615は、仮想空間においてマシン本体10を動作させるための1以上のシミュレーションパラメータを記憶する。1以上のシミュレーションパラメータの例としては、位置制御ゲイン、速度制御ゲイン、電流制御ゲイン等が挙げられる。マシン本体10の動作が扉の開閉等である場合に、パラメータ保持部615は、制御信号の出力からマシン本体10の動作完了までの待機時間をシミュレーションパラメータとして記憶していてもよい。仮想マシン600がパラメータ保持部615を有する場合、制御部616は、パラメータ保持部615が記憶する1以上の制御パラメータに基づいてマシン本体10を制御する。
 以上に例示したように、上位コントローラ300からの生産指示に応じた処理工程を複数のマシン5にどのように割り当て、割り当てた処理工程を複数のマシン5にいかなるタイミングで実行させるかを生産装置4が自律的に判断し、判断結果に基づき自律的に動作するシステムによれば、生産システム1の柔軟な運用が可能となる。このように柔軟な運用下においても、生産装置4に対する生産指示と同じ生産指示に基づき、生産装置4のアルゴリズムと同じアルゴリズムで仮想処理工程を実行することで、より信頼性の高い比較基準を生成し、生産装置4の自律的な動作をリアルタイムに検証することができる。
 複数のマシン5のそれぞれに実行させるタスクの選択が自律的に実行される場合、処理工程の開始時点を基準とした現実空間の状態の遷移タイミングと、仮想処理工程の開始時点を基準とした仮想空間の状態の遷移タイミングとの乖離だけでなく、複数のマシン5のそれぞれが実行するタスクと、複数の仮想マシン600のそれぞれが実行するタスクとにも違いが生じる可能性がある。そこで、比較部216は、複数のマシン5のそれぞれが実行するタスクと、複数の仮想マシン600のそれぞれが実行するタスクとを更に比較してもよい。
(シミュレータの変形例)
 図6に示すように、セルシミュレータ200は、サービス部221を更に有してもよい。サービス部221は、生産装置4からの要求に応じて、仮想生産装置212に特定のシミュレーションを実行させ、特定のシミュレーションの結果に基づく応答情報を生産装置4に返す。特定のシミュレーションは、生産装置4からの要求により特定されるシミュレーションである。特定のシミュレーションの例としては、生産装置4が異常停止した場合に、停止した動作を再開させるための復帰動作を生成するためのシミュレーションが挙げられる。
 例えばサービス部221は、生産装置4からの要求に応じて、仮想空間の状態を現実空間の状態に合わせ、復帰動作を仮生成する。その後、サービス部221は、仮想空間において仮想生産装置212に復帰動作を実行させることと、仮想空間における復帰動作の結果に基づき復帰動作を修正することとを、復帰動作の結果が所定条件を満たすまで繰り返すことで、復帰動作を生成し、生成した復帰動作を応答情報として生産装置4に返す。所定条件の例としては、復帰動作による物体同士の衝突が生じないこと等が挙げられる。
 特定のシミュレーションの他の例としては、対応タスクが上記実行可否条件を満たさない場合に、実行可否条件を満たすように対応タスクを修正するためのシミュレーションが挙げられる。
 生産装置4に対する生産指示に基づく仮想処理工程を仮想生産装置212に実行させるシミュレータによれば、仮想セルの状態が、セルの状態と共に遷移する。このため、生産装置からの要求に応じた特定のシミュレーションを、セルの状態と共に遷移した仮想セルの状態に基づき速やかに実行し、応答情報を短い待機時間で生産装置に返すことができる。
 セルシミュレータ200は、シミュレータ修正部222を更に有してもよい。シミュレータ修正部222は、比較部216による比較結果に基づいて、処理工程の実行結果と仮想処理工程の実行結果との乖離が減少するように、仮想生産装置212に仮想処理工程を実行させるためのシミュレーションパラメータを変更する。例えば、上述したように、制御信号の出力からマシン本体10の動作完了までの待機時間がシミュレーションパラメータとして記憶されており、記憶された待機時間に起因して処理工程の実行結果と仮想処理工程の実行結果との乖離が生じている場合に、シミュレータ修正部222は、乖離が減少するように、待機時間を変更する。
 セルシミュレータ200は、要因特定部223を更に有してもよい。比較部216による比較結果が、ロボットによる処理工程の少なくとも一部の実行結果と、仮想ロボットによる仮想処理工程の少なくとも一部の実行結果との乖離を含んでいる場合に、乖離の要因となるロボット以外の仮想マシンを特定する。要因特定部223により、乖離の要因となる仮想マシンが特定された場合、シミュレータ修正部222は、乖離の要因となる仮想マシンに仮想処理工程の少なくとも一部を実行させるためのシミュレーションパラメータを修正する。
 例えば要因特定部223は、ロボットによるタスクの実行開始時間と、仮想ロボットによるタスクの開始時間とが、工作機械における扉開閉の待機時間の差に起因して乖離している場合に、乖離の要因となる仮想マシンとして工作機械を特定する。シミュレータ修正部222は、乖離の要因となる工作機械のシミュレーションパラメータとして記憶されている扉開閉の待機時間を修正する。
 図7に示すように、上位コントローラ300は、パラメータ変更部321を更に有してもよい。パラメータ変更部321は、比較部216による比較結果に基づいて、処理工程の実行結果と仮想処理工程の実行結果との乖離が減少するように、生産装置4に処理工程を実行させるための制御パラメータを変更する。例えばパラメータ変更部321は、処理工程の実行結果と仮想処理工程の実行結果との乖離が減少するように、パラメータ保持部415の制御パラメータを変更する(図4参照)。パラメータ変更部321は、上位コントローラ300が有していてもよく、ローカルコントローラ400が有していてもよい。
 生産指示装置2は、計画変更部811を更に有してもよい。計画変更部811は、比較部216による比較結果に基づいて、生産計画を変更する。例えば計画変更部811は、1のセル3において、処理工程の実行結果と仮想処理工程の実行結果との乖離が所定レベルを超えた場合に、当該セル3に割り当てていた生産計画を、他のセル3において実行させるように生産計画を変更する。
 図8に示すように、セルシミュレータ200は、API224と、指令変換部225とを更に有してもよい。API224は、シミュレーション指示に基づいて仮想生産装置を動作させるAPI(Application Programming Interface)である。指令変換部225は、生産指示を受け取ってシミュレーション指示に変換し、API224に渡す。生産指示とは異なる形式の指示に基づき動作するシミュレータを有効活用して、生産装置4に対する生産指示と同じ生産指示に基づき仮想生産装置212に仮想処理工程を実行させるセルシミュレータ200を容易に構築することができる。
(ハードウェア構成)
 図9は、データ収集装置100、セルシミュレータ200、上位コントローラ300、及びローカルコントローラ400のハードウェア構成を例示するブロック図である。図9に示すように、ローカルコントローラ400は、回路490を有する。回路490は、プロセッサ491と、メモリ492と、ストレージ493と、ドライバ回路494と、通信ポート495とを有する。ストレージ493は、フラッシュメモリ、又はハードディスク等の1以上の不揮発性メモリデバイスにより構成されている。ストレージ493は、上述した機能ブロックをローカルコントローラ400に構成させるためのプログラムを記憶している。
 メモリ492は、例えばランダムアクセスメモリ等の1以上の揮発性メモリデバイスにより構成されている。メモリ492は、ストレージ493からロードされたプログラムを一時的に記憶する。プロセッサ491は、CPU(Central Processing Unit)又はGPU(Graphics Processing Unit)等の1以上の演算デバイスにより構成されている。プロセッサ491は、メモリ492にロードされたプログラムを実行することで、上述した各機能ブロックをローカルコントローラ400に構成させる。プロセッサ491による演算結果は一時的にメモリ492に格納される。
 ドライバ回路494は、プロセッサ491からの要求に応じてマシン本体10を動作させる。通信ポート495は、プロセッサ491からの要求に応じ、制御用の通信ネットワークNW1を介して上位コントローラ300と通信する。
 上位コントローラ300は、回路390を有する。回路390は、プロセッサ391と、メモリ392と、ストレージ393と、入出力ポート394と、通信ポート395と、通信ポート396とを有する。ストレージ393は、フラッシュメモリ、又はハードディスク等の1以上の不揮発性メモリデバイスにより構成されている。ストレージ393は、上述した機能ブロックを上位コントローラ300に構成させるためのプログラムを記憶している。
 メモリ392は、例えばランダムアクセスメモリ等の1以上の揮発性メモリデバイスにより構成されている。メモリ392は、ストレージ393からロードされたプログラムを一時的に記憶する。プロセッサ391は、CPU又はGPU等の1以上の演算デバイスにより構成されている。プロセッサ391は、メモリ392にロードされたプログラムを実行することで、上述した各機能ブロックを上位コントローラ300に構成させる。プロセッサ391による演算結果は一時的にメモリ392に格納される。
 入出力ポート394は、プロセッサ391からの要求に応じて、環境センサ6との間で情報の受け渡しを行う。通信ポート395は、プロセッサ391からの要求に応じ、通信ネットワークNW1を介してローカルコントローラ400と通信する。通信ポート396は、プロセッサ391からの要求に応じ、通信ネットワークNW2を介してデータ収集装置100、セルシミュレータ200、及び生産指示装置2と通信する。通信ネットワークNW2は、通信ネットワークNW1と別のネットワークであってもよく、通信ネットワークNW1と同一のネットワークであってもよい。
 データ収集装置100は、回路190を有する。回路190は、プロセッサ191と、メモリ192と、ストレージ193と、通信ポート194と、ユーザインタフェース195とを有する。ストレージ193は、フラッシュメモリ、又はハードディスク等の1以上の不揮発性メモリデバイスにより構成されている。ストレージ193は、上述した機能ブロックをデータ収集装置100に構成させるためのプログラムを記憶している。
 メモリ192は、例えばランダムアクセスメモリ等の1以上の揮発性メモリデバイスにより構成されている。メモリ192は、ストレージ193からロードされたプログラムを一時的に記憶する。プロセッサ191は、CPU又はGPU等の1以上の演算デバイスにより構成されている。プロセッサ191は、メモリ192にロードされたプログラムを実行することで、上述した各機能ブロックをデータ収集装置100に構成させる。プロセッサ191による演算結果は一時的にメモリ192に格納される。
 通信ポート194は、プロセッサ191からの要求に応じ、通信ネットワークNW2を介してセルシミュレータ200及び上位コントローラ300と通信する。ユーザインタフェース195は、プロセッサ191からの要求に応じ、オペレータとの間で情報の入出力を行う。例えばユーザインタフェース195は、液晶モニタ又は有機EL(Electro-Luminescence)モニタ等の表示デバイスと、キーボード又はマウスなどの入力デバイスとを有する。入力デバイスは、タッチパネルとして表示デバイスと一体化されていてもよい。
 セルシミュレータ200は、回路290を有する。回路290は、プロセッサ291と、メモリ292と、ストレージ293と、通信ポート294と、ユーザインタフェース295とを有する。ストレージ293は、フラッシュメモリ、又はハードディスク等の1以上の不揮発性メモリデバイスにより構成されている。ストレージ293は、上述した機能ブロックをセルシミュレータ200に構成させるためのプログラムを記憶している。
 メモリ292は、例えばランダムアクセスメモリ等の1以上の揮発性メモリデバイスにより構成されている。メモリ292は、ストレージ293からロードされたプログラムを一時的に記憶する。プロセッサ291は、CPU又はGPU等の1以上の演算デバイスにより構成されている。プロセッサ291は、メモリ292にロードされたプログラムを実行することで、上述した各機能ブロックをセルシミュレータ200に構成させる。プロセッサ291による演算結果は一時的にメモリ292に格納される。
 通信ポート294は、プロセッサ291からの要求に応じ、通信ネットワークNW2を介してデータ収集装置100、上位コントローラ300、及び生産指示装置2と通信する。ユーザインタフェース295は、プロセッサ291からの要求に応じ、オペレータとの間で情報の入出力を行う。例えばユーザインタフェース295は、液晶モニタ又は有機EL(Electro-Luminescence)モニタ等の表示デバイスと、キーボード又はマウスなどの入力デバイスとを有する。入力デバイスは、タッチパネルとして表示デバイスと一体化されていてもよい。
 以上のハードウェア構成はあくまで一例であり、適宜変更可能である。例えばセルシミュレータ200がデータ収集装置100に組み込まれていてもよい。また、セルシミュレータ200及びデータ収集装置100が上位コントローラ300に組み込まれていてもよい。
〔生産手順〕
 生産方法の一例として、生産システム1による処理工程及び仮想処理工程の実行手順を例示する。この手順は、生産計画に基づき送信された生産指示に基づいて、ワークに対し処理工程を現実空間で実行して生産物を生産することと、生産指示に基づいて、生産装置が行う処理工程に対応した仮想処理工程を、仮想空間で仮想生産装置に実行させることと、処理工程の実行結果と、仮想処理工程の実行結果とを比較することと、を含む。
 例えば図10に示すように、生産指示装置2はステップS11を実行する。ステップS11において、生産指示装置2は、セル単位の生産計画に基づく生産指示を上位コントローラ300及びセルシミュレータ200に送信する。
 生産指示装置2から送信された生産指示の受信に応じて、上位コントローラ300は、ステップS21において処理工程を実行する。上位コントローラ300による処理工程の実行と並行して、データ収集装置100はステップS31を実行する。ステップS31では、履歴取得部111が、処理工程の実行履歴を収集してデータベース112に記憶させる。
 生産指示装置2から送信された生産指示の受信に応じて、セルシミュレータ200はステップS41,S42を実行する。ステップS41では、状態整合部213が、現実空間の状態情報をデータベース112から取得する。ステップS42では、状態整合部213が、ステップS41で取得した情報に基づいて、仮想空間の状態を現実空間の状態に合わせる。
 次に、セルシミュレータ200はステップS43を実行する。ステップS43では、仮想空間において仮想生産装置212が仮想処理工程を実行する。また、ステップS43では、仮想処理工程の実行と並行して、仮想データ収集部214が仮想処理工程の実行履歴を収集して仮想データベース215に記憶させる。
 次に、セルシミュレータ200はステップS44,S45を実行する。ステップS44では、比較部216が、処理工程の実行結果として、ステップS31において履歴取得部111が収集した処理工程の実行履歴をデータベース112から取得する。ステップS45では、比較部216が、処理工程の実行結果と、仮想処理工程の実行結果とを比較する。例えば比較部216は、ステップS44で取得した処理工程の実行履歴と、ステップS43において仮想データ収集部214が収集して仮想データベース215に記憶させた仮想処理工程の実行履歴とを比較する。ステップS45においては、比較部216による比較結果に基づいて、異常検出部217が生産装置4の異常を検出してもよい。
 比較部216による比較結果に基づいて、セルシミュレータ200はステップS46を更に実行してもよい。ステップS46では、シミュレータ修正部222が、処理工程の実行結果と仮想処理工程の実行結果との乖離が減少するように、仮想生産装置212に仮想処理工程を実行させるためのシミュレーションパラメータを変更する。
 比較部216による比較結果に基づいて、上位コントローラ300はステップS22を更に実行してもよい。ステップS22では、パラメータ変更部321が、処理工程の実行結果と仮想処理工程の実行結果との乖離が減少するように、生産装置4に処理工程を実行させるための制御パラメータを変更する。
 比較部216による比較結果に基づいて、生産指示装置2はステップS12を更に実行してもよい。ステップS12では、計画変更部811が、比較部216による比較結果に基づいて、生産計画を変更する。
 図11は、上記処理工程において、上位コントローラ300が実行する処理を例示するフローチャートである。図11に示すように、上位コントローラ300は、まずステップS211,S212を実行する。ステップS211では、生産指示取得部312が、生産指示の取得を待機する。ステップS212では、生産指示取得部312が取得した生産指示と、処理工程データベース311が記憶する複数種類の処理工程とに基づいて、処理工程選択部313が生産物ごとに処理工程を選択する。
 次に、上位コントローラ300はステップS213,S214を実行する。ステップS213では、工程割当部316が、処理工程の進捗情報に基づいて、処理工程における未実行のタスクを複数のマシン5のいずれかに割り当てる。ステップS214では、指令出力部317が、処理工程の進捗情報に基づいて、未実行のタスクの実行指令をローカルコントローラ400に出力する。
 次に、上位コントローラ300はステップS215,S216を実行する。ステップS215では、情報掲示部315が、現実空間の状態情報と、処理工程の進捗情報とを収集して情報格納部314に記憶させる。ステップS216では、情報格納部314が記憶する情報を表示部318がモニタに表示させる。
 次に、上位コントローラ300はステップS217を実行する。ステップS217では、処理工程選択部313が生産物ごとに選択した処理工程が完了したか否かを指令出力部317が確認する。ステップS217において、処理工程の少なくとも一部が未実行であると判定した場合、上位コントローラ300は処理をステップS213に戻す。以後、生産物ごとの処理工程が完了するまでは、実行指令の出力と、情報の更新とが繰り返される。ステップS217において、処理工程が完了したと判定した場合、上位コントローラ300は処理を終了する。
 図12は、上記処理工程において、ローカルコントローラ400が実行する処理を例示するフローチャートである。図12に示すように、ローカルコントローラ400は、まずステップS221を実行する。ステップS221では、選択部413が、指令バッファ411への実行指令の格納を待機する。
 次に、ローカルコントローラ400は、ステップS222,S223を実行する。ステップS222では、インタロック部414が、他のマシン本体10が実行するタスクの進捗に基づいて、対応するマシン本体10の進入禁止領域を現実空間に設定する。ステップS223では、選択部413が、タスクプログラム格納部412における複数のタスクのそれぞれの実行条件(条件ヘッダ422)と、情報格納部314が記憶する現実空間の状態とに基づいて、指令バッファ411が記憶する実行指令に対応するタスク(上記対応タスク)のいずれかが実行可であるか否かを確認する。ステップS223において、実行可の対応タスクはないと判定した場合、ローカルコントローラ400は処理をステップS221に戻す。
 ステップS223において、実行可の対応タスクがあると判定した場合、ローカルコントローラ400はステップS224を実行する。ステップS224では、選択部413が実行可の対応タスクを選択する。2以上の対応タスクが実行可能である場合、選択部413は、優先度が最も高い対応タスクを選択する。
 次に、ローカルコントローラ400はステップS225,S226を実行する。ステップS225では、制御部416が、選択部413により選択された対応タスクを実行するようにマシン本体10を制御することを開始する。ステップS226では、ステータス出力部417が、マシン本体10の上記ステータス情報を上位コントローラ300に送信する。
 次に、ローカルコントローラ400はステップS227を実行する。ステップS227では、対応タスクの実行が完了したか否かをステータス出力部417が確認する。対応タスクの実行は完了していないと判定した場合、ローカルコントローラ400は処理をステップS226に戻す。以後、対応タスクの実行が完了するまでは、マシン本体10の上記ステータス情報を上位コントローラ300に送信することが繰り返される。
 ステップS227において、対応タスクの実行が完了したと判定した場合、ステータス出力部417はステップS228を実行する。ステップS228では、ステータス出力部417が、対応タスクの完了通知をステータス情報に含めて上位コントローラ300に送信する。その後、ローカルコントローラ400は処理をステップS221に戻す。ローカルコントローラ400は以上の処理を所定の制御周期で繰り返し実行する。
 図13は、上記仮想処理工程において、仮想上位コントローラ500が実行する処理を例示するフローチャートである。図13に示すように、仮想上位コントローラ500は、まずステップS411,S412を実行する。ステップS411では、生産指示取得部512が、生産指示の取得を待機する。ステップS412では、生産指示取得部512が取得した生産指示と、タスクデータベース511が記憶する複数種類の処理工程とに基づいて、処理工程選択部513が生産物ごとに仮想処理工程を選択する。
 次に、仮想上位コントローラ500はステップS413,S414を実行する。ステップS413では、工程割当部516が、処理工程の進捗情報に基づいて、処理工程における未実行のタスクを複数の仮想マシン600のいずれかに割り当てる。ステップS414では、指令出力部517が、処理工程の進捗情報に基づいて、未実行のタスクの実行指令を仮想マシン600に出力する。
 次に、仮想上位コントローラ500はステップS415,S416を実行する。ステップS415では、仮想情報掲示部515が、仮想空間の状態情報と、仮想処理工程の進捗情報とを収集して情報格納部514に記憶させる。ステップS416では、情報格納部514が記憶する情報を表示部518がモニタに表示させる。
 次に、仮想上位コントローラ500はステップS417を実行する。ステップS417では、処理工程選択部513が生産物ごとに選択した仮想処理工程が完了したか否かを指令出力部517が確認する。ステップS417において、仮想処理工程の少なくとも一部が未実行であると判定した場合、仮想上位コントローラ500は処理をステップS413に戻す。以後、生産物ごとの仮想処理工程が完了するまでは、実行指令の出力と、情報の更新とが繰り返される。ステップS417において、仮想処理工程が完了したと判定した場合、仮想上位コントローラ500は処理を終了する。
 図14は、上記仮想処理工程において、仮想マシン600が実行する処理を例示するフローチャートである。図14に示すように、仮想マシン600は、まずステップS421を実行する。ステップS421では、選択部613が、指令バッファ611への実行指令の格納を待機する。
 次に、仮想マシン600は、ステップS422,S423を実行する。ステップS422では、インタロック部614が、他のマシン本体10が実行するタスクの進捗に基づいて、対応するマシン本体10の進入禁止領域を仮想空間に設定する。ステップS423では、選択部613が、タスクプログラム格納部612における複数のタスクのそれぞれの実行条件(条件ヘッダ422)と、インタロック部614が記憶する仮想空間の状態とに基づいて、指令バッファ611が記憶する実行指令に対応するタスク(上記対応タスク)のいずれかが実行可であるか否かを確認する。ステップS423において、実行可の対応タスクはないと判定した場合、仮想マシン600は処理をステップS421に戻す。
 ステップS423において、実行可の対応タスクがあると判定した場合、仮想マシン600はステップS424を実行する。ステップS424では、選択部613が実行可の対応タスクを選択する。2以上の対応タスクが実行可能である場合、選択部613は、優先度が最も高い対応タスクを選択する。
 次に、仮想マシン600はステップS425,S426を実行する。ステップS425では、制御部616が、選択部613により選択された対応タスクをマシン本体10に仮想空間で実行させることを開始する。ステップS426では、ステータス出力部617が、仮想空間におけるマシン本体10の上記ステータス情報を仮想上位コントローラ500に送信する。
 次に、仮想マシン600はステップS427を実行する。ステップS427では、対応タスクの実行が完了したか否かをステータス出力部617が確認する。対応タスクの実行は完了していないと判定した場合、仮想マシン600は処理をステップS426に戻す。以後、対応タスクの実行が完了するまでは、仮想空間におけるマシン本体10の上記ステータス情報を仮想上位コントローラ500に送信することが繰り返される。
 ステップS427において、対応タスクの実行が完了したと判定した場合、ステータス出力部617はステップS428を実行する。ステップS428では、ステータス出力部617が、対応タスクの完了通知をステータス情報に含めて仮想上位コントローラ500に送信する。その後、仮想マシン600は処理をステップS421に戻す。仮想マシン600は以上の処理を繰り返し実行する。
 図15は、生産システム1による計画外の処理手順を例示するフローチャートである。図15に示すように、上位コントローラ300は、まずステップS231を実行する。ステップS231において、上位コントローラ300は、計画外の処理が必要となるのを待機する。計画外の処理の例としては、上述した復帰動作等が挙げられる。例えば上位コントローラ300は、異常の発生により複数のマシン5の動作を停止させた場合に、復帰動作が必要であると判定する。
 次に、上位コントローラ300はステップS232を実行する。ステップS232では、上位コントローラ300が、計画外の処理を実行するためのサービスをセルシミュレータ200に要求する。例えば、上位コントローラ300は、複数のマシン5の少なくともいずれかに実行させるべき計画外の処理の生成をセルシミュレータ200に要求する。
 上位コントローラ300からのサービスの要求に応じ、セルシミュレータ200はステップS431,S432を実行する。ステップS431では、状態整合部213が、現実空間の状態情報をデータベース112から取得する。ステップS432では、状態整合部213が、ステップS41で取得した情報に基づいて、仮想空間の状態を現実空間の状態に合わせる。
 次に、セルシミュレータ200はステップS433,S434を実行する。ステップS433では、サービス部221が、仮想生産装置212に上記特定のシミュレーションを実行させ、特定のシミュレーションの結果に基づいて応答情報を生成するサービス処理を実行する。ステップS434では、サービス部221が、サービス処理の結果を応答情報として上位コントローラ300に送信する。
 サービス結果の受信に応じて、上位コントローラ300はステップS233を実行する。ステップS233では、応答情報に基づいて、上位コントローラ300が複数のマシン5の少なくともいずれかに計画外の処理を実行させる。以上で生産システム1による計画外の処理手順が完了する。
 図16は、ステップS221におけるサービス処理の手順を例示するフローチャートである。図16に示すように、セルシミュレータ200は、まずステップS451,S452を実行する。ステップS451では、サービス部221が、計画外の処理を仮生成する。ステップS452では、サービス部221が、仮想空間において計画外の処理を仮想生産装置212に実行させる。
 次に、セルシミュレータ200はステップS453を実行する。ステップS453では、仮想空間における仮想生産装置212の動作結果が所定条件を満たすか否かを確認する。ステップS453において、仮想空間における仮想生産装置212の動作結果が所定条件を満たさないと判定した場合、セルシミュレータ200はステップS454を実行する。ステップS454では、仮想空間における仮想生産装置212の動作結果に基づいて、計画外の処理をサービス部221が修正する。その後、セルシミュレータ200は処理をステップS452に戻す。
 以後、仮想空間における仮想生産装置212の動作結果が所定条件を満たすまでは、計画外の処理の修正と、仮想空間における仮想生産装置212の動作とが繰り返される。ステップS453において、仮想空間における仮想生産装置212の動作結果が所定条件を満たすと判定した場合、セルシミュレータ200はサービス処理を完了する。
〔まとめ〕
 以上に例示した実施形態は、以下の構成を含む。
(1) 生産計画に基づき送信された生産指示に基づいて、ワークに対し処理工程を現実空間で実行して生産物を生産する生産装置4と、生産指示に基づいて、生産装置4が行う処理工程に対応した仮想処理工程を、仮想空間で実行する仮想生産装置212を有するシミュレータ200と、処理工程の実行結果と、仮想処理工程の実行結果とを比較する比較部216と、を備える生産システム1。
 生産装置4に対する生産指示と同じ生産指示に基づいて、仮想処理工程を仮想空間で仮想生産装置212に実行させ、生産装置4が処理工程を実行する状況に応じた仮想処理工程の実行結果を比較基準として生成し、処理工程の実行結果を比較基準との比較に基づき監視することができる。
(2) シミュレータ200は、処理工程の実行を開始する際における現実空間の状態に、仮想空間の状態を合わせる状態整合部213を更に有し、仮想生産装置212は、現実空間の状態に合わせられた仮想空間の状態に基づいて仮想処理工程を実行する、(1)記載の生産システム1。
 
 生産指示に応じた処理工程が実行される直前の現実空間の状態に仮想空間の状態を合わせた上で、仮想生産装置212に仮想処理工程を実行させることで、より信頼性の高い比較基準を生成することができる。
(3) 生産装置4から、処理工程の実行履歴を収集してデータベース112に記憶させる履歴取得部111を更に有し、状態整合部213は、データベース112が記憶する情報に基づいて仮想空間の状態を現実空間の状態に合わせる、(2)記載の生産システム1。
 生産装置4が処理工程の実行履歴をデータベース112に記憶させ、データベース112が記憶する情報に基づいて仮想セルの状態をセルの状態に合わせるアーキテクチャによって、生産指示に応じた処理工程が実行される直前の現実空間の状態に仮想空間の状態を合わせた上で、仮想生産装置212に仮想処理工程を実行させるシステムを容易に構築することができる。
(4) 生産装置4は、生産指示と、現実空間の状態とに基づいて、所定のアルゴリズムで自律的に処理工程を実行し、仮想生産装置212は、生産指示と、仮想空間の状態とに基づいて、アルゴリズムで自律的に仮想処理工程を実行する、(1)~(3)のいずれか記載の生産システム1。
 生産装置4に対する生産指示と同じ生産指示に基づき、生産装置4のアルゴリズムと同じアルゴリズムで仮想処理工程を実行することで、より信頼性の高い比較基準を生成することができる。
(5) 生産装置4は、ロボット5B,5C,5Dを含む複数のマシン5と、現実空間の状態情報を収集する情報掲示部315と、を有し、ロボット5B,5C,5Dは、情報掲示部315が収集した現実空間の状態情報に基づいて、自律的に処理工程の少なくとも一部を実行する、(4)記載の生産システム1。
 生産指示とセルの状態情報とに基づいてロボット5B,5C,5Dに自律的な動作を行わせる場合、比較対象を生成するために仮想生産装置212に実行させる仮想処理工程の特定が更に困難である。このため、生産指示に基づくシミュレーションにより生成された比較対象との比較が更に有益である。
(6) 情報掲示部315は、処理工程の進捗情報を更に収集し、ロボット5B,5C,5Dは、現実空間の状態情報と、進捗情報とに基づいて、自律的に処理工程の少なくとも一部を実行する、(5)記載の生産システム1。
 生産指示とセルの状態情報とに加えて、進捗情報に更に基づいてロボット5B,5C,5Dに自律的な動作を行わせる場合、比較対象を生成するために仮想生産装置212に実行させる仮想処理工程の特定が更に困難である。このため、生産指示に基づくシミュレーションにより生成された比較対象との比較が更に有益である。
(7) 進捗情報に基づいて、処理工程における未実行の工程を複数のマシン5のいずれかに割り当てる工程割当部316を更に備え、ロボット5B,5C,5Dは、工程割当部316により割り当てられた工程を、現実空間の状態情報に基づいて自律的に実行する、(6)記載の生産システム1。
 進捗情報に基づく工程の割り当てが複数のマシン5に対して工程割当部316により自律的に実行される場合、比較対象を生成するために仮想生産装置212に実行させる仮想処理工程の特定が更に困難である。このため、生産指示に基づくシミュレーションにより生成された比較対象との比較が更に有益である。
(8) ロボット5B,5C,5Dは、複数のマシン5のうちロボット5B,5C,5D以外のいずれかが実行する工程の進捗に基づいて、ロボット5B,5C,5Dの進入禁止領域を設定するインタロック部414を有する、(6)又は(7)記載の生産システム1。
 ロボット5B,5C,5D以外のマシン5が実行する工程の進捗に基づいて、ロボット5B,5C,5Dの進入禁止領域が動的に生成されるので、あらゆるシチュエーションを考慮してロボット5B,5C,5Dの進入禁止領域を予め設定しておく必要がない。このため、生産システム1を容易に構築することができる。
進入禁止領域の設定が更に自律的に行われる場合、比較対象を生成するために仮想生産装置212に実行させる仮想処理工程の特定が更に困難である。このため、生産指示に基づくシミュレーションにより生成された比較対象との比較が更に有益である。
(9) 進捗情報は、未実行の工程に対し複数のマシン5のいずれが割り当てられているかを表す予約情報を含み、情報掲示部315は、予約情報において複数のマシン5のいずれかが割り当てられた工程に対する他のマシン5の割り当てを禁止し、複数のマシン5のそれぞれは、予約情報において割り当てられた工程を実行する、(9)記載の生産システム1。
 予約情報に基づくことで、進入禁止領域の設定をよりタイムリーに実行することができる。また、予約情報に基づくことで、複数のマシン5のそれぞれの自律的な動作をよりタイムリーに実行することができる。
(10) 情報掲示部315が収集した情報をモニタに表示させる表示部318を更に有する、(5)~(9)のいずれか記載の生産システム1。
 自律的に行われているロボット5B,5C,5Dの動作がいかなる状態に基づいているのかをオペレータに容易に把握させることができる。
(11) 仮想生産装置212は、ロボット5B,5C,5Dに対応する仮想ロボットを含む複数の仮想マシン600と、仮想空間の状態情報を収集する仮想情報掲示部515と、を有し、仮想ロボットは、仮想情報掲示部515が収集した仮想空間の状態情報に基づいて、自律的に仮想処理工程の少なくとも一部を実行する、(5)~(10)のいずれか記載の生産システム1。
 仮想生産装置212の構成を生産装置4の構成に合わせることで、より信頼性の高い比較対象を生成することができる。
(12) 比較部216による比較結果が、ロボット5B,5C,5Dによる処理工程の少なくとも一部の実行結果と、仮想ロボットによる仮想処理工程の少なくとも一部の実行結果との乖離を含んでいる場合に、乖離の要因となるロボット5B,5C,5D以外の仮想マシン600を特定する要因特定部223と、乖離の要因となる仮想マシン600に仮想処理工程の少なくとも一部を実行させるためのシミュレーションパラメータを修正するシミュレータ修正部222と、を更に備える、(11)記載の生産システム1。
 シミュレーションにより生成される比較対象の信頼性を更に向上させることができる。
(13) 比較部216は、処理工程の進捗に応じた現実空間の状態の遷移タイミングと、仮想処理工程の進捗に応じた仮想空間の状態の遷移タイミングとを比較する、(2)~(12)のいずれか記載の生産システム1。
 処理工程の実行結果と、仮想処理工程の実行結果との比較結果の活用の容易性を向上させることができる。
(14) シミュレータ200は、生産装置4からの要求に応じて、仮想生産装置212に特定のシミュレーションを実行させ、特定のシミュレーションの結果に基づく応答情報を生産装置4に返すサービス部221を更に有する、(1)~(13)のいずれか記載の生産システム1。
 生産装置4に対する生産指示に基づく仮想処理工程を仮想生産装置212に実行させるシミュレータ200によれば、仮想セルの状態が、セルの状態と共に遷移する。このため、生産装置4からの要求に応じた特定のシミュレーションを、セルの状態と共に遷移した仮想セルの状態に基づき速やかに実行し、応答情報を短い待機時間で生産装置4に返すことができる。
(15) 比較部216による比較結果に基づいて、処理工程の実行結果と仮想処理工程の実行結果との乖離が減少するように、生産装置4に処理工程を実行させるための制御パラメータを変更するパラメータ変更部321を更に備える、(1)~(14)のいずれか記載の生産システム1。
 比較部216による比較結果を制御パラメータの調整に利用することができる。
(16) 比較部216による比較結果に基づいて、処理工程の実行結果と仮想処理工程の実行結果との乖離が減少するように、仮想生産装置212に仮想処理工程を実行させるためのシミュレーションパラメータを変更するシミュレータ修正部222を更に備える、(1)~(15)のいずれか記載の生産システム1。
 比較部216による比較結果をシミュレーションパラメータの調整に利用することができる。
(17) 比較部216による比較結果に基づいて、生産計画を変更する計画変更部811を更に備える、(1)~(16)のいずれか記載の生産システム1。
 比較部216による比較結果を生産計画の調整に利用することができる。
(18) シミュレータ200は、シミュレーション指示に基づいて仮想生産装置212を動作させるAPI224と、生産指示を受け取ってシミュレーション指示に変換する指令変換部225と、を更に有する、(1)~(17)のいずれか記載の生産システム1。
 生産装置4に対する生産指示と同じ生産指示に基づき仮想生産装置212に仮想処理工程を実行させるシミュレータ200を容易に構築することができる。
(19) 生産計画に基づき送信された生産指示に基づいて、ワークに対し処理工程を現実空間で実行して生産物を生産することと、生産指示に基づいて、生産装置4が行う処理工程に対応した仮想処理工程を、仮想空間で仮想生産装置212に実行させることと、処理工程の実行結果と、仮想処理工程の実行結果とを比較することと、を含む生産方法。
 以上、実施形態について説明したが、本開示は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で適宜変更可能である。
 1…生産システム、4…生産装置、111…履歴取得部、112…データベース、200…シミュレータ、212…仮想生産装置、213…状態整合部、216…比較部、5…マシン、5B,5C,5D…ロボット、315…情報掲示部、316…工程割当部、318…表示部、414…インタロック部、515…仮想情報掲示部、600…仮想マシン、221…サービス部、222…シミュレータ修正部、223…要因特定部、321…パラメータ変更部、811…計画変更部、224…API、225…指令変換部。

Claims (19)

  1.  生産計画に基づき送信された生産指示に基づいて、ワークに対し処理工程を現実空間で実行して生産物を生産する生産装置と、
     前記生産指示に基づいて、前記生産装置が行う前記処理工程に対応した仮想処理工程を、仮想空間で実行する仮想生産装置を有するシミュレータと、
     前記処理工程の実行結果と、前記仮想処理工程の実行結果とを比較する比較部と、
    を備える生産システム。
  2.  前記シミュレータは、前記処理工程の実行を開始する際における現実空間の状態に、前記仮想空間の状態を合わせる状態整合部を更に有し、
     前記仮想生産装置は、前記現実空間の状態に合わせられた前記仮想空間の状態に基づいて前記仮想処理工程を実行する、
    請求項1記載の生産システム。
  3.  前記生産装置から、前記処理工程の実行履歴を収集してデータベースに記憶させる履歴取得部を更に有し、
     前記状態整合部は、前記データベースが記憶する情報に基づいて前記仮想空間の状態を前記現実空間の状態に合わせる、
    請求項2記載の生産システム。
  4.  前記生産装置は、前記生産指示と、前記現実空間の状態とに基づいて、所定のアルゴリズムで自律的に前記処理工程を実行し、
     前記仮想生産装置は、前記生産指示と、前記仮想空間の状態とに基づいて、前記アルゴリズムで自律的に前記仮想処理工程を実行する、
    請求項1記載の生産システム。
  5.  前記生産装置は、
      ロボットを含む複数のマシンと、
      前記現実空間の状態情報を収集する情報掲示部と、
    を有し、
     前記ロボットは、前記情報掲示部が収集した前記現実空間の状態情報に基づいて、自律的に前記処理工程の少なくとも一部を実行する、
    請求項4記載の生産システム。
  6.  前記情報掲示部は、前記処理工程の進捗情報を更に収集し、
     前記ロボットは、前記現実空間の状態情報と、前記進捗情報とに基づいて、自律的に前記処理工程の少なくとも一部を実行する、
    請求項5記載の生産システム。
  7.  前記進捗情報に基づいて、前記処理工程における未実行の工程を前記複数のマシンのいずれかに割り当てる工程割当部を更に備え、
     前記ロボットは、前記工程割当部により割り当てられた工程を、前記現実空間の状態情報に基づいて自律的に実行する、
    請求項6記載の生産システム。
  8.  前記ロボットは、前記複数のマシンのうち前記ロボット以外のいずれかが実行する工程の進捗に基づいて、前記ロボットの進入禁止領域を設定するインタロック部を有する、
    請求項6記載の生産システム。
  9.  前記進捗情報は、未実行の工程に対し前記複数のマシンのいずれが割り当てられているかを表す予約情報を含み、
     前記情報掲示部は、前記予約情報において前記複数のマシンのいずれかが割り当てられた工程に対する他のマシンの割り当てを禁止し、
     前記複数のマシンのそれぞれは、前記予約情報において割り当てられた工程を実行する、
    請求項8記載の生産システム。
  10.  前記情報掲示部が収集した情報をモニタに表示させる表示部を更に有する、
    請求項5~9のいずれか一項記載の生産システム。
  11.  前記仮想生産装置は、
      前記ロボットに対応する仮想ロボットを含む複数の仮想マシンと、
      前記仮想空間の状態情報を収集する仮想情報掲示部と、
    を有し、
     前記仮想ロボットは、前記仮想情報掲示部が収集した前記仮想空間の状態情報に基づいて、自律的に前記仮想処理工程の少なくとも一部を実行する、
    請求項5~9のいずれか一項記載の生産システム。
  12.  前記比較部による比較結果が、前記ロボットによる前記処理工程の少なくとも一部の実行結果と、前記仮想ロボットによる前記仮想処理工程の少なくとも一部の実行結果との乖離を含んでいる場合に、乖離の要因となる前記ロボット以外の仮想マシンを特定する要因特定部と、
     前記乖離の要因となる仮想マシンに前記仮想処理工程の少なくとも一部を実行させるためのシミュレーションパラメータを修正するシミュレータ修正部と、
    を更に備える、
    請求項11記載の生産システム。
  13.  前記比較部は、前記処理工程の進捗に応じた前記現実空間の状態の遷移タイミングと、前記仮想処理工程の進捗に応じた前記仮想空間の状態の遷移タイミングとを比較する、
    請求項2~9のいずれか一項記載の生産システム。
  14.  前記シミュレータは、前記生産装置からの要求に応じて、前記仮想生産装置に特定のシミュレーションを実行させ、前記特定のシミュレーションの結果に基づく応答情報を前記生産装置に返すサービス部を更に有する、
    請求項1~9のいずれか一項記載の生産システム。
  15.  前記比較部による比較結果に基づいて、前記処理工程の実行結果と前記仮想処理工程の実行結果との乖離が減少するように、前記生産装置に前記処理工程を実行させるための制御パラメータを変更するパラメータ変更部を更に備える、
    請求項1~9のいずれか一項記載の生産システム。
  16.  前記比較部による比較結果に基づいて、前記処理工程の実行結果と前記仮想処理工程の実行結果との乖離が減少するように、前記仮想生産装置に前記仮想処理工程を実行させるためのシミュレーションパラメータを変更するシミュレータ修正部を更に備える、
    請求項1~9のいずれか一項記載の生産システム。
  17.  前記比較部による比較結果に基づいて、前記生産計画を変更する計画変更部を更に備える、
    請求項1~9のいずれか一項記載の生産システム。
  18.  前記シミュレータは、
      シミュレーション指示に基づいて前記仮想生産装置を動作させるAPIと、
      前記生産指示を受け取って前記シミュレーション指示に変換する指令変換部と、
    を更に有する、
    請求項1~9のいずれか一項記載の生産システム。
  19.  生産計画に基づき送信された生産指示に基づいて、ワークに対し処理工程を現実空間で実行して生産物を生産することと、
     前記生産指示に基づいて、生産装置が行う前記処理工程に対応した仮想処理工程を、仮想空間で仮想生産装置に実行させることと、
     前記処理工程の実行結果と、前記仮想処理工程の実行結果とを比較することと、
    を含む生産方法。
PCT/JP2023/005317 2022-02-15 2023-02-15 生産システム及び生産方法 WO2023157889A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202263310554P 2022-02-15 2022-02-15
US63/310,554 2022-02-15

Publications (1)

Publication Number Publication Date
WO2023157889A1 true WO2023157889A1 (ja) 2023-08-24

Family

ID=87578351

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/005317 WO2023157889A1 (ja) 2022-02-15 2023-02-15 生産システム及び生産方法

Country Status (1)

Country Link
WO (1) WO2023157889A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06259402A (ja) * 1990-06-01 1994-09-16 Motorola Inc 組織の目標を達成するために資源をロットに割り当てるための方法
JPH07325803A (ja) * 1994-06-02 1995-12-12 A I Service Kk 仮想cimシステム及び仮想cimシステムの構築方法及びcimシステムの構築方法
JPH08227432A (ja) * 1995-02-21 1996-09-03 Shin Meiwa Ind Co Ltd 仮想工程実行システム
JP2002373191A (ja) * 2001-06-14 2002-12-26 Ntn Corp 広域工場生産管理システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06259402A (ja) * 1990-06-01 1994-09-16 Motorola Inc 組織の目標を達成するために資源をロットに割り当てるための方法
JPH07325803A (ja) * 1994-06-02 1995-12-12 A I Service Kk 仮想cimシステム及び仮想cimシステムの構築方法及びcimシステムの構築方法
JPH08227432A (ja) * 1995-02-21 1996-09-03 Shin Meiwa Ind Co Ltd 仮想工程実行システム
JP2002373191A (ja) * 2001-06-14 2002-12-26 Ntn Corp 広域工場生産管理システム

Similar Documents

Publication Publication Date Title
CN113110328B (zh) 一种基于数字孪生技术的生产过程全周期智慧车间系统及解决方法
US11826913B2 (en) Control system, robot system and control method
KR102525831B1 (ko) 제어 시스템, 컨트롤러 및 제어 방법
US20230107431A1 (en) Comparison between real control and virtual control of robot
JP6621059B2 (ja) 機械設備制御システム、機械設備制御装置、及び機械設備制御方法
CN116523119A (zh) 一种面向个性化在制品定制生产线的数字孪生系统及方法
WO2020234946A1 (ja) ロボットシステム、復帰プログラム生成装置、制御支援装置、制御装置、プログラム、復帰プログラムの生成方法及び復帰プログラムの出力方法
US20230099602A1 (en) Device control based on execution command and updated environment information
WO2023157889A1 (ja) 生産システム及び生産方法
JP6965477B2 (ja) 生産システムの情報収集装置、情報収集方法及びプログラム
JP7374867B2 (ja) 制御システム、ローカルコントローラ及び制御方法
JP2020189395A (ja) ロボットシステム、復帰プログラム生成装置、制御支援装置、制御装置、プログラム、復帰プログラムの生成方法及び復帰プログラムの出力方法
US20230249347A1 (en) Path planning during execution of robot control
JP7302672B2 (ja) ロボットシステム、コントローラ及び制御方法
JP7235533B2 (ja) ロボットコントローラ及びロボットコントロールシステム
WO2022230280A1 (ja) ロボット制御システム、ロボット制御方法及びプログラム
Adam et al. Programming and control of an industrial robotic system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23756414

Country of ref document: EP

Kind code of ref document: A1