WO2021251385A1 - 生産システム、セルコントローラ、ロボットコントローラ及び制御方法 - Google Patents

生産システム、セルコントローラ、ロボットコントローラ及び制御方法 Download PDF

Info

Publication number
WO2021251385A1
WO2021251385A1 PCT/JP2021/021758 JP2021021758W WO2021251385A1 WO 2021251385 A1 WO2021251385 A1 WO 2021251385A1 JP 2021021758 W JP2021021758 W JP 2021021758W WO 2021251385 A1 WO2021251385 A1 WO 2021251385A1
Authority
WO
WIPO (PCT)
Prior art keywords
task
unit
execution
virtual
robot
Prior art date
Application number
PCT/JP2021/021758
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 株式会社安川電機
Priority to CN202180039869.5A priority Critical patent/CN115697649A/zh
Priority to EP21822136.4A priority patent/EP4144491A1/en
Publication of WO2021251385A1 publication Critical patent/WO2021251385A1/ja
Priority to US18/062,019 priority patent/US20230099602A1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • 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]
    • G05B19/41865Total 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] characterised by job scheduling, process planning, material flow
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • B25J9/1666Avoiding collision or forbidden zones
    • 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]
    • G05B19/41815Total 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] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • 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]
    • G05B19/41885Total 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] characterised by modeling, simulation of the manufacturing system
    • 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

  • This disclosure relates to a production system, a cell controller, a robot controller and a control method.
  • Patent Document 1 discloses a control system including a first controller, a second controller, and a third controller.
  • the third controller has a first communication unit and a second communication unit.
  • the third controller outputs the first operation command for operating the first control target to the first controller by the first communication unit, and the second operation command for operating the second control target is second by the second communication unit.
  • the second operation command is corrected based on the output to the controller, the acquisition of information about the current position of the first control target from the first controller by the first communication unit, and the information about the current position of the first control target.
  • It also has a control processing unit configured to do and to execute.
  • This disclosure provides a control system that is effective in improving the flexibility of the production system.
  • the production system includes a process including a plurality of tasks for a work, a command output unit that outputs an execution command of the next task based on the progress information of the process, and an environment that stores environmental information.
  • a robot controller that causes the robot to execute the next task based on the information storage unit, the execution command output from the command output unit, and the environment information of the environment information storage unit, and the environment information storage unit according to the operation of the robot. It is equipped with an environment update unit that updates the environment information of.
  • the cell controller includes a command output unit that sends an execution command of the next task to the robot controller based on a process including a plurality of tasks for the work and progress information of the process, and environmental information. It is provided with an environment information storage unit that stores the environment information, and an environment update unit that updates the environment information according to the operation executed by the robot controller based on the execution command and the environment information of the environment information storage unit. ..
  • the robot controller includes a process including a plurality of tasks for a work, a command buffer for storing an execution command of the next task transmitted by the cell controller based on the progress information of the process, and a robot.
  • a control unit that causes the robot to execute the next task based on the environment information updated by the cell controller according to the execution of the task by, and a progress transmission unit that transmits the execution status of the next task to the cell controller.
  • the control method is to send an execution command of the next task to the robot controller based on a process including a plurality of tasks for the work and progress information of the process, and to store environmental information. It includes storing environment information in the unit and updating the environment information according to the operation executed by the robot controller based on the execution command and the environment information of the environment information storage unit.
  • a control method is to store a process including a plurality of tasks for a work and an execution command of the next task transmitted by the cell controller based on the progress information of the process in a command buffer. , To make the robot execute the next task based on the environment information updated by the cell controller according to the execution of the task by the robot and the execution command, and to send the execution status of the next task to the cell controller. including.
  • the production system 1 shown in FIG. 1 is a system that produces workpieces by cooperative operation of a plurality of local devices.
  • work all the objects to be worked on by each local device are referred to as "work”.
  • the "work” includes a final product in the production system 1, parts of the final product, a unit in which a plurality of parts are combined, and the like.
  • Cooperative operation means that a plurality of local devices operate so as to share a plurality of processes for obtaining at least one final product.
  • the plurality of local devices may operate so as to share a plurality of processes for obtaining one final product in a process unit, or a plurality of processes for obtaining a plurality of final products in a final product unit. It may operate so as to share with.
  • the production system 1 includes a plurality of local devices 2 and a control system 3.
  • the local device 2 is a device that directly executes work on the work 9 at the production site of the work 9.
  • the direct work is, for example, the work of applying some energy such as thermal energy, kinetic energy, potential energy, etc. to the work 9.
  • Each of the plurality of local devices 2 is, for example, an industrial machine.
  • the plurality of local devices 2 include at least a robot (at least one local device 2 is a robot). Further, the plurality of local devices 2 include an industrial machine that cooperates with a robot. Specific examples of industrial machines that cooperate with robots include NC machine tools and the like in addition to other robots.
  • the plurality of local devices 2 shown in FIG. 1 include, but are not limited to, a transfer device 2A, robots 2B and 2C, and a mobile robot 2D. As long as it contains at least one robot, the number and type of local devices 2 can be changed as appropriate.
  • the transport device 2A transports the work 9 using, for example, an electric motor or the like as a power source.
  • the transfer device 2A include a belt conveyor, a roller conveyor, and the like.
  • the robots 2B and 2C and the mobile robot 2D perform work on the work 9 transported by the transport device 2A.
  • Specific examples of the work on the work 9 include assembling another work 9 (for example, a sub-part) to the work 9 (for example, a base part) conveyed by the transfer device 2A, and fastening the parts in the work 9 conveyed by the transfer device 2A. (For example, bolt fastening) / joining (for example, welding), loading of the work 9 into an NC machine tool installed around the transport device 2A, carrying out of the work 9 from the NC machine tool, and the like can be mentioned.
  • Robots 2B and 2C are articulated robots having a base 11 and a tip 18.
  • the robots 2B and 2C change the position and posture of the tip portion 18 with respect to the base portion 11 by operating the multi-joints in a complex manner, and execute the work on the work 9 by the tip portion 18.
  • the robots 2B and 2C are 6-axis vertical articulated robots, and as shown in FIG. 2, the base portion 11, the swivel portion 12, the first arm 13, the second arm 14, and the third arm 17 , The tip portion 18 and the actuators 41, 42, 43, 44, 45, 46.
  • the base 11 is installed around the transport device 2A.
  • the swivel portion 12 is provided on the base portion 11 so as to swivel around the vertical axis 21.
  • the first arm 13 is connected to the swivel portion 12 so as to swing around the axis 22 intersecting (for example, orthogonal to) the axis 21.
  • the intersection also includes a case where there is a twisting relationship such as a so-called grade separation.
  • the second arm 14 is connected to the tip of the first arm 13 so as to swing around an axis 23 substantially parallel to the axis 22.
  • the second arm 14 includes an arm base 15 and an arm end 16.
  • the arm base 15 is connected to the tip of the first arm 13 and extends along an axis 24 that intersects (eg, is orthogonal to) the axis 23.
  • the arm end 16 is connected to the tip of the arm base 15 so as to swivel around the axis 24.
  • the third arm 17 is connected to the tip end portion of the arm end portion 16 so as to swing around the axis line 25 intersecting (for example, orthogonal to) the axis line 24.
  • the tip 18 is connected to the tip of the third arm 17 so as to swivel around an axis 26 that intersects (eg, is orthogonal) the axis 25.
  • a work tool such as a hand, a suction nozzle, or a welding torch is attached to the tip portion 18.
  • the robots 2B and 2C have a joint 31 connecting the base 11 and the swivel portion 12, a joint 32 connecting the swivel portion 12 and the first arm 13, and the first arm 13 and the second arm 14. 33, a joint 34 connecting the arm base 15 and the arm end 16 in the second arm 14, a joint 35 connecting the arm end 16 and the third arm 17, and a third arm 17. It has a joint 36 that connects to the tip 18.
  • Actuators 41, 42, 43, 44, 45, 46 include, for example, an electric motor and a speed reducer, and drive joints 31, 32, 33, 34, 35, 36, respectively.
  • the actuator 41 swings the swivel portion 12 around the axis 21, swings the first arm 13 around the axis 22, swings the second arm 14 around the axis 23, and swings the arm end 16 around the axis 24. Is swiveled, the third arm 17 is swung around the axis 25, and the tip portion 18 is swiveled around the axis 26.
  • the robots 2B and 2C can be changed as appropriate.
  • the robots 2B and 2C may be a 7-axis redundant robot in which a 1-axis joint is further added to the 6-axis vertical articulated robot, or may be a so-called scalar type articulated robot.
  • the mobile robot 2D is an articulated robot that can run independently.
  • the mobile robot 2D has a robot 10 configured in the same manner as the robots 2B and 2C, and an automatic guided vehicle 50.
  • the automatic guided vehicle 50 autonomously travels so as to transport the robot 10.
  • Specific examples of the automatic guided vehicle 50 include an electric so-called AGV (Automated Guided Vehicle).
  • AGV Automated Guided Vehicle
  • the robot 10 changes the position and posture of the tip portion 18 with respect to the automatic guided vehicle 50 by operating the articulated joints in a complex manner, and the tip portion 18 executes work on the work 9.
  • the production system 1 may further include an external sensor 5.
  • the external sensor 5 detects the state of the working environment of the plurality of local devices 2 (hereinafter, referred to as “environmental state”). Specific examples of the external sensor 5 include a camera that captures the working environment of a plurality of local devices 2.
  • the external sensor 5 may be a sensor that detects the presence or absence of the work 9 at a predetermined position by a laser beam or the like, or may be a sensor that detects the size or the like of the work 9.
  • the production system 1 may include a plurality of external sensors 5.
  • the control system 3 controls a plurality of local devices 2.
  • the configuration of the control system 3 will be illustrated in detail.
  • the control system 3 has a local controller (real controller) that causes the local device 2 to execute a plurality of tasks included in the process for the work in the real space, and a virtual that causes the virtual local device to execute a plurality of tasks in the virtual space.
  • a local controller virtual controller
  • a real information collection unit that collects real execution status information that shows the execution status of each of multiple tasks by the local controller
  • virtual execution status information that shows the execution status of each of multiple tasks by the virtual local controller. It is provided with a virtual information collecting unit that collects data, and a task comparison unit that extracts one or more dissociated tasks in which the real execution status information and the virtual execution status information deviate from a plurality of tasks.
  • the control system 3 has a process including a plurality of tasks for the work, a command output unit that outputs an execution command of the next task based on the progress information of the process, and an environment information storage that stores the environment information.
  • Environment information according to the operation of the local controller that causes the local device 2 to execute the next task based on the unit, the execution command output from the command output unit, and the environment information of the environment information storage unit, and the operation of the local device 2. It may be provided with an environment update unit that updates the environment information of the storage unit.
  • Condition setting for is simplified.
  • autonomous performance of individual tasks by the local device 2 can be easily realized. Therefore, a simple process of outputting an execution command for the next task based on the progress of the plurality of tasks and updating the environment information according to the operation of the local device 2 facilitates the execution of the plurality of tasks in an appropriate order. be able to. Therefore, it is possible to easily rearrange a plurality of tasks to be executed by each local device 2 according to a change in the production plan or a change in the production environment.
  • the control system 3 has a plurality of local controllers 100, an upper controller 200 (cell controller), and a data management device 300.
  • the plurality of local controllers 100 each control the plurality of local devices 2.
  • Each of the plurality of local controllers 100 causes the controlled local device 2 (hereinafter referred to as "jurisdiction local device 2") to execute a plurality of tasks included in the process for the work 9 in the real space.
  • the real space is a space in which the jurisdiction local device 2 actually exists.
  • Each of the plurality of local controllers 100 may adjust the execution timing for each of the plurality of tasks based on the environment information of the environment information storage unit. Further, the local controller 100 may cause the jurisdiction local device 2 to execute the next task corresponding to the execution command from the command output unit. For example, each of the plurality of local controllers 100 causes the jurisdiction local device 2 to execute the next task based on the execution command and the environment information. For example, the local controller 100 causes the local device 2 to execute the next task corresponding to the execution command from the command output unit while adjusting the execution timing based on the environment information of the environment information storage unit.
  • the control system 3 has four local controllers 100A, 100B, 100C, 100D.
  • the local controller 100A controls the transport device 2A
  • the local controller 100B is a robot controller that controls the robot 2B
  • the local controller 100C is a robot controller that controls the robot 2C
  • the local controller 100D controls the mobile robot 2D. It is a robot controller.
  • the number of local controllers 100 and the configuration of each local controller 100 can be appropriately changed according to the number and type of local devices 2.
  • the host controller 200 includes the command output unit, the environment information storage unit, and the environment update unit, and performs synchronous communication with a plurality of local controllers 100. Synchronous communication means that communication is performed with a plurality of local controllers 100 in one cycle in synchronization with a synchronization frame having a fixed cycle (the communication cycle).
  • the host controller 200 outputs an execution command for the next task to each of the plurality of local controllers 100 based on the process for the work 9 and the progress information of the process, and environmental information according to the operation of the plurality of local devices 2. To update. Further, the host controller 200 updates the process progress information for the work 9 according to the execution status of the task by the plurality of local devices 2.
  • the data management device 300 includes the virtual local controller, the real information collecting unit, the virtual information collecting unit, and the task comparison unit, and performs synchronous communication or asynchronous communication with the host controller 200.
  • the data management device 300 collects the real execution status information from a plurality of local controllers 100 via the host controller 200.
  • the data management device 300 includes a plurality of virtual local controllers corresponding to the plurality of local controllers 100, and collects the virtual execution status information from the plurality of virtual local controllers.
  • the configurations of the local controller 100, the host controller 200, and the data management device 300 will be specifically exemplified.
  • the host controller 200 has a process database 211, an order acquisition unit 212, a process allocation unit 213, and a process storage unit 214 as a functional configuration (hereinafter referred to as “functional block”). , A command output unit 215, a progress update unit 216, an environment information storage unit 221 and an environment update unit 222.
  • the process database 211 stores a plurality of processes for each of a plurality of types of work 9 targeted by the production system 1. Each process includes the identification information of each of the plurality of tasks for the work 9, the execution order of the plurality of tasks, and the identification information of the local device 2 that executes each of the plurality of tasks.
  • the plurality of tasks may include tasks executed by local devices 2 that are different from each other.
  • the plurality of tasks may include a plurality of tasks executed by the robot 2B, 2C or the mobile robot 2D, and one or more tasks executed by the other local device 2.
  • a task is a set of work units executed by one local device 2.
  • the plurality of tasks performed by the robot 2B, 2C or the mobile robot 2D may include a plurality of tasks for operating one or more identical joints.
  • the position / posture of the tip 18 is adjusted by the combined motion of the joints 31, 32, 33, 34, 35, 36, but depending on the content of the task, the joints 31, 32. , 33, 34, 35, 36 may not work.
  • tasks performed by the robot 2B, 2C or the mobile robot 2D include a task of picking up parts and transporting them to a predetermined position, a task of fastening two parts (for example, bolting), and welding two parts. Examples include a task, a task of bonding two parts, and a task of picking up an assembly of two or more parts and transporting them to a predetermined position.
  • Each task may include the action of moving the tip 18 to a position where the work or tool is picked up, or may include the action of moving the tip 18 which has released the work or tool to a position away from the work or tool.
  • Specific examples of the task executed by the other local device 2 include a task of changing the position / posture of the work or the tool according to the task of the robots 2B and 2C, and a predetermined work or tool arranged by the robots 2B and 2C. Examples include tasks for performing machining (for example, cutting).
  • the order acquisition unit 212 acquires the production order of the work 9 from the production control controller 4.
  • the production order includes the type of work 9 to be produced and the production quantity for each type.
  • the production control controller 4 is, for example, a controller that allocates the production order of the work 9 according to the production plan to a plurality of factory cells in the MES (Manufacturing Execution System) of the factory, and performs synchronous communication or asynchronous communication with the upper controller 200. ..
  • the process allocation unit 213 allocates the process to the work 9 specified by the production order. For example, the process allocation unit 213 allocates a process to the work 9 designated by the production order based on the process database 211. When the production order specifies a plurality of works 9, the process allocation unit 213 allocates a process to each of the plurality of works 9 based on the process database 211.
  • the plurality of works 9 may include works 9 that are different from each other.
  • the process storage unit 214 stores the process allocation result by the process allocation unit 213 and the progress information (progress information in the real space) for each process.
  • FIG. 4 is a table illustrating the result of process allocation to a plurality of works 9. In this table, the order of execution of multiple tasks in each process is shown by the order from left to right.
  • a process including three-step tasks a1, a2, and a3 is assigned to the work A.
  • a process including tasks b1, b2, b3, b4, and b5 in five steps is assigned to the work B.
  • a process including two-step tasks c1 and c2 is assigned to the work C.
  • a process including the three-step tasks d1, d2, and d3 is assigned to the work D.
  • a process including four-step tasks e1, e2, e3, and e4 is assigned to the work E.
  • the progress information for each process is, for example, information indicating whether each task of the process has not been started, is being executed, or has been completed.
  • the progress information may be a flag indicating unstarted, running, or completed, or may be a start time and a completed time. If the progress information is the start time and the completion time, it is not started if neither the start time nor the completion time is stamped, and if the start time is stamped and the completion time is not stamped, it is being executed and completed. If the time is stamped, it is complete.
  • the command output unit 215 outputs an execution command for the next task based on the process stored in the process storage unit 214 and the progress information of the process.
  • the next task in the plurality of tasks is a task in which the previous task does not exist or the previous task is completed among the unstarted tasks.
  • the command output unit 215 outputs an execution command for the next task to any of the plurality of local controllers 100 based on the process database 211. For example, the command output unit 215 outputs an execution command for the next task to the local controller 100 of the local device 2 associated with the next task in the process database 211.
  • the command output unit 215 When a plurality of processes are assigned to each of the plurality of works 9 in the process storage unit 214, the command output unit 215 has a plurality of orders for each of the plurality of processes based on the plurality of progress information for each of the plurality of processes. A task execution command may be output. The command output unit 215 may output a plurality of execution commands for the next task to the same local controller 100.
  • the command output unit 215 is the next task of the first process.
  • the execution command and the execution command of the next task of the second process may be output to the same local controller 100.
  • the command output unit 215 may output the execution command of the next task of the second process after outputting the execution command of the next task of the first process, prior to the execution of the next task.
  • the command output unit 215 may output an execution command for the next task of the first process after outputting the execution command for the next task of the second process, prior to the execution of the next task.
  • command output unit 215 may output the execution command of the next task of the first process and the execution command of the next task of the second process at the same time.
  • the simultaneous output here means that the period for outputting the execution command for the next task of the first process and the period for outputting the execution command for the next task of the second process overlap at least partially.
  • the command output unit 215 may output an execution command for the next task in response to a request from the local controller 100 in the above synchronous communication, or output an execution command regardless of whether or not there is a request from the local controller 100. You may.
  • the progress update unit 216 updates the progress information of the process storage unit 214 according to the execution status of the next task by the plurality of local devices 2. For example, the progress update unit 216 updates the progress information of the process storage unit 214 based on the status information described later output by the local controller 100.
  • the environmental information storage unit 221 stores environmental information.
  • the environmental information includes, for example, information about the local device 2 (hereinafter referred to as “device information”) and information regarding the work 9 (hereinafter referred to as “work information”).
  • Specific examples of the device information include position / attitude information of the local device 2.
  • Specific examples of the position / posture information of the local device 2 include the posture information of the robots 2B and 2C, the position / posture information of the mobile robot 2D, and the like.
  • the posture information of the robots 2B and 2C may be the motion angle information of the joints 31, 32, 33, 34, 35, 36, or the position / posture information of the tip portion 18.
  • the position / posture information of the mobile robot 2D includes, for example, the position / posture information of the automatic guided vehicle 50 and the posture information of the robot 10.
  • the posture information of the robot 10 may be the operation angle information of the joints 31, 32, 33, 34, 35, 36, or the position / posture of the tip portion 18 (position / posture based on the automatic guided vehicle 50). It may be information.
  • the device information includes information on a control signal (hereinafter referred to as "real control signal") generated between the local controller 100 and the local device 2 under its jurisdiction.
  • the real control signal may be an internal signal generated by the local controller 100 for the control of the jurisdiction local device 2, or may be an output signal output from the local controller 100 to the jurisdiction local device 2. , It may be a feedback signal output from the jurisdiction local device 2 to the local controller 100.
  • Specific examples of the internal signal include command values for the position and attitude of the local device 2 under the jurisdiction.
  • Specific examples of the output signal include the output current value to the actuator of the local device 2 under the jurisdiction.
  • Specific examples of the feedback signal include detected values such as position / attitude and speed in the local device 2.
  • FIG. 5 is a table illustrating device information.
  • the identification information of the local device 2 is associated with at least one state parameter indicating information about the local device 2.
  • FIG. 6 is a table illustrating work information.
  • the identification information for example, type and serial number
  • the work 9 is associated with the position information of the work 9.
  • the environment update unit 222 updates the environment information of the environment information storage unit 221 according to the operation of the plurality of local devices 2. For example, the environment update unit 222 acquires the status information of the local device 2 from each of the plurality of local controllers 100, and updates the device information based on the status information. The environment update unit 222 may further update the work information based on the status information of the local device 2. For example, the environment update unit 222 may update the position information of each work 9 based on the status information of the transfer device 2A acquired from the local controller 100A. The environment update unit 222 may update the environment information based on the detection result of the external sensor 5.
  • the local controller 100 has a task program storage unit 111, a parameter holding unit 112, a command buffer 113, an environment information acquisition unit 114, a selection unit 115, and a control unit 116 as functional blocks. , And a status output unit 117.
  • the task program storage unit 111 (condition storage unit) stores one or more execution conditions predetermined for each one or more tasks among a plurality of tasks.
  • the task program storage unit 111 stores a plurality of task programs 130 that each determine an operation in a plurality of tasks.
  • the plurality of tasks here may include tasks in which the work 9 to be worked on is different from each other.
  • target work 9 the work 9 to be worked is referred to as "target work 9".
  • the task program 130 includes a condition header 131 and an operation program 132.
  • the operation program 132 represents the operation of the local device 2 under the jurisdiction.
  • the operation program 132 includes a plurality of movement instructions arranged in chronological order so that the local device 2 under the jurisdiction performs a group of operations.
  • the movement command in the operation program 132 includes the target position / target posture of the tip portion 18.
  • the condition header 131 represents the execution condition of the operation program 132.
  • the execution condition is a condition for determining the execution timing of the operation program 132.
  • FIG. 7 is a table showing an example of the condition header 131.
  • the execution condition includes an executionability condition for determining whether or not the operation program 132 (corresponding task) can be executed, and a priority of the operation program 132.
  • the priority represents the priority in the plurality of task programs 130 stored in the task program storage unit 111. When the priority is a numerical value representing the priority itself, the smaller the value, the higher the priority.
  • Example 1 There are no obstacles to the operation of the local device 2 under the jurisdiction within the operating range of the local device 2 under the jurisdiction.
  • Example 2) The target work 9 is in a predetermined position.
  • Example 3) There is no other work 9 at the delivery destination of the target work 9.
  • Example 4) The delivery destination of the target work 9 is open.
  • obstacles include another local device 2, a work 9 held by the other local device 2, a person, and the like.
  • an NC machine tool which is an example of another local device 2
  • a specific example of the delivery destination being open is that the door of the NC machine tool is open.
  • the process for one target work 9 may include a task by another local device 2 under the jurisdiction.
  • Specific examples of the task by the other local device 2 include a machine task executed by an industrial machine (for example, NC machine tool).
  • the jurisdiction local device 2 is a robot 2B, 2C, or a mobile robot 2D
  • a plurality of tasks executed by the jurisdiction local device 2 are executed before the machine task and after the machine task. Tasks may be included.
  • the plurality of tasks executed by the jurisdiction local device 2 include a task that collaborates with another local device 2 (first industrial machine) and a task that further collaborates with another local device 2 (second industrial machine). May include.
  • the plurality of tasks executed by the jurisdiction local device 2 include one or more interpolation tasks in addition to the plurality of tasks for the target work 9. You may be.
  • a plurality of tasks for the work 9 are referred to as “working tasks”, and the interpolation task is referred to as an "air cut task”.
  • the air cut task represents the operation of the jurisdiction local device 2 between two working tasks among a plurality of working tasks.
  • the two working tasks are referred to as "first working task” and "second working task”.
  • a specific example of the air cut task is shown below.
  • Example 1) The tip portion 18 is moved in a predetermined trajectory from the position / posture at the completion of the first working task to the position / posture at the start of the second working task.
  • Example 2) The tip portion 18 is moved in a predetermined trajectory from the position / posture at the start of the first working task to the position / posture at the start of the second working task.
  • Example 3 The tip portion 18 is moved in a predetermined trajectory from the position / posture at the completion of the second working task to the position / posture at the start of the first working task.
  • Example 4 The tip portion 18 is moved in a predetermined trajectory from the position / posture at the start of the second working task to the position / posture at the start of the first working task.
  • air cut tasks may be provided between two or more sets of working tasks.
  • the process associated with the work 9 may include a plurality of working tasks and may not include an air cut task.
  • the parameter holding unit 112 stores one or more control parameters for controlling the jurisdiction local device 2. Specific examples of one or more control parameters include position control gain, speed control gain, current control gain, and the like.
  • the command buffer 113 stores the execution command of the next task acquired from the host controller 200.
  • the command output unit 215 may output a plurality of execution commands for the next task to the same local controller 100. Therefore, the command buffer 113 may be configured to store a plurality of execution commands.
  • FIG. 8 is a table illustrating the contents of the command buffer. As execution commands for a plurality of next tasks, an execution command for task a1 for work A, an execution command for task b2 for work B, and a task e3 for work E are shown in FIG. Shows the state in which the execution command is stored.
  • the environmental information acquisition unit 114 acquires the environmental information stored in the environmental information storage unit 221.
  • the environmental information acquisition unit 114 may request the host controller 200 to output the environmental information and acquire the output environmental information in response to the request.
  • the environment information output from the controller 200 may be acquired.
  • the selection unit 115 is any of the plurality of next tasks of the command buffer 113 based on the execution conditions (condition header 131) of each of the plurality of next tasks in the task program storage unit 111 and the environment information of the environment information storage unit 221. Select. For example, the selection unit 115 confirms whether or not each of the plurality of next tasks can be executed. For example, the selection unit 115 confirms whether the environment information satisfies each of the execution enablement / non-execution conditions of the plurality of next tasks. Further, the selection unit 115 selects one or more feasible next tasks based on the priority. If there is only one executable next task, the selection unit 115 selects the next task. When two or more next tasks can be executed, the selection unit 115 selects the next task having the highest priority.
  • the selection unit 115 may include the air cut task at the beginning of the next task.
  • the next task in which the air cut task is included at the beginning is referred to as "next task with air cut”.
  • the selection unit 115 confirms whether or not the environment information satisfies the execution possibility condition of the next task with an air cut, the selection unit 115 also determines whether or not the environment information satisfies the execution possibility condition of the air cut task. You may check.
  • the control unit 116 causes the local device 2 in charge to execute the next task based on the execution condition of the next task in the task program storage unit 111 and the environmental information of the environment information storage unit 221. For example, the control unit 116 causes the local device 2 in charge to execute the next task selected by the selection unit 115. When the selection unit 115 selects the next task with an air cut, the control unit 116 executes the next task after executing the air cut task included at the beginning of the next task.
  • the status output unit 117 outputs the above status information of the local device 2 under the jurisdiction to the host controller 200.
  • the status information includes at least the position / attitude information of the local device 2 under the jurisdiction.
  • the status output unit 117 may include the task completion notification in the status information and output it as the execution of the task program 130 is completed.
  • the status output unit 117 may output status information in response to a request from the host controller 200 in the above synchronous communication, or may output status information regardless of the presence or absence of a request from the host controller 200.
  • the control executed by the local controller 100B when the command buffer 113 of the local controller 100B stores a plurality of next tasks will be specifically exemplified.
  • the plurality of local devices 2 further include NC machine tool 2F.
  • the robot 2B is installed between the NC machine tool 2F and the transfer device 2A.
  • work tables 91 and 92 for temporarily placing the work 9 are provided.
  • the command buffer 113 of the local controller 100B stores the following execution command of the first working task, the execution command of the second working task, and the execution command of the third working task.
  • First working task The first work 9A is carried out from the NC machine tool 2F and transported to the work table 91.
  • Third working task The third work 9C is transferred from the work table 91 to the transfer device 2A.
  • the priority of the first working task is higher than the priority of the second working task, and the priority of the second working task is higher than the priority of the third working task.
  • FIG. 9A shows a state in which the first working task and the third working task can be executed.
  • the selection unit 115 selects the first working task, which has a higher priority than the third working task.
  • the control unit 116 causes the robot 2B to execute the first working task (see (b) in FIG. 9).
  • the second working task and the third working task can be executed (see (a) in FIG. 10).
  • the selection unit 115 selects the second working task, which has a higher priority than the third working task.
  • the control unit 116 causes the robot 2B to execute the second working task (see (b) in FIG. 10).
  • the selection unit 115 selects the third working task.
  • the control unit 116 causes the robot 2B to execute the third working task (see (a) and (b) of FIG. 11).
  • the environmental information stored in the environmental information storage unit 221 may include a waiting time corresponding to the completion time of the above machine task.
  • the environmental information may include a wait time in any form as long as it represents the time to complete the machine task.
  • the environment information may include a combination of the scheduled completion time and the current time of the above machine task, or may include a time length from the current time to the scheduled completion time.
  • the local controller 100 may further have a selection timing adjusting unit 121.
  • the selection timing adjusting unit 121 performs the first task and the second task.
  • the selection timing of the next task by the selection unit 115 is adjusted based on the priority of and the waiting time. For example, when the priority of the first task is higher than the priority of the second task and the waiting time is equal to or less than a predetermined threshold value, the selection timing adjusting unit 121 sets the selection timing of the next task by the selection unit 115 as the waiting time elapses. After time.
  • the command buffer 113 of the local controller 100B stores the execution command of the first working task, the execution command of the second working task, and the execution command of the third working task.
  • the processing of the selection timing adjusting unit 121 of the above is illustrated.
  • the machining performed by the NC machine tool 2F on the first work 9A corresponds to the above machine task. While the machine task is being executed (see (a) in FIG. 12), only the third working task (second task) can be executed, and the first working task (first task) and the second working task cannot be executed. Is.
  • the selection timing adjusting unit 121 sets the selection timing of the next task by the selection unit 115 as the waiting time elapses. After time. Therefore, even if the third working task can already be executed, the control unit 116 waits for the elapse of the waiting time without causing the robot 2B to execute the third working task.
  • the selection timing adjusting unit 121 causes the selection unit 115 to select the next task
  • the first working task and the third working task can be executed due to the passage of the waiting time. Therefore, the selection unit 115 executes the first working task, which has a higher priority than the third working.
  • the control unit 116 causes the robot 2B to execute the first working task (see (b) in FIG. 12).
  • the local controller 100 may further have an interruption unit 122.
  • the plurality of next tasks of the command buffer 113 include the first task and the second task having a lower priority than the first task, and the first task is being executed by the local device 2 having jurisdiction.
  • the control unit 116 interrupts the second task, and the selection unit 115 selects the first task. Further, the interruption unit 122 returns the execution command of the second task to the command buffer 113.
  • the interruption unit 122 causes the selection unit 115 to return the jurisdiction local device 2 to the state before the start of the second task by the control unit 116, and then causes the selection unit 115 to perform the first task. May be selected.
  • the interruption unit 122 is executed by the first task during the execution of the second task by the local device 2 under the jurisdiction.
  • the control unit 116 returns the local device 2 under the jurisdiction to the state before the start of the transfer of the second work, and then the selection unit 115 selects the first task and commands the execution command of the second task. Return to buffer 113.
  • the processing of the interruption unit 122 when the first working task (first task) becomes executable during the execution of the third working task (second task) by the robot 2B is illustrated. ..
  • the control unit 116 is the robot 2B. 3 Shows the state in which the working task is being executed.
  • the robot 2B conveys the third work 9C from the work table 91 to the transfer device 2A.
  • the interruption unit 122 causes the control unit 116 to interrupt the third working task. Since the third work 9C cannot be released in a state where the third work 9C is separated from the work table 91 and has not reached the transfer device 2A, the robot 2B uses the control unit 116 to transfer the robot 2B to the third working task. Return to the state before the start. As a result, the third work 9C is returned to the work table 91 (see (b) in FIG. 13). After that, the interruption unit 122 causes the selection unit 115 to select the first working task.
  • the control unit 116 causes the robot 2B to execute an air cut task of moving the tip portion 18 in a predetermined trajectory from the position / posture at the start of the third working task to the position / posture at the start of the first working task. , Let the robot 2B perform the first working task.
  • the interruption unit 122 causes the selection unit 115 to select the first task after the completion of the second task, as compared with the case where the control unit 116 suspends the execution of the second task and the selection unit 115 selects the first task. If the execution time of the plurality of processes is shortened, the second task may not be interrupted by the control unit 116. For example, the interruption unit 122 does not have to interrupt the second task to the control unit 116 when the remaining time of the second task is equal to or less than a predetermined threshold value at the timing when the first task can be executed.
  • the data management device 300 outputs an execution command for the next task based on the process and the progress information of the process in the virtual space.
  • Virtual command output unit virtual environment information storage unit that stores virtual environment information, execution command output from the virtual command output unit, and virtual environment information in the virtual environment information storage unit to the virtual local device. It may have a virtual local controller that executes the next task in the virtual space, and a virtual environment update unit that updates the virtual environment information of the virtual environment information storage unit according to the operation of the virtual local device.
  • the data management device 300 has a model storage unit 311, a plurality of virtual local controllers 400, and a virtual host controller 500 as functional blocks.
  • the model storage unit 311 stores models of a plurality of virtual local devices.
  • the model of the virtual local device includes parameters such as the arrangement, structure, dimensions of each part, and mass of each part in the real space of the corresponding local device 2.
  • the model storage unit 311 also stores models of the surrounding environment of a plurality of virtual local devices in the virtual space.
  • the model of the surrounding environment includes parameters such as the arrangement, three-dimensional shape, and dimensions of the peripheral objects of the plurality of local devices 2 in the real space.
  • the model storage unit 311 may include a standard time in which the responsiveness of the virtual local device to the control command is expressed in time. Specific examples of the standard time include, for example, the operating time length according to the control command.
  • the operation time length is, for example, the time length from the output start time of the control command to the operation completion time of the virtual local device corresponding to the output start time.
  • the plurality of virtual local controllers 400 correspond to the plurality of local controllers 100, respectively.
  • the data management device 300 includes a virtual local controller 400A corresponding to the local controller 100A, a virtual local controller 400B corresponding to the local controller 100B, a virtual local controller 400C corresponding to the local controller 100C, and a virtual corresponding to the local controller 100D. It has a local controller 400D.
  • the virtual local controllers 400B, 400C, 400D corresponding to the local controllers 100B, 100C, 100D, which are robot controllers, are virtual robot controllers.
  • the virtual local device controlled by the virtual local controllers 400B and 400C is a virtual robot, and the virtual local device controlled by the virtual local controller 400D is a virtual mobile robot.
  • the plurality of virtual local controllers 400 each control a plurality of virtual local devices corresponding to the plurality of local devices 2 in the virtual space. Each of the plurality of virtual local controllers 400 causes the controlled virtual local device to execute a plurality of tasks included in the process for the target work 9 in the virtual space.
  • the virtual local device controlled by the virtual local controller 400 is referred to as a "jurisdiction virtual local device", and the local device 2 corresponding to the jurisdiction virtual local device is referred to as a "jurisdiction local device 2".
  • the jurisdiction local device 2 is a local device 2 controlled by the local controller 100 corresponding to the virtual local controller 400.
  • the virtual space is a virtual space on a simulation in which the local device 2 under the jurisdiction does not exist.
  • letting the jurisdiction virtual local device execute a task means that the jurisdiction local device 2 operates in the real space when the task is executed based on the model information of the jurisdiction local device 2 stored in the model storage unit 311. Means to simulate.
  • Each of the plurality of virtual local controllers 400 may adjust the execution timing for each of the plurality of tasks based on the virtual environment information of the virtual environment information storage unit. Further, the virtual local controller 400 may cause the jurisdiction virtual local device to execute the next task corresponding to the execution command from the virtual command output unit. For example, each of the plurality of virtual local controllers 400 causes the jurisdiction virtual local device to execute the next task based on the execution command and the virtual environment information. For example, the virtual local controller 400 causes the jurisdiction virtual local device to execute the next task corresponding to the execution command from the virtual command output unit while adjusting the execution timing based on the virtual environment information of the virtual environment information storage unit.
  • the virtual upper controller 500 has, as more subdivided functional blocks, a process database 211, an order acquisition unit 212, a process allocation unit 213, a process storage unit 214, a command output unit 215, a progress update unit 216, and an environment information storage unit 221.
  • Each of the environment update unit 222 has a process database 511, an order acquisition unit 512, a process allocation unit 513, a process storage unit 514, a command output unit 515, a progress update unit 516, an environment information storage unit 521, and an environment update unit 522.
  • the process database 511 stores a plurality of processes for each of the plurality of types of work 9 targeted by the production system 1.
  • the order acquisition unit 512 acquires a production order for simulation from, for example, an input device 396 described later.
  • the process allocation unit 513 allocates the process to the work 9 specified by the production order in the same manner as the process allocation unit 213. For example, the process allocation unit 513 allocates a process to the work 9 specified by the production order based on the process database 511. Similar to the process storage unit 214, the process storage unit 514 stores the process allocation result by the process allocation unit 513 and the progress information (progress information in the virtual space) for each process.
  • the command output unit 515 (virtual command output unit) outputs an execution command for the next task based on the process stored in the process storage unit 514 and the progress information of the process in the virtual space. do.
  • the command output unit 515 outputs an execution command for the next task to any of the plurality of virtual local controllers 400 based on the process database 511. For example, the command output unit 515 outputs an execution command for the next task to the virtual local controller 400 of the virtual local device of the local device 2 associated with the next task in the process database 511.
  • the progress update unit 516 updates the progress information of the process storage unit 514 according to the execution status of the next task by the plurality of virtual local devices. For example, the progress update unit 516 updates the progress information of the process storage unit 514 based on the status information described later output by the virtual local controller 400.
  • the environment information storage unit 521 (virtual environment information storage unit) stores virtual environment information.
  • the structure of the virtual environment information is the same as the structure of the environment information.
  • the virtual environment information includes device information in the virtual space and work information in the virtual space.
  • the device information in virtual space includes position / attitude information of virtual local devices in virtual space.
  • the device information in the virtual space includes information on a control signal (hereinafter, referred to as “virtual control signal”) generated between the virtual local controller 400 and the virtual local device under its jurisdiction.
  • virtual control signal a control signal generated between the virtual local controller 400 and the virtual local device under its jurisdiction.
  • the virtual control signal may be an internal signal generated by the virtual local controller 400 for controlling the jurisdiction virtual local device, or may be an output signal output from the virtual local controller 400 to the jurisdiction virtual local device. Alternatively, it may be a feedback signal output from the jurisdiction virtual local device to the virtual local controller 400.
  • Specific examples of the internal signal include command values for the position and attitude of the virtual local device under the jurisdiction.
  • Specific examples of the output signal include the output current value to the actuator of the virtual local device under the jurisdiction.
  • Specific examples of the feedback signal include a simulation result of the operation of the local device 2 under the jurisdiction based on the output signal and the model information stored in the model storage unit 311.
  • work information in virtual space include position information of each work 9 in virtual space.
  • the environment update unit 522 (virtual environment update unit) updates the virtual environment information of the environment information storage unit 521 according to the operation of a plurality of virtual local devices.
  • the virtual local controller 400 has task program storage unit 111, parameter holding unit 112, command buffer 113, environment information acquisition unit 114, selection unit 115, control unit 116, status output unit 117, and selection as more subdivided functional blocks.
  • the task program storage unit 411 stores one or more execution conditions predetermined for each one or more tasks among the plurality of tasks.
  • the task program storage unit 411 stores the plurality of task programs 130.
  • the parameter holding unit 412 like the parameter holding unit 112, stores one or more parameters for controlling the jurisdiction virtual local device.
  • the command buffer 413 stores the execution command of the next task acquired from the virtual host controller 500.
  • the environmental information acquisition unit 414 acquires the environmental information stored in the environmental information storage unit 521 in the same manner as the environmental information acquisition unit 114.
  • the selection unit 415 is a command buffer 413 based on the execution conditions (condition header 131) of each of the plurality of next tasks in the task program storage unit 411 and the environment information of the environment information storage unit 521. Select one of several of the following tasks:
  • the control unit 416 causes the jurisdiction virtual local device to execute the next task based on the execution condition of the next task in the task program storage unit 411 and the environment information of the environment information storage unit 521.
  • the control unit 416 causes the jurisdiction virtual local device to execute the next task selected by the selection unit 415.
  • the task selected by the selection unit 415 is referred to as a "selected task”.
  • the control unit 416 simulates the operation of the jurisdiction local device 2 in the real space when executing the selected task, based on the model information of the jurisdiction local device 2 stored in the model storage unit 311. Similar to the status output unit 117, the status output unit 417 outputs the above status information of the jurisdiction virtual local device to the virtual host controller 500.
  • the selection timing adjustment unit 421 adjusts the selection timing of the next task by the selection unit 415 in the same manner as the selection timing adjustment unit 121. For example, when the plurality of next tasks of the command buffer 413 include a first task that can be executed when the machine task is completed and a second task that can already be executed, the selection timing adjustment unit 421 performs the first task and the second task. The selection timing of the next task by the selection unit 415 is adjusted based on the priority of the task and the waiting time.
  • the plurality of next tasks of the command buffer 413 include the first task and the second task having a lower priority than the first task, and the second task by the jurisdiction virtual local device.
  • the control unit 416 interrupts the second task and the selection unit 415 selects the first task.
  • the data management device 300 has a real information collection unit 312, a real information database 313, a virtual information collection unit 314, a virtual information database 315, a task comparison unit 316, and a situation as functional blocks. It further includes a comparison display unit 317, a display form changing unit 318, a real signal extraction unit 321, a virtual signal extraction unit 322, and a signal comparison display unit 323.
  • the real information collection unit 312 collects real execution status information indicating the execution status of each of the plurality of tasks by the local controller 100.
  • the real execution status information is information representing one situation generated in the real space by the combined operation of the joints 31, 32, 33, 34, 35, 36.
  • the situation in the real space includes not only the state of the real space but also the passage of time in the real space.
  • the real execution status information includes the execution time of the corresponding task.
  • the execution time may be a start time, a completion time, or a time length from the start time to the completion time.
  • the real information collecting unit 312 collects real execution status information including the execution start time and the execution completion time of each of the plurality of tasks in the first timeline.
  • the first timeline is, for example, a time axis based on a timer in the host controller 200.
  • the real execution status information may include the status information of the target work 9 after the execution of the corresponding task.
  • the state information of the target work 9 As an example of the state information of the target work 9, the position / posture of the target work 9 after transportation can be mentioned.
  • the real information collection unit 312 acquires real execution status information from the process storage unit 214 of the host controller 200.
  • the real information collecting unit 312 may further acquire the real control signal from the environment information storage unit 221 of the host controller 200.
  • the real information collecting unit 312 may acquire the environmental information including the real control signal from the environment information storage unit 221 in association with the time on the first timeline.
  • the real information collecting unit 312 may request the host controller 200 to output the real execution status information and the real control signal, and may acquire the real execution status information and the real control signal output in response to the request.
  • the real execution status information and the real control signal output from the host controller 200 may be acquired regardless of the presence or absence.
  • the real information database 313 stores the real execution status information and the real control signal collected by the real information collecting unit 312.
  • the real information database 313 may store the real control signal in association with the time along the first timeline.
  • the real information database 313 may accumulate environmental information including the real control signal in association with a time along the first timeline.
  • the virtual information collection unit 314 collects virtual execution status information indicating the execution status of each of the plurality of tasks by the virtual local controller 400.
  • the virtual execution status information is information representing one situation generated in the virtual space by the combined operation of the joints 31, 32, 33, 34, 35, 36.
  • the situation in the virtual space includes not only the state of the virtual space but also the passage of time in the virtual space.
  • the virtual execution status information includes the execution time of the corresponding task.
  • the execution time may be a start time, a completion time, or a time length from the start time to the completion time.
  • the virtual information collection unit 314 collects virtual execution status information including execution start time and execution completion time of a plurality of tasks in the second timeline.
  • the second timeline is, for example, a time axis based on a timer in the data management device 300.
  • the virtual execution status information may include the status information of the target work 9 after the execution of the corresponding task.
  • the state information of the target work 9 the position / posture of the target work 9 after transportation can be mentioned.
  • the virtual information collection unit 314 acquires virtual execution status information from the process storage unit 514.
  • the virtual information collecting unit 314 may further acquire the virtual control signal from the environment information storage unit 521.
  • the virtual information collecting unit 314 may acquire the virtual environment information including the virtual control signal from the environment information storage unit 521 in association with the time on the second timeline.
  • the virtual information database 315 stores virtual execution status information and virtual control signals collected by the virtual information collection unit 314.
  • the virtual information database 315 may store the virtual control signal in association with the time along the second timeline.
  • the virtual information database 315 may accumulate virtual environment information including the virtual control signal in association with a time along the second timeline.
  • the task comparison unit 316 extracts one or more dissociated tasks in which the real execution status information and the virtual execution status information are dissociated from the plurality of tasks.
  • the divergence means that the difference between the real execution status information and the virtual execution status information exceeds a predetermined level.
  • the task comparison unit 316 may compare the real execution status information and the virtual execution status information for at least one task among the plurality of tasks, and the real execution status information and the virtual execution may not necessarily be performed for all of the plurality of tasks. There is no need to compare with the situation information.
  • a specific example of extracting the dissociated task by the task comparison unit 316 is shown below.
  • Example 1 Extract one or more divergent tasks in which the difference between the execution time length based on the real execution status information (time length from start to completion) and the execution time length based on the virtual execution status information exceeds a predetermined level.
  • Example 2) Extract one or more divergence tasks in which the difference between the state information of the target work 9 based on the real execution status information and the state information of the target work 9 based on the virtual execution status information exceeds a predetermined level.
  • the status comparison display unit 317 compares the real execution status information of each of the plurality of tasks collected by the real information collection unit 312 with the virtual execution status information of each of the plurality of tasks collected by the virtual information collection unit 314 for each task. Is displayed on a display unit (for example, a display device 395 described later).
  • FIG. 16 is a table exemplifying a comparative display of real execution status information and virtual execution status information. This table displays the execution time length based on the real execution status information and the execution time length based on the virtual execution status information in comparison for each of a plurality of tasks. Further, this table displays the state information of the target work 9 based on the real execution status information and the state information of the target work 9 based on the virtual execution status information in comparison for each of a plurality of tasks.
  • the display form changing unit 318 displays one or more dissociated tasks on the display unit in a display form different from that of other tasks.
  • the display form changing unit 318 highlights the row corresponding to the divergence task by changing the style such as coloring.
  • the real signal extraction unit 321 extracts a real control signal corresponding to one or more dissociation tasks from the real information database 313. For example, the real signal extraction unit 321 extracts a real control signal corresponding to one or more dissociation tasks from the real information database 313 based on the execution start time and the execution completion time in the first timeline. More specifically, the real signal extraction unit 321 extracts from the real information database 313 the real control signal accumulated in association with the time from the execution start time to the execution completion time of the divergence task in the first timeline.
  • the virtual signal extraction unit 322 extracts the virtual control signal corresponding to one or more dissociation tasks from the virtual information database 315. For example, the virtual signal extraction unit 322 extracts a virtual control signal corresponding to one or more dissociation tasks from the virtual information database 315 based on the execution start time and the execution completion time in the second timeline. More specifically, the virtual signal extraction unit 322 extracts the virtual control signal accumulated in association with the time from the execution start time to the execution completion time of the divergence task from the virtual information database 315 in the second timeline.
  • the signal comparison display unit 323 compares the real control signal extracted by the real signal extraction unit 321 with the virtual control signal extracted by the virtual signal extraction unit 322 and displays it on the display unit (for example, a display device 395 described later). For example, the signal comparison display unit 323 displays the timing chart of the real control signal and the timing chart of the virtual control signal in comparison with each other with the start times of the deviation tasks aligned for each type of control signal.
  • FIG. 17 is a chart illustrating a contrast display between a real control signal and a virtual control signal.
  • This chart includes a contrasting display for signal types A and B.
  • the signal type A is a control signal for the first actuator of the jurisdiction local device 2
  • the signal type B is a control signal for the second actuator of the jurisdiction local device 2.
  • the first actuator and the second actuator cooperate with each other.
  • FIG. 17A is a timing chart of the real control signal A1 for the signal type A
  • FIG. 17B is a timing chart of the virtual control signal A2 corresponding to the signal type A.
  • FIG. 17 (c) is a timing chart of the real control signal B1 for the signal type B
  • FIG. 17 (d) is a timing chart of the virtual control signal B2 corresponding to the signal type B.
  • the divergence between the real control signal B1 and the virtual control signal B2 is the divergence factor between the real execution status information and the virtual execution status information in the divergence task.
  • the difference between the operation of the second actuator in the real space and the operation of the second actuator in the virtual space is the cause of the deviation.
  • the difference between the portion driven by the second actuator and the model information of the portion in the model storage unit 311 is the cause of the deviation.
  • the data management device 300 may further have a progress display unit 324.
  • the progress display unit 324 causes a display unit (for example, a display device 395 described later) to display the progress of a plurality of processes for each of the plurality of works 9 in the real space.
  • the progress display unit 324 causes the display unit to display the task being executed by the production system 1 based on the real execution status information collected by the real information collection unit 312.
  • FIG. 18 is a diagram showing an example of displaying the progress of a plurality of processes.
  • the progress display unit 324 displays the process for each of a plurality of works in a flowchart, and highlights the task being executed by the production system 1 in each flowchart. From left to right, the chart of FIG. 18 shows a flow chart of a process for work A, a flow chart of a process for work B, a flow chart of a process for work C, a flow chart of a process for work D, and a flow chart of a process for work E.
  • the data management device 300 may further include a program acquisition unit 331, a parameter acquisition unit 332, a program generation unit 333, and a program distribution unit 335 as functional blocks.
  • the program acquisition unit 331 acquires the task program 130 of the working task registered by teaching in each local controller 100, and stores it in the task program storage unit 411 of the virtual local controller 400. After teaching the working task, the execution conditions of the working task may be undecided. For example, the condition header 131 in the task program 130 may be blank.
  • the parameter acquisition unit 332 acquires one or more parameters stored in the parameter holding unit 112 in each local controller 100 and stores them in the parameter holding unit 412 of the virtual local controller 400.
  • the program generation unit 333 generates one or more air cut tasks based on the working task acquired by the program acquisition unit 331 and the model information stored in the model storage unit 311, and stores the air cut task in the task program storage unit 411.
  • the program generation unit 333 adds a waypoint that can avoid a collision with a peripheral object between the start point and the end point of the air cut task, so that the collision with the peripheral object occurs over the entire area from the start point to the end point. Generate an air cut task by repeating until it can be avoided.
  • the program generation unit 333 may generate the above-mentioned air cut task for all combinations of two working tasks that are expected to be sequentially executed in a plurality of working tasks stored in the task program storage unit 411.
  • the program generation unit 333 (execution condition generation unit) generates at least a part of the above one or more execution conditions based on the operation of a plurality of virtual local devices in the virtual space. For example, the program generation unit 333 generates an executionability condition based on the environment information stored in the virtual information database 315.
  • the program generation unit 333 may use one of the virtual local devices (first virtual local device) and another virtual local device (second virtual local device) based on the environment information stored in the virtual information database 315.
  • the executionability condition of the task of the first virtual local device and the executionability condition of the second virtual local device are generated so as to avoid the collision in the virtual space.
  • a plurality of tasks are a first robot task executed by a robot (for example, robot 2B, 2C or mobile robot 2D) and a second robot executed by a second robot (for example, robot 2B, 2C or mobile robot 2D).
  • the program generation unit 333 determines whether or not the first robot task can be executed so as to avoid a collision between the virtual robot corresponding to the robot and the second virtual robot corresponding to the second robot in the virtual space. And the execution enablement / non-executability condition of the second robot task are generated.
  • the program generation unit 333 derives an overlapping area between the operation area of the virtual robot that executes the first robot task and the operation area of the second virtual robot that executes the second robot task, and the second virtual robot uses the second virtual robot. Generates the executeability condition of the first robot task so as to include that it is not located in the overlap area, and generates the executeability condition of the second robot task so as to include that the first virtual robot is not located in the overlap area. ..
  • the program generation unit 333 registers the generated executionability condition in the condition header 131 of the task program 130 of the corresponding task.
  • the program generation unit 333 changes at least a part of the execution conditions so as to shorten the execution time of the plurality of processes in the virtual space when a plurality of virtual local devices operate based on the generated execution conditions. May be good. For example, the program generation unit 333 randomly changes the priority combination that determines the priority of each of the plurality of tasks, registers each of the priority combinations in the condition header 131 of the corresponding task program 130, and changes the priority combination. Evaluating the execution time of multiple processes in the priority combination is repeated. The program generation unit 333 adopts the priority combination that shortens the execution time of the plurality of processes, and registers each of the adopted priority combinations in the condition header 131 of the corresponding task program 130.
  • the program distribution unit 335 outputs the generated program of the task program storage unit 411 to the corresponding local controller 100 and stores it in the task program storage unit 111 of the local controller 100. For example, the program distribution unit 335 outputs the generated program to the corresponding local controller 100 via the host controller 200.
  • the data management device 300 may further include a virtual adjustment unit 341, a real adjustment unit 342, a state change detection unit 343, a reproduction unit 344, and an abnormality detection unit 345.
  • the virtual adjustment unit 341 is a model of a plurality of virtual local devices stored in the model storage unit 311 based on at least one of the real control signal extracted by the real signal extraction unit 321 and the virtual control signal extracted by the virtual signal extraction unit 322. Adjust the parameters of.
  • the real control signal extracted by the real signal extraction unit 321 is referred to as an "extracted real control signal”
  • the virtual control signal extracted by the virtual signal extraction unit 322 is referred to as an "extracted virtual control signal”.
  • the virtual adjustment unit 341 changes the parameters of the model of the corresponding virtual local device so that the control signal of the virtual local controller 400 approaches the extracted real control signal.
  • the virtual adjustment unit 341 changes the parameters of the model of the corresponding virtual local device so as to reduce the difference between the extracted real control signal and the extracted virtual control signal.
  • a specific example of changing the parameters of the virtual local device model is shown below.
  • Example 1) Change the object information such as the arrangement, structure, dimensions of each part, and mass of each part.
  • Example 2) Change the standard time according to the operating time length of the local device 2 according to the control command.
  • the real adjustment unit 342 adjusts the control parameters (parameters of the parameter holding unit 112) of the plurality of local controllers 100 based on at least one of the extracted real control signal and the extracted virtual control signal. For example, the real adjustment unit 342 changes the parameter of the corresponding local controller 100 so that the control signal of the local controller 100 approaches the extracted virtual control signal. For example, the real adjustment unit 342 changes parameters such as the position control gain, the speed control gain, and the current control gain so as to reduce the difference between the extracted real control signal and the extracted virtual control signal. .. When the real adjustment unit 342 changes the parameter of the parameter holding unit 112, the parameter acquisition unit 332 may acquire the changed parameter from the parameter holding unit 112 and register it in the parameter holding unit 412.
  • the real adjustment unit 342 changes the parameter of the parameter holding unit 112 to reduce the difference between the extracted real control signal and the extracted virtual control signal
  • the changed parameter is the parameter holding unit.
  • the virtual adjustment unit 341 may further change the parameters of the model of the virtual local device so as to reduce the enlarged difference again. As a result, the change of the local device 2 is reflected in the parameters of the model of the corresponding virtual local device.
  • the state change detection unit 343 detects the state change of at least one of the virtual local device 2 and the device in which the virtual local device 2 cooperates, based on at least one of the extracted real control signal and the extracted virtual control signal. ..
  • Specific examples of the state change include a change in responsiveness to a control command, a change in tracking accuracy to a control command, and the like.
  • Factors that change the responsiveness include an increase in internal impossibility due to an increase in friction and the like.
  • Factors that change the tracking accuracy include the expansion of rattling of moving parts.
  • the reproduction unit 344 controls the operation of the local device 2 in charge of executing the task, at least based on the real control signal corresponding to the task in which the state change occurs. Let the robot reproduce it.
  • the task in which the state change occurs is referred to as a "change occurrence task”.
  • the reproduction unit 344 generates a reproduction video of the operation of the local device 2 that executes the change generation task based on the model of the virtual local device stored in the model storage unit 311 and the real control signal corresponding to the change generation task. Then, it is displayed on a display unit (for example, a display device 395 described later) or the like.
  • the reproduction unit 344 may have the jurisdiction virtual local device reproduce the operation of the jurisdiction local device 2 based on the real control signal for the tasks before and after the change generation task.
  • the data management device 300 may further include an abnormality detection unit 345.
  • the abnormality detection unit 345 detects an abnormality in at least one of the jurisdiction local device 2 and the device in which the jurisdiction local device 2 cooperates, based on an alarm signal or the like generated by the host controller 200.
  • the reproduction unit 344 reproduces the operation of at least one of the jurisdiction local devices 2 before and after the time when the abnormality occurs in the jurisdiction virtual local device based on the real control signal. You may let me.
  • the data management device 300 may further include a sensor information processing unit 351 and an information updating unit 352.
  • the sensor information processing unit 351 performs predetermined processing on the sensor information acquired from the external sensor 5.
  • the predetermined processing include work information such as the type, position, and posture of the work 9, the position of the local device 2, and the local device 2 based on the image information acquired from the camera, which is an example of the external sensor 5.
  • Examples thereof include a process of extracting device information such as an operating state and an approach state (composite information of work information and device information) of the local device 2 to the work 9.
  • the information update unit 352 updates the latest environmental information in the real information database 313 based on the processing result of the sensor information processing unit 351.
  • the real information collection unit 312 updates the environment information of the environment information storage unit 221 of the host controller 200 according to the update result. As a result, the information processing load on the host controller 200 can be reduced, and synchronous communication resources and the like on the host controller 200 can be saved.
  • FIG. 22 is a block diagram illustrating the hardware configuration of the control system 3.
  • the host controller 200 has a circuit 290.
  • Circuit 290 includes one or more processors 291 and memory 292, storage 293, communication ports 294, 295, and input / output ports 296.
  • the storage 293 has a computer-readable storage medium, such as a non-volatile semiconductor memory.
  • the storage 293 transmits an execution command for the next task to the local controller 100 based on a process including a plurality of tasks for the work 9 and progress information of the process, and stores the environment information in the environment information storage unit 221.
  • the host controller 200 is to update the environment information according to the operation executed by the local device 2 by the local controller 100 based on the execution command and the environment information of the environment information storage unit 221. It remembers the program to be executed.
  • the storage 293 stores a program for configuring each of the above-mentioned functional blocks in the host controller 200.
  • the memory 292 temporarily stores the program loaded from the storage medium of the storage 293 and the calculation result by the processor 291.
  • the processor 291 constitutes each functional block of the host controller 200 by executing the above program in cooperation with the memory 292.
  • the communication port 294 communicates with the local controller 100 via the first network line NW1 according to a command from the processor 291.
  • the communication port 295 communicates with the data management device 300 via the second network line NW2 according to the command from the processor 291.
  • the input / output port 296 inputs / outputs information to / from the external sensor 5 according to a command from the processor 291.
  • the local controller 100 has a circuit 190.
  • the circuit 190 includes one or more processors 191 and a memory 192, a storage 193, a communication port 194, and a driver circuit 195.
  • the storage 193 has a computer-readable storage medium, such as a non-volatile semiconductor memory.
  • the storage 193 stores in the command buffer 113 the execution command of the next task transmitted by the host controller 200 based on the process including a plurality of tasks for the work 9 and the progress information of the process, and the task by the local device 2. Based on the environment information updated by the host controller 200 and the execution command according to the execution of, the local device 2 is made to execute the next task, and the execution status of the next task is transmitted to the host controller 200. Is stored in the program for causing the local controller 100 to execute the above.
  • the storage 193 stores a program for configuring each of the above-mentioned functional blocks in the local controller 100.
  • the memory 192 temporarily stores the program loaded from the storage medium of the storage 193 and the calculation result by the processor 191.
  • the processor 191 constitutes each functional block of the local controller 100 by executing the above program in cooperation with the memory 192.
  • the communication port 194 communicates with the host controller 200 via the first network line NW1 according to a command from the processor 191.
  • the driver circuit 195 outputs drive power to the local device 2 according to a command from the processor 191.
  • the data management device 300 has a circuit 390.
  • the circuit 390 includes one or more processors 391, a memory 392, a storage 393, a communication port 394, a display device 395, and an input device 396.
  • the storage 393 has a computer-readable storage medium, such as a non-volatile semiconductor memory.
  • the storage 393 collects real execution status information representing the execution status of each of the plurality of tasks by the local controller 100, and collects virtual execution status information representing the execution status of each of the plurality of tasks by the virtual local controller 400.
  • a program for causing the data management device 300 to execute the extraction of one or more dissociated tasks in which the real execution status information and the virtual execution status information deviate from the plurality of tasks is stored.
  • the storage 393 stores a program for configuring each of the above-mentioned functional blocks in the data management device 300.
  • the memory 392 temporarily stores the program loaded from the storage medium of the storage 393 and the calculation result by the processor 391.
  • the processor 391 constitutes each functional block of the data management device 300 by executing the above program in cooperation with the memory 392.
  • the communication port 394 communicates with the host controller 200 via the second network line NW2 according to a command from the processor 391.
  • the display device 395 and the input device 396 function as a user interface of the data management device 300.
  • the display device 395 includes, for example, a liquid crystal monitor and is used for displaying information to the user.
  • the input device 396 is, for example, a keypad or the like, and acquires input information by the user.
  • the display device 395 and the input device 396 may be integrated like a so-called touch panel.
  • the display device 395 and the input device 396 may be provided in an external device connected to the data management device 300, or may be incorporated in the data management device 300.
  • circuits 190, 290, and 390 are not necessarily limited to those that configure each function by a program.
  • the circuits 290, 390, and 490 may be configured with at least a part of functions by a dedicated logic circuit or an ASIC (Application Specific Integrated Circuit) that integrates the dedicated logic circuit.
  • Each of the local controller 100, the host controller 200, and the data management device 300 may be composed of a plurality of computers capable of communicating with each other, and each computer may have a circuit.
  • the data management device 300 may be composed of a plurality of computers including a data collection device and a simulation device. In this case, each functional block of the above-mentioned data management device 300 may be distributed and configured in a plurality of computers.
  • a virtual local controller 400, a virtual host controller 500, a model storage unit 311, a program acquisition unit 331, a program distribution unit 335, a program generation unit 333, and a parameter acquisition unit 332 are configured in a simulation device, and a real information collection unit 312 is configured.
  • the data collection device includes 323, progress display unit 324, virtual adjustment unit 341, real adjustment unit 342, state change detection unit 343, reproduction unit 344, abnormality detection unit 345, sensor information processing unit 351 and information update unit 352. May be.
  • the data acquisition device may further collect and store the task program 130 and control parameters of each local controller 100, and further distribute the task program 130 to each local controller 100.
  • the program acquisition unit 331 may acquire the task program 130 from the local controller 100 via the data acquisition device.
  • the parameter acquisition unit 332 may acquire control parameters from the local controller 100 via the data acquisition device.
  • the program distribution unit 335 may output the generated program to the local controller 100 via the data acquisition device.
  • the simulation device is configured in one computer by the program that summarizes the functions as the simulation device, and the data collection device is configured in the same computer by the program that summarizes the functions as the data collection device. You may be.
  • Control procedure As an example of the control method, a control procedure performed by the control system 3 is shown.
  • the execution command of the next task is transmitted to the local controller 100 based on the process including a plurality of tasks for the work 9 and the progress information of the process, and the environment information is transmitted to the environment information storage unit 221. It includes storing, updating the environment information according to the operation executed by the local controller 100 in the local device 2 based on the execution command and the environment information of the environment information storage unit 221.
  • control procedure is to store the execution command of the next task transmitted by the host controller 200 based on the process including a plurality of tasks for the work 9 and the progress information of the process in the command buffer, and the local device 2. Based on the environment information updated by the host controller 200 according to the execution of the task and the execution command, the local device 2 is made to execute the next task, and the execution status of the next task is transmitted to the host controller 200. ,including.
  • this control procedure causes the local device 2 to execute a plurality of tasks included in the process for the work 9 in the real space, and causes the virtual local device to execute a plurality of tasks in the virtual space. That is, collecting real execution status information representing the execution status of each of the plurality of tasks by the local controller 100, and collecting virtual execution status information representing the execution status of each of the plurality of tasks by the virtual local controller 400. It includes extracting one or more divergent tasks in which the real execution status information and the virtual execution status information are diverged from a plurality of tasks.
  • control procedure will be illustrated in detail by dividing it into a progress management procedure executed by the host controller 200, a control procedure executed by the local controller 100, and a data management procedure performed by the data management device 300. At least, the progress management procedure executed by the host controller 200 and the control procedure executed by the local controller 100 are executed in parallel.
  • step S01 the order acquisition unit 212 waits for the acquisition of the production order from the production control controller 4.
  • step S02 the process allocation unit 213 allocates a process to the work 9 designated by the production order and stores it in the process storage unit 214.
  • step S03 the command output unit 215 outputs an execution command for the next task based on the process stored in the process storage unit 214 and the progress information of the process.
  • the command output unit 215 outputs a plurality of execution commands for the next task for each of the plurality of processes.
  • step S04 the environment update unit 222 acquires the status information of the local device 2 from each of the plurality of local controllers 100, acquires the detection result of the external sensor 5, and obtains the environment information based on the status information and the detection result. Update.
  • step S05 the progress update unit 216 updates the progress information of the process storage unit 214 in response to the task completion notification included in the status information acquired in step S04. If the status information does not include a task completion notification, the progress information will not change.
  • step S06 the command output unit 215 confirms whether the process assigned to the work 9 has been completed in the process storage unit 214. For example, the command output unit 215 confirms whether all the tasks in the process storage unit 214 have been completed.
  • step S06 If it is determined in step S06 that there are still uncompleted tasks, the host controller 200 returns the process to step S03. After that, the host controller 200 repeats steps S03 to S06 in, for example, a synchronous communication cycle having a predetermined cycle until all the tasks in the process storage unit 214 are completed. If it is determined in step S06 that all the tasks have been completed, the host controller 200 returns the process to step S01. The host controller 200 repeatedly executes the above processing.
  • step S11 the selection unit 115 waits for the execution command of one or more next tasks to be accumulated in the command buffer 113.
  • step S12 the environment information acquisition unit 114 acquires the environment information stored in the environment information storage unit 221.
  • the selection unit 115 confirms whether or not each of the one or more next tasks can be executed based on the execution conditions of each of the one or more next tasks and the environment information of the environment information storage unit 221. For example, the selection unit 115 confirms whether the environment information satisfies the execution feasibility condition of each of the one or more next tasks. In step S14, the selection unit 115 confirms whether or not the next task that can be executed exists.
  • step S14 If it is determined in step S14 that there is no next task that can be executed, the local controller 100 returns the process to step S11. After that, steps S11 to S14 are repeated in a communication cycle having a predetermined cycle until any of the next tasks can be executed.
  • the communication cycle may be synchronized with the above-mentioned synchronous communication cycle.
  • step S14 When it is determined in step S14 that the next task that can be executed exists, the local controller 100 executes steps S15, S16, S17, and S18.
  • step S15 the selection unit 115 selects the next task having the highest priority among the next tasks that can be executed.
  • the next task selected by the selection unit 115 is referred to as a "selected task”.
  • step S16 the control unit 116 causes the local device 2 under the jurisdiction to execute one control cycle of the selected tasks.
  • step S17 the status output unit 117 outputs the status information of the jurisdiction local device 2 to the host controller 200.
  • step S18 the control unit 116 confirms whether or not the execution of the selected task is completed.
  • step S18 If it is determined in step S18 that the execution of the selected task has not been completed, the local controller 100 returns the process to step S16. After that, the local controller 100 repeats steps S16 to S18 in a control cycle having a predetermined cycle until the execution of the selected task is completed.
  • the control cycle may be synchronized with the synchronous communication cycle.
  • step S19 the status output unit 117 includes the completion notification of the selected task in the status information and outputs it to the host controller 200. After that, the local controller 100 returns the process to step S11. The local controller 100 repeats the above processing.
  • the control procedure may further include adjusting the selection timing of the next task based on the above waiting time.
  • FIG. 25 is a flowchart illustrating a control procedure including adjustment of the selection timing of the next task based on the waiting time.
  • the local controller 100 first executes steps S21 to S24 similar to steps S11 to S14.
  • the selection unit 115 waits for the execution command of one or more next tasks to be accumulated in the command buffer 113.
  • the environment information acquisition unit 114 acquires the environment information stored in the environment information storage unit 221.
  • step S23 the selection unit 115 confirms whether or not each of the one or more next tasks can be executed based on the execution conditions of each of the one or more next tasks and the environment information of the environment information storage unit 221. For example, the selection unit 115 confirms whether the environment information satisfies the execution feasibility condition of each of the one or more next tasks. In step S24, the selection unit 115 confirms whether or not the next task that can be executed exists.
  • step S24 If it is determined in step S24 that the next task that can be executed does not exist, the local controller 100 returns the process to step S21. If it is determined in step S24 that the next task that can be executed exists, the local controller 100 executes step S25. In step S25, whether or not the selection timing adjusting unit 121 has a task that cannot be executed at the present time but has a higher priority than the next task that can be executed (hereinafter, this is referred to as a “selection candidate task”). Check if.
  • step S26 the selection timing adjusting unit 121 confirms whether the waiting time until the selection candidate task can be executed exceeds a predetermined threshold value.
  • the waiting time there is a waiting time until the completion of the machine task executed by the other local device 2 before the selection candidate task.
  • step S26 If it is determined in step S26 that the waiting time until the selection candidate task becomes executable does not exceed a predetermined threshold value, the local controller 100 does not select the next executable task, and processes the process in step S22. return. As a result, the selection timing of the next task becomes after the lapse of the above waiting time. After the waiting time has elapsed, the above-mentioned selection candidate task will be added to the next executable task.
  • step S26 If it is determined in step S26 that the waiting time until the selection candidate task can be executed exceeds a predetermined threshold value, the local controller 100 executes step S27. If it is determined in step S25 that the selection candidate task does not exist, the local controller 100 executes step S27 without executing step S26. In step S27, the selection unit 115 selects the next task having the highest priority among the next tasks that can be executed. Hereinafter, the next task selected by the selection unit 115 is referred to as a "selected task".
  • step S28 the control unit 116 causes the jurisdiction local device 2 to execute one control cycle of the selected tasks.
  • step S29 the status output unit 117 outputs the status information of the jurisdiction local device 2 to the host controller 200.
  • step S31 the control unit 116 confirms whether or not the execution of the selected task is completed.
  • step S31 If it is determined in step S31 that the execution of the selected task has not been completed, the local controller 100 returns the process to step S28. After that, the local controller 100 repeats steps S28 to S31 in a control cycle having a predetermined cycle until the execution of the selected task is completed.
  • the control cycle may be synchronized with the synchronous communication cycle.
  • step S31 If it is determined in step S31 that the execution of the selected task is completed, the local controller 100 executes step S32.
  • step S32 the status output unit 117 includes the completion notification of the selected task in the status information and outputs it to the host controller 200. After that, the local controller 100 returns the process to step S21. The local controller 100 repeats the above processing.
  • FIG. 26 is a flowchart illustrating a control procedure including interruption of a running task.
  • FIG. 26 shows a procedure from the start of execution of the selected task to the output of the task completion notification among the control procedures.
  • the local controller 100 first executes steps S41, S42, and S43.
  • step S41 the control unit 116 causes the jurisdiction local device 2 to execute one control cycle of the selected tasks, as in step S16.
  • step S42 the status output unit 117 outputs the status information of the jurisdiction local device 2 to the host controller 200.
  • step S43 the control unit 116 confirms whether or not the execution of the selected task is completed.
  • step S44 the environment information acquisition unit 114 acquires the environment information stored in the environment information storage unit 221.
  • step S45 the selection unit 115 confirms whether or not each of the one or more next tasks can be executed based on the execution conditions of each of the one or more next tasks and the environmental information of the environment information storage unit 221. For example, the selection unit 115 confirms whether the environment information satisfies the execution feasibility condition of each of the one or more next tasks.
  • step S46 the selection unit 115 confirms whether or not the next task that can be executed exists.
  • the next task that can be executed is referred to as a "replacement candidate task".
  • step S46 If it is determined in step S46 that the next task that can be executed exists, the local controller 100 executes step S47.
  • step S47 the selection unit 115 confirms whether or not the priority of the replacement candidate task is higher than the priority of the task being executed.
  • step S48 the selection unit 115 interrupts the execution of the selected task and causes the selection unit 115 to select the replacement candidate task, so that the selection unit 115 selects the replacement candidate task after the selected task is completed. Check if the execution time of the process can be shortened.
  • first case the case where the execution of the selected task is interrupted and the selection unit 115 selects the replacement candidate task.
  • second case The case where the selection unit 115 selects the replacement candidate task after the selected task is completed.
  • the selection unit 115 determines whether the remaining time of the selected task exceeds a predetermined threshold value. May be confirmed.
  • step S48 If it is determined in step S48 that the execution time of the plurality of processes can be shortened even in the first case as compared with the second case, the local controller 100 returns the process to step S42. For example, if the remaining time of the selected task is equal to or less than a predetermined threshold value, the local controller 100 returns the process to step S42. Even if it is determined in step S46 that there is no next task that can be executed, or if it is determined in step S47 that the priority of the replacement candidate task is not higher than the priority of the task being executed, the local controller 100 steps the process. Return to S42. After that, the selected task is executed until the selected task is completed unless the next task with higher priority can be executed.
  • step S49 the status output unit 117 includes the completion notification of the selected task in the status information and outputs it to the host controller 200.
  • step S48 if it is determined that the execution time of a plurality of processes can be shortened as compared with the second case according to the first case, the local controller 100 executes steps S51, S52, S53, S54, and S55.
  • the interruption unit 122 causes the control unit 116 to interrupt the task being executed.
  • the interruption unit 122 may return the jurisdiction local device 2 to the state before the start of the interrupted task by the control unit 116.
  • the interruption unit 122 causes the selection unit 115 to select a replacement candidate task.
  • the replacement candidate task is referred to as a "replacement completed task".
  • step S53 the control unit 116 causes the local device 2 under the jurisdiction to execute one control cycle of the replaced tasks.
  • step S54 the status output unit 117 outputs the status information of the jurisdiction local device 2 to the host controller 200.
  • step S55 the control unit 116 confirms whether or not the execution of the replaced task has been completed.
  • step S55 If it is determined in step S55 that the execution of the replaced task has not been completed, the local controller 100 returns the process to step S53. After that, the local controller 100 repeats steps S53 to S55 in a control cycle having a predetermined cycle until the execution of the selected task is completed.
  • the control cycle may be synchronized with the synchronous communication cycle.
  • step S55 When it is determined in step S55 that the execution of the replaced task is completed, the local controller 100 executes step S56.
  • step S56 the status output unit 117 includes the completion notification of the replaced task in the status information and outputs it to the host controller 200. This completes the procedure up to the task completion notification.
  • Data management procedure The data management procedure executed by the data management device 300 is roughly classified into a comparison procedure, a program generation procedure, an adjustment procedure, and an environment information update procedure.
  • the comparison procedure, the program generation procedure, and the adjustment procedure will be illustrated in detail.
  • the comparison procedure includes a procedure for collecting real information, a procedure for collecting virtual information, and a procedure for extracting a divergence task.
  • FIG. 27 is a flowchart illustrating a procedure for collecting real information. As shown in FIG. 27, the data management device 300 executes steps S61, S62, S63, and S64 in order. In step S61, the real information collection unit 312 waits for the host controller 200 to start executing the process according to the production order.
  • step S62 the real information collection unit 312 acquires real execution status information representing the execution status of each of the plurality of tasks by the local controller 100 from the process storage unit 214 and stores it in the real information database 313.
  • the real information collecting unit 312 collects real execution status information including the execution start time and the execution completion time of each of the plurality of tasks in the first timeline.
  • the real information collecting unit 312 acquires the environmental information including the real control signal from the environmental information storage unit 221 and stores it in the real information database 313.
  • step S63 the progress display unit 324 causes the display unit to display the task being executed by the production system 1 based on the real execution status information acquired by the real information collection unit 312.
  • step S64 the real information collection unit 312 confirms whether the process execution by the host controller 200 is completed.
  • step S64 If it is determined in step S64 that the process execution by the host controller 200 has not been completed, the data management device 300 returns the process to step S62. After that, the data management device 300 repeats acquisition / accumulation of real execution status information and environment information and display of the task being executed until the execution of the process by the host controller 200 is completed. When it is determined in step S64 that the execution of the process by the host controller 200 is completed, the procedure for collecting real information is completed.
  • FIG. 28 is a flowchart illustrating the procedure for collecting virtual information.
  • the data management device 300 executes steps S71, S72, and S73 in order.
  • step S71 the virtual information collection unit 314 waits for the virtual host controller 500 to start executing the process according to the production order.
  • the virtual information collection unit 314 acquires virtual execution status information representing the execution status of each of the plurality of tasks by the virtual local controller 400 from the process storage unit 514 and stores it in the virtual information database 315.
  • the virtual information collecting unit 314 collects virtual execution status information including the execution start time and the execution completion time of each of the plurality of tasks in the second timeline. Further, the virtual information collecting unit 314 acquires the virtual environment information including the virtual control signal from the environment information storage unit 521 and stores it in the virtual information database 315.
  • the virtual information collection unit 314 confirms whether or not the execution of the process by the virtual host controller 500 is completed.
  • step S73 If it is determined in step S73 that the process execution by the virtual host controller 500 has not been completed, the data management device 300 returns the process to step S72. After that, the data management device 300 repeatedly acquires and accumulates the virtual execution status information and the virtual environment information until the execution of the process by the virtual host controller 500 is completed. If it is determined in step S73 that the execution of the process by the virtual host controller 500 is completed, the procedure for collecting virtual information is completed.
  • FIG. 29 is a flowchart illustrating the procedure for extracting the divergence task.
  • the data management device 300 first executes steps S81, S82, and S83.
  • step S81 the task comparison unit 316 selects the first task in the process.
  • the task selected by the task comparison unit 316 is referred to as a "comparison target task”.
  • step S82 the task comparison unit 316 extracts the real execution status information of the task to be compared from the real information database 313, extracts the virtual execution status information of the task to be compared from the virtual information database 315, and extracts the real execution status information. Compares with virtual execution status information.
  • step S83 the task comparison unit 316 confirms whether or not there is a discrepancy between the extracted real execution status information and the extracted virtual execution status information.
  • step S84 the task comparison unit 316 adds the comparison target task to the extraction result of the divergence task.
  • step S85 the data management device 300 executes step S85. If it is determined in step S83 that there is no discrepancy between the extracted real execution status information and the extracted virtual execution status information, the data management device 300 executes step S85 without executing step S84. In step S85, the task comparison unit 316 confirms whether the comparison between the real execution status information and the virtual execution status information is completed for all the tasks of the process.
  • step S85 When it is determined in step S85 that a task for which comparison between the real execution status information and the virtual execution status information has not been completed remains in the process, the data management device 300 executes step S886.
  • step S86 the task comparison unit 316 selects the next task to be compared from the process. After that, the data management device 300 returns the process to step S82. After that, the comparison between the real execution status information and the virtual execution status information is repeated for each task until the comparison of all tasks is completed.
  • step S85 When it is determined in step S85 that the comparison between the real execution status information and the virtual execution status information is completed for all the tasks of the process, the procedure for detecting the divergence task is completed.
  • the comparison procedure executed by the data management device 300 may further include a comparison display procedure of the execution status illustrated in FIG.
  • the data management device 300 executes steps S91, S92, and S93 in order.
  • the situation comparison display unit 317 sets the real execution status information of each of the plurality of tasks collected by the real information collection unit 312 and the virtual execution status information of each of the plurality of tasks collected by the virtual information collection unit 314.
  • This comparison display screen includes style data that defines the display form of the real execution status information and the virtual execution status information for each of a plurality of tasks.
  • step S92 the display form changing unit 318 changes the display form of one or more dissociated tasks in the style data to the display form of another task.
  • step S93 the situation comparison display unit 317 causes the display unit to display the comparison display screen whose style data has been changed by the display form changing unit 318. This completes the execution status comparison display procedure.
  • the comparison procedure may further include the control signal extraction procedure illustrated in FIG. 31.
  • the data management device 300 first executes steps S101, S102, S103, and S104.
  • step S101 the real signal extraction unit 321 selects the first dissociation task from one or more dissociation tasks extracted by the task comparison unit 316.
  • the selected divergence task is referred to as a "selected divergence task”.
  • step S102 the real signal extraction unit 321 extracts the real control signal corresponding to the selected divergence task from the real information database 313.
  • step S103 the virtual signal extraction unit 322 extracts the virtual control signal corresponding to the selected divergence task from the virtual information database 315.
  • step S104 the real signal extraction unit 321 confirms whether or not the extraction of the real control signal and the virtual control signal is completed for all of the deviation tasks of one or more.
  • step S105 the real signal extraction unit 321 selects the next dissociation task from one or more dissociation tasks. After that, the data management device 300 returns the process to step S102. After that, the data management device 300 repeats the extraction of the real control signal and the virtual control signal for all of the one or more dissociation tasks until the extraction of the real control signal and the virtual control signal is completed.
  • step S104 the extraction of the real control signal and the virtual control signal is completed for all of the deviation tasks of 1 or more, the control signal extraction procedure is completed.
  • the comparison procedure may further include a comparison display procedure for the control signal illustrated in FIG. 32.
  • the data management device 300 executes steps S111, S112, and S113 in order.
  • the signal contrast display unit 323 selects any one or more dissociation tasks based on the user input to the input device 396 and the like.
  • the signal contrast display unit 323 selects one or more of the dissociation tasks based on the input for selecting the highlighted dissociation task on the execution status comparison display screen.
  • the selected divergence task is referred to as a "display target divergence task".
  • the signal comparison display unit 323 corresponds to the display target deviation task and the real control signal extracted by the real signal extraction unit 321 and the display target deviation task is associated with the virtual control extracted by the virtual signal extraction unit 322. Generate a signal comparison display screen that displays the signal in comparison for each type of control signal. In step S113, the signal comparison display unit 323 causes the display unit to display the signal comparison display screen. This completes the control signal comparison display procedure.
  • the data management device 300 executes steps S121, S122, S123, S124, S125, S126, and S127 in order.
  • step S121 the program acquisition unit 331 acquires the task program 130 of the working task registered by teaching in each local controller 100, and stores it in the task program storage unit 411 of the virtual local controller 400.
  • step S122 the parameter acquisition unit 332 acquires one or more parameters stored in the parameter holding unit 112 in each local controller 100 and stores them in the parameter holding unit 412 of the virtual local controller 400.
  • the program generation unit 333 generates one or more air cut tasks based on the working task acquired by the program acquisition unit 331 and the model information stored in the model storage unit 311, and the task program storage unit 411. To memorize.
  • step S124 the process allocation unit 513 allocates a process to the work 9 designated by the production order and stores it in the process storage unit 514.
  • step S125 the data management device 300 generates an execution enablement / non-execution condition. The specific contents of step S125 will be described later.
  • step S126 the data management device 300 generates the priority. The specific contents of step S126 will be described later.
  • step S127 the program distribution unit 335 outputs the generated program of the task program storage unit 411 to the corresponding local controller 100 and stores it in the task program storage unit 111 of the local controller 100. This completes the program generation procedure.
  • FIG. 34 is a flowchart illustrating the procedure for generating the executionability condition in step S125.
  • the data management device 300 executes steps S131, S132, S133, and S134 in order.
  • the virtual host controller 500 and the virtual local controller 400 cause a plurality of virtual local devices to execute a plurality of tasks in the virtual space based on the plurality of task programs 130 of the task program storage unit 411.
  • step S132 the program generation unit 333 extracts the overlapping area of the operating range between the virtual local devices based on the virtual environment information stored in the virtual information database 315. For example, the program generation unit 333 calculates an overlapping area between the operating area of the first virtual local device and the operating area of the second virtual local device.
  • step S133 the program generation unit 333 generates conditions for whether or not each of the plurality of tasks can be executed so that two or more virtual local devices do not enter the same overlapping area in the overlapping area. For example, to generate a task execution enablement condition of the first virtual local device so as to include that the second virtual local device is not located in the overlapping area, and to include that the first virtual local device is not located in the overlapping area. Generates a condition for whether or not the task of the second virtual local device can be executed.
  • step S134 the program generation unit 333 registers the generated executionability condition in the condition header 131 of the task program 130 of the corresponding task. This completes the procedure for generating the executionability condition.
  • FIG. 35 is a flowchart illustrating the procedure for generating the priority in step S126.
  • the data management device 300 first executes steps S141, S142, S143, and S144.
  • the program generation unit 333 randomly determines a priority combination that determines the priority of each of the plurality of tasks, and registers each of the tentatively determined priority combinations in the condition header 131 of the corresponding task program 130. do.
  • the virtual host controller 500 and the virtual local controller 400 cause a plurality of virtual local devices to execute a plurality of tasks in the virtual space based on the plurality of task programs 130 of the task program storage unit 411.
  • step S143 the program generation unit 333 evaluates the execution time of a plurality of processes based on the virtual execution status information stored in the virtual information database 315.
  • step S144 the program generation unit 333 confirms whether the number of trials for changing the priority and evaluating the execution time of the plurality of processes has reached a predetermined number.
  • step S145 the program generation unit 333 randomly changes the priority combinations and registers each of the changed priority combinations in the condition header 131 of the corresponding task program 130. After that, the local controller 100 returns the process to step S142. After that, until the number of trials reaches a predetermined number, the change of the priority combination and the evaluation of the execution time of the plurality of processes are repeated.
  • step S144 When it is determined in step S144 that the number of trials has reached a predetermined number, the data management device 300 executes step S146.
  • step S146 the program generation unit 333 adopts the priority combination having the shortest execution time of the plurality of processes in the above trial, and sets each of the adopted priority combinations in the condition header 131 of the task program 130. sign up. This completes the priority generation procedure.
  • step S151 the data management device 300 executes steps S151, S152, S153, S154, and S155 in order.
  • step S151 the data management device 300 executes the above comparison procedure.
  • step S152 the data management device 300 adjusts the parameters of the models of the plurality of virtual local devices based on at least one of the real control signal and the virtual control signal extracted in the comparison procedure of step S151. The specific processing content of step S152 will be described later.
  • step S153 the data management device 300 waits for the elapse of a predetermined period.
  • step S154 the data management device 300 executes the above comparison procedure.
  • step S155 the data management device 300 uses the control parameters (parameters of the parameter holding unit 112) of the plurality of local controllers 100 based on at least one of the real control signal and the virtual control signal extracted in the comparison procedure of step S154. To adjust. The specific processing content of step S155 will be described later. This completes the adjustment procedure.
  • FIG. 37 is a flowchart illustrating the procedure for adjusting the parameters of the model in step S152.
  • the data management device 300 first executes steps S161, S162, S163, and S164.
  • the virtual adjustment unit 341 selects the first dissociation task from one or more dissociation tasks extracted by the task comparison unit 316.
  • the selected divergence task is referred to as a "virtual adjustment divergence task”.
  • step S162 the virtual adjustment unit 341 models the virtual local device that causes the deviation between the real execution status information and the virtual execution status information based on the real control signal and the virtual control signal corresponding to the virtual adjustment deviation task. Derivation of conversion error.
  • step S163 the virtual adjustment unit 341 corrects the model parameters stored in the model storage unit 311 based on the modeling error derived in step S162.
  • step S164 the virtual adjustment unit 341 confirms whether or not the adjustment of the model parameters has been completed for all of the deviation tasks of 1 or more.
  • step S165 the virtual adjustment unit 341 selects the next dissociation task from one or more dissociation tasks. After that, the data management device 300 returns the process to step S161. After that, the data management device 300 repeats the adjustment of the parameters of the model for all of the one or more deviation tasks until the adjustment of the model is completed.
  • step S164 the adjustment of the model parameters has been completed for all of the deviation tasks of 1 or more, the model parameter adjustment procedure is completed.
  • FIG. 38 is a flowchart illustrating the procedure for adjusting the control parameters in step S153.
  • the data management device 300 first executes steps S171, S172, and S173.
  • the real adjustment unit 342 selects the first dissociation task from one or more dissociation tasks extracted by the task comparison unit 316.
  • the selected divergence task is referred to as a "real adjustment divergence task”.
  • step S172 the real adjustment unit 342 selects a control parameter capable of reducing the deviation between the real execution status information and the virtual execution status information based on the real control signal and the virtual control signal corresponding to the real adjustment deviation task. ..
  • the selected control parameter is referred to as "selected control parameter”.
  • step S173 the real adjustment unit 342 confirms whether or not the difference between the real control signal and the virtual control signal corresponding to the real adjustment deviation task can be suppressed to a desired level by the selected control parameter.
  • step S173 When it is determined in step S173 that the difference between the real control signal and the virtual control signal corresponding to the real adjustment deviation task can be suppressed to a desired level by the selected control parameter, the data management device 300 executes steps S174 and S175. do.
  • step S174 the real adjustment unit 342 changes the selected control parameters so as to suppress the difference between the real control signal and the virtual control signal corresponding to the real adjustment deviation task to a desired level, and corresponds to the change result. It is registered in the parameter holding unit 112 of the local controller 100.
  • step S175 the real adjustment unit 342 confirms whether or not the adjustment of the control parameters is completed for all of the one or more dissociation tasks.
  • step S175 If it is determined in step S175 that there is a deviation task for which the adjustment of the control parameters has not been completed, the data management device 300 executes step S176.
  • step S176 the real adjustment unit 342 selects the next dissociation task from one or more dissociation tasks. After that, the data management device 300 returns the process to step S171. After that, the data management device 300 repeats the adjustment of the control parameters for all of the one or more deviation tasks until the adjustment of the control parameters is completed.
  • step S175 If it is determined in step S175 that the adjustment of the control parameters has been completed for all of the deviation tasks of 1 or more, the adjustment procedure of the control parameters is completed.
  • step S173 the difference between the real control signal and the virtual control signal corresponding to the real adjustment deviation task cannot be suppressed to a desired level by the selected control parameter, the data management device 300 determines in steps S177, S178, Execute S179.
  • step S177 the state change detection unit 343 states at least one of the virtual local device 2 and the device with which the virtual local device 2 cooperates, based on the real control signal and the virtual control signal corresponding to the real adjustment deviation task. Detect changes.
  • step S178 the state change detection unit 343 displays on the display unit that the state change has been detected.
  • step S179 the reproduction unit 344 operates the local device 2 in charge of executing the change generation task based on the real control signal corresponding to the task in which the state change detection unit 343 detects the state change (the change generation task). Reproduce it to the virtual robot under the jurisdiction.
  • the reproduction unit 344 generates a reproduction video of the operation of the local device 2 that executes the change generation task based on the model of the virtual local device stored in the model storage unit 311 and the real control signal corresponding to the change generation task. And display it on the display unit.
  • the data management device 300 cancels the control parameter adjustment procedure.
  • FIG. 39 is a flowchart showing a modified example of the control parameter adjustment procedure.
  • steps S181 to S189 are the same as steps S171 to S179.
  • the adjustment procedure of FIG. 39 further comprises steps S191 to S193 after step S185 to complete the adjustment of the control parameters.
  • the data management device 300 sequentially executes steps S191, S192, and S193.
  • step S191 the parameter acquisition unit 332 acquires the changed control parameter from the parameter holding unit 112 and registers it in the parameter holding unit 412.
  • step S192 the data management device 300 executes the above comparison procedure.
  • step S193 the data management device 300 executes the same adjustment procedure as in step S152.
  • the data management procedure executed by the data management device 300 may further include a reproduction display procedure when an abnormality is detected, in addition to a reproduction display procedure when a state change is detected.
  • FIG. 40 is a flowchart illustrating the reproduction display procedure.
  • the data management device 300 executes steps S201 and S202 in order.
  • step S201 the reproduction unit 344 detects an abnormality of at least one of the jurisdiction local device 2 and the device in which the jurisdiction local device 2 cooperates, based on the alarm signal generated by the host controller 200, by the abnormality detection unit 345. Wait for.
  • step S202 the reproduction unit 344 causes the jurisdiction virtual local device to reproduce the operation of at least one of the jurisdiction local devices 2 before and after the time when the abnormality occurs, based on the real control signal. This completes the reproduction display procedure.
  • the data management device 300 executes steps S211, S212, S213, and S214 in order.
  • the sensor information processing unit 351 acquires the sensor information detected by the external sensor 5.
  • the sensor information processing unit 351 performs predetermined processing on the sensor information acquired from the external sensor 5.
  • the information update unit 352 updates the latest environmental information in the real information database 313 based on the processing result of the sensor information processing unit 351.
  • the real information collection unit 312 updates the environment information of the environment information storage unit 221 of the host controller 200 according to the update result of the latest environment information. This completes the environment information update procedure.
  • the production system 1 outputs the command output unit 215 that outputs the execution command of the next task based on the process including a plurality of tasks for the work 9 and the progress information of the process, and the environment information.
  • the local controller 100 that causes the robots 2B, 2C, and 10 to execute the next task based on the environment information storage unit 221 to be stored, the execution command output from the command output unit 215, and the environment information of the environment information storage unit 221.
  • a robot controller) and an environment update unit 222 that updates the environment information of the environment information storage unit 221 according to the operations of the robots 2B, 2C, and 10.
  • the production system 1 by providing the environmental information to the local controller 100 in addition to the execution command of the next task, it is possible to easily realize the autonomous task execution of the robots 2B, 2C, 10 based on the environmental information. can.
  • This makes it possible to easily realize autonomous execution of individual tasks by the robots 2B, 2C, and 10. Therefore, a simple process of outputting an execution command for the next task based on the progress of a plurality of tasks and updating the environment information according to the operation of the robots 2B, 2C, 10 facilitates the plurality of tasks in an appropriate order. Can be carried out.
  • a plurality of tasks to be executed by the robots 2B, 2C, and 10 can be easily rearranged according to a change in the production plan of the work 9 or a change in the production environment. Therefore, it is effective in improving the flexibility of the production system.
  • the production system 1 may further include a progress update unit 216 that updates progress information according to the execution status of the next task by the robots 2B, 2C, and 10. In this case, appropriate progress management can be continued by updating the progress information according to the execution status of the next task.
  • a progress update unit 216 that updates progress information according to the execution status of the next task by the robots 2B, 2C, and 10. In this case, appropriate progress management can be continued by updating the progress information according to the execution status of the next task.
  • the production system 1 further includes an order acquisition unit 212 for acquiring the production order of the work 9 from the upper production control system, and a process allocation unit 213 for allocating the process to the work 9 designated by the production order, and the command output unit 215. May output an execution command for the next task based on the process assigned by the process allocation unit 213 to the work 9 designated by the production order and the progress information of the process.
  • the process is assigned to the work 9 by the process allocation unit 213, the execution command of the next task based on the progress of the process is output by the command output unit 215, and the next task is the robot based on the execution command and the environment information. It is executed sequentially by 2B, 2C, and 10. Therefore, in the production control system, the production can be controlled by a simple process of allocating the production order to the production system 1.
  • the local controller 100 has a task program storage unit 111 (condition storage unit) that stores one or more predetermined execution conditions for each one or more tasks among a plurality of tasks, and an execution of the next task in the task program storage unit 111. It may have a control unit 116 that causes the robots 2B, 2C, and 10 to execute the next task based on the condition and the environment information of the environment information storage unit 221. In this case, the autonomous operation of the robots 2B, 2C, and 10 can be adjusted according to the progress management by predetermining the execution conditions to be referred to in combination with the environmental information.
  • the process allocation unit 213 allocates a plurality of processes to the plurality of works 9, and each of the plurality of processes includes a plurality of tasks.
  • the command output unit 215 outputs a plurality of next task execution commands for each of a plurality of processes based on a plurality of progress information for each of the plurality of processes, and the local controller 100 stores the execution commands for the plurality of next tasks. Select one of the plurality of next tasks of the command buffer 113 based on the execution conditions of the command buffer 113 and the plurality of next tasks in the task program storage unit 111, and the environment information of the environment information storage unit 221.
  • control unit 116 may cause the robots 2B, 2C, 10 to execute the next task selected by the selection unit 115.
  • the control unit 116 may cause the robots 2B, 2C, 10 to execute the next task selected by the selection unit 115.
  • Each of the one or more execution conditions includes the priority of the corresponding task, and the selection unit 115 determines that two or more next tasks among the plurality of next tasks of the command buffer 113 can be executed. You may select the next task with the highest priority. In this case, it is possible to achieve both flexibility and efficiency by making a more appropriate selection.
  • the plurality of tasks include machine tasks executed by other industrial machines of robots 2B, 2C, 10 and the environmental information includes a waiting time corresponding to the completion time of the machine tasks, and the local controller 100 uses a command buffer.
  • a plurality of next tasks of 113 include a first task that can be executed when a machine task is completed and a second task that can already be executed, the priority of the first task and the second task and the waiting time are set. Based on this, it may further have a selection timing adjusting unit 121 that adjusts the selection timing of the next task by the selection unit. In this case, it is possible to achieve both flexibility and efficiency by making a more appropriate selection.
  • the selection timing adjusting unit 121 sets the selection timing of the next task by the selection unit after the lapse of the waiting time. You may do it. In this case, it is possible to achieve both flexibility and efficiency by making a more appropriate selection.
  • the plurality of next tasks of the command buffer 113 include the first task and the second task having a lower priority than the first task, and the robots 2B, 2C, and 10 are executing the second task.
  • the control unit 116 may further include an interruption unit 122 for interrupting the second task and the selection unit for selecting the first task. In this case, it is possible to achieve both flexibility and efficiency by making a more appropriate selection.
  • the interruption unit 122 may have the selection unit 115 select the first task after the control unit 116 returns the robot to the state before the start of the second task. In this case, even if it is difficult to release the second work during the execution of the second task, the second task can be easily interrupted and the first task can be prioritized.
  • the first task includes the transfer of the first work 9A
  • the second task includes the transfer of the second work 9B
  • the interruption unit 122 is executed by the first task during the execution of the second task by the robots 2B, 2C, 10.
  • the control unit 116 may return the robots 2B, 2C, and 10 to the state before the start of transport of the second work 9B, and then the selection unit 115 may select the first task.
  • the second task can be easily interrupted and the first task can be prioritized.
  • the interruption unit 122 causes the selection unit 115 to select the first task after the completion of the second task, as compared with the case where the control unit 116 suspends the execution of the second task and the selection unit 115 selects the first task. If the execution time of the plurality of processes is shortened, the second task may not be interrupted by the control unit 116. In this case, it is possible to achieve both flexibility and efficiency by making a more appropriate selection.
  • the production system 1 further includes a program generation unit 333 (execution condition generation unit) that generates at least a part of one or more execution conditions based on the operation of the virtual robot corresponding to the robots 2B, 2C, and 10 in the virtual space. You may be. In this case, appropriate execution conditions can be easily generated.
  • a program generation unit 333 execution condition generation unit
  • the program generation unit 333 modifies at least a part of one or more execution conditions so as to shorten the execution time of a plurality of processes in the virtual space when the virtual robot operates based on one or more execution conditions. May be good. In this case, appropriate execution conditions can be easily generated.
  • the production system 1 has a command output unit 515 (virtual command output unit) that outputs an execution command for the next task based on the process and progress information of the process in the virtual space, and an environment information storage that stores virtual environment information.
  • a virtual local that causes a virtual robot to execute the next task in a virtual space based on the execution command output from the unit 521 (virtual environment information storage unit), the command output unit 515, and the virtual environment information of the environment information storage unit 521.
  • a controller 400 virtual robot controller
  • an environment update unit 522 virtual environment update unit that updates the virtual environment information of the environment information storage unit 521 according to the operation of the virtual robot may be further provided.
  • the virtual robot in the virtual space, the virtual robot can be operated under conditions closer to the real space, and appropriate execution conditions can be easily generated.
  • the plurality of tasks include a first robot task executed by the robot 2B and a second robot task executed by the second robot 2C, and the program generation unit 333 includes a virtual robot and a second virtual corresponding to the second robot.
  • the execution condition of the first robot task and the execution condition of the second robot task may be generated so as to avoid a collision with the robot in the virtual space. In this case, execution conditions for collision avoidance can be easily generated.
  • the program generation unit 333 derives an overlapping area between the operating area of the virtual robot that executes the first robot task and the operating area of the second virtual robot that executes the second robot task, and the second virtual robot is in the overlapping area.
  • the execution condition of the first robot task may be generated so as to include not being located in the overlapping area, and the execution condition of the second robot task may be generated to include not being located in the overlapping area. In this case, the execution condition for collision avoidance can be generated more easily.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Factory Administration (AREA)
  • Manipulator (AREA)

Abstract

生産システム1は、ワーク9に対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいて、次タスクの実行指令を出力する指令出力部215と、環境情報を記憶する環境情報格納部221と、指令出力部215から出力された実行指令と、環境情報格納部221の環境情報とに基づいて、ロボット2B,2C,10に次タスクを実行させるローカルコントローラ100と、ロボット2B,2C,10の動作に応じて、環境情報格納部221の環境情報を更新する環境更新部222と、を備える。

Description

生産システム、セルコントローラ、ロボットコントローラ及び制御方法
 本開示は、生産システム、セルコントローラ、ロボットコントローラ及び制御方法に関する。
 特許文献1は、第一コントローラと、第二コントローラと、第三コントローラとを備えるコントロールシステムを開示する。第三コントローラは、第一通信部と、第二通信部とを有する。第三コントローラは、第一制御対象を動作させる第一動作指令を第一通信部により第一コントローラに出力することと、第二制御対象を動作させる第二動作指令を第二通信部により第二コントローラに出力することと、第一制御対象の現在位置に関する情報を第一通信部により第一コントローラから取得することと、第一制御対象の現在位置に関する情報に基づいて、第二動作指令を補正することと、を実行するように構成された制御処理部と、を更に有する。
特開2018-153881号公報
 本開示は、生産システムの柔軟性向上に有効な制御システムを提供する。
 本開示の一側面に係る生産システムは、ワークに対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいて、次タスクの実行指令を出力する指令出力部と、環境情報を記憶する環境情報格納部と、指令出力部から出力された実行指令と、環境情報格納部の環境情報とに基づいて、ロボットに次タスクを実行させるロボットコントローラと、ロボットの動作に応じて、環境情報格納部の環境情報を更新する環境更新部と、を備える。
 本開示の他の側面に係るセルコントローラは、ワークに対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいて、次タスクの実行指令をロボットコントローラに送信する指令出力部と、環境情報を記憶する環境情報格納部と、実行指令と、環境情報格納部の環境情報とに基づいて、ロボットコントローラがロボットに実行させた動作に応じて、環境情報を更新する環境更新部と、を備える。
 本開示の更に他の側面に係るロボットコントローラは、ワークに対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいてセルコントローラが送信した次タスクの実行指令を記憶する指令バッファと、ロボットによるタスクの実行に応じてセルコントローラにより更新される環境情報と、実行指令とに基づいて、次タスクをロボットに実行させる制御部と、次タスクの実行状況をセルコントローラに送信する進捗送信部と、を備える。
 本開示の更に他の側面に係る制御方法は、ワークに対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいて、次タスクの実行指令をロボットコントローラに送信することと、環境情報格納部に環境情報を記憶することと、実行指令と、環境情報格納部の環境情報とに基づいて、ロボットコントローラがロボットに実行させた動作に応じて、環境情報を更新することと、を含む。
 本開示の更に他の側面に係る制御方法は、ワークに対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいてセルコントローラが送信した次タスクの実行指令を指令バッファに記憶することと、ロボットによるタスクの実行に応じてセルコントローラにより更新される環境情報と、実行指令とに基づいて、次タスクをロボットに実行させることと、次タスクの実行状況をセルコントローラに送信することと、を含む。
 本開示によれば、生産システムの柔軟性向上に有効な制御システムを提供することができる。
生産システムの構成を例示する模式図である。 ロボットの構成を例示する模式図である。 上位コントローラ及びローカルコントローラの機能的な構成を示すブロック図である。 ワークに対するプロセスの割り当て結果を例示するテーブルである。 機器情報を例示するテーブルである。 ワーク情報を例示するテーブルである。 実行条件を例示するテーブルである。 指令バッファの内容を例示するテーブルである。 次タスクの選択を例示する模式図である。 次タスクの選択を例示する模式図である。 次タスクの選択を例示する模式図である。 次タスクの選択の変形例を示す模式図である。 次タスクの選択の他の変形例を示す模式図である。 データ管理装置の機能的な構成を示すブロック図である。 データ管理装置の機能的な構成を示すブロック図である。 実行状況の対比表示を例示するテーブルである。 制御信号の対比表示を例示するタイミングチャートである。 実行中のタスクの表示例を示すチャートである。 データ管理装置の変形例を示すブロック図である。 データ管理装置の変形例を示すブロック図である。 データ管理装置の変形例を示すブロック図である。 制御システムのハードウェア構成を例示する図である。 上位コントローラによる進捗管理手順を例示するフローチャートである。 ローカルコントローラによる制御手順を例示するフローチャートである。 制御手順の変形例を示すフローチャートである。 制御手順の他の変形例を示すフローチャートである。 リアル情報収集手順を例示するフローチャートである。 バーチャル情報収集手順を例示するフローチャートである。 乖離タスクの抽出手順を例示するフローチャートである。 実行状況の対比表示手順を例示するフローチャートである。 制御信号の抽出手順を例示するフローチャートである。 制御信号の対比表示手順を例示するフローチャートである。 プログラム生成手順を例示するフローチャートである。 実行可否条件の生成手順を例示するフローチャートである。 優先度の生成手順を例示するフローチャートである。 調整手順を例示するフローチャートである。 モデルパラメータの調整手順を例示するフローチャートである。 制御パラメータの調整手順を例示するフローチャートである。 制御パラメータの調整手順の変形例を示すフローチャートである。 再現表示手順を例示するフローチャートである。 環境情報更新手順を例示するフローチャートである。
 以下、実施形態について、図面を参照しつつ詳細に説明する。説明において、同一要素又は同一機能を有する要素には同一の符号を付し、重複する説明を省略する。
〔生産システム〕
 図1に示す生産システム1は、複数のローカル機器の協調動作によって、ワークの生産を行うシステムである。以下、ワークの生産過程において、各ローカル機器の作業対象となる物体の全てを「ワーク」という。例えば「ワーク」は、生産システム1における最終生産物、最終生産物の部品、及び複数の部品を組み合わせたユニット等を含む。
 協調動作は、少なくとも一つの上記最終生産物を得るための複数の工程を分担するように複数のローカル機器が動作することを意味する。複数のローカル機器は、一つの最終生産物を得るための複数の工程を工程単位で分担するように動作してもよいし、複数の最終生産物を得るための複数の工程を最終生産物単位で分担するように動作してもよい。
 生産システム1は、複数のローカル機器2と、制御システム3とを含む。ローカル機器2は、ワーク9の生産現場においてワーク9に対し直接的に作業を実行する機器である。直接的な作業は、例えば、熱エネルギー、運動エネルギー、位置エネルギー等の何らかのエネルギーをワーク9に付与する作業である。
 複数のローカル機器2のそれぞれは、例えば産業機械である。複数のローカル機器2は、少なくともロボットを含む(少なくとも1つのローカル機器2はロボットである)。また、複数のローカル機器2は、ロボットと協働する産業機械を含む。ロボットと協働する産業機械の具体例としては、他のロボットの他、NC工作機械等が挙げられる。図1に示す複数のローカル機器2は、搬送装置2Aと、ロボット2B,2Cと、移動型ロボット2Dとを含んでいるが、これに限られない。少なくとも1台のロボットを含んでいる限り、ローカル機器2の数及び種類は適宜変更可能である。
 搬送装置2Aは、例えば電動モータ等を動力源としてワーク9を搬送する。搬送装置2Aの具体例としては、ベルトコンベヤ、ローラコンベヤ等が挙げられる。ロボット2B,2C、及び移動型ロボット2Dは、搬送装置2Aが搬送するワーク9に対する作業を行う。ワーク9に対する作業の具体例としては、搬送装置2Aが搬送するワーク9(例えばベースパーツ)に対する他のワーク9(例えばサブパーツ)の組付け、搬送装置2Aが搬送するワーク9におけるパーツ同士の締結(例えばボルト締結)・接合(例えば溶接)、搬送装置2Aの周囲に設置されたNC工作機械へのワーク9の搬入、NC工作機械からのワーク9の搬出等が挙げられる。
 ロボット2B,2Cは、基部11と、先端部18とを有する多関節ロボットである。ロボット2B,2Cは、多関節を複合的に動作させることで、基部11に対する先端部18の位置・姿勢を変更し、先端部18によってワーク9に対する作業を実行する。例えばロボット2B,2Cは、6軸の垂直多関節ロボットであり、図2に示すように、基部11と、旋回部12と、第1アーム13と、第2アーム14と、第3アーム17と、先端部18と、アクチュエータ41,42,43,44,45,46とを有する。基部11は、搬送装置2Aの周囲に設置されている。旋回部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の先端部に接続されている。第3アーム17は、軸線24に交差(例えば直交)する軸線25まわりに揺動するようにアーム端部16の先端部に接続されている。先端部18は、軸線25に交差(例えば直交)する軸線26まわりに旋回するように第3アーム17の先端部に接続されている。先端部18には、例えはハンド、吸着ノズル、溶接トーチ等の作業ツールが取り付けられる。
 このように、ロボット2B,2Cは、基部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を旋回させ、軸線22まわりに第1アーム13を揺動させ、軸線23まわりに第2アーム14を揺動させ、軸線24まわりにアーム端部16を旋回させ、軸線25まわりに第3アーム17を揺動させ、軸線26まわりに先端部18を旋回させる。
 なお、ロボット2B,2Cの具体的な構成は適宜変更可能である。例えばロボット2B,2Cは、上記6軸の垂直多関節ロボットに更に1軸の関節を追加した7軸の冗長型ロボットであってもよく、所謂スカラー型の多関節ロボットであってもよい。
 図1に戻り、移動型ロボット2Dは、自立走行可能な多関節ロボットである。移動型ロボット2Dは、ロボット2B,2Cと同様に構成されたロボット10と、無人搬送車50とを有する。無人搬送車50は、ロボット10を搬送するように自律走行する。無人搬送車50の具体例としては、電動式の所謂AGV(Automated Guided Vehicle)が挙げられる。ロボット10は、多関節を複合的に動作させることで、無人搬送車50に対する先端部18の位置・姿勢を変更し、先端部18によってワーク9に対する作業を実行する。
 生産システム1は、外部センサ5を更に備えてもよい。外部センサ5は、複数のローカル機器2の作業環境の状態(以下、「環境状態」という。)を検出する。外部センサ5の具体例としては、例えば複数のローカル機器2の作業環境を撮影するカメラが挙げられる。外部センサ5は、レーザ光等により、所定位置におけるワーク9の有無を検出するセンサであってもよいし、ワーク9のサイズ等を検出するセンサであってもよい。生産システム1は、複数の外部センサ5を備えてもよい。
 制御システム3は、複数のローカル機器2を制御する。以下、制御システム3の構成を詳細に例示する。
〔制御システム〕
 生産システム1においては、ワーク9の目標生産ペースと、実際のワーク9の生産ペースとに乖離が生じる場合がある。また、ワーク9の目標品質と、実際のワーク9の品質とに乖離が生じる場合がある。以下、これらの乖離を、「生産状況の乖離」という。ワーク9に対するプロセスが複数のタスクを含む場合に、上記生産ペースの乖離、又はワーク9の品質の乖離に基づいて、生産状況の乖離の要因を特定するのは困難である。
 制御システム3は、リアル空間において、ワークに対するプロセスに含まれる複数のタスクを、ローカル機器2に実行させるローカルコントローラ(リアルコントローラ)と、バーチャル空間において、複数のタスクを、バーチャルローカル機器に実行させるバーチャルローカルコントローラ(バーチャルコントローラ)と、ローカルコントローラによる複数のタスクそれぞれの実行状況を表すリアル実行状況情報を収集するリアル情報収集部と、バーチャルローカルコントローラによる複数のタスクそれぞれの実行状況を表すバーチャル実行状況情報を収集するバーチャル情報収集部と、複数のタスクのうち、リアル実行状況情報とバーチャル実行状況情報とが乖離した1以上の乖離タスクを抽出するタスク比較部と、を備える。これにより、複数のタスクごとに、実行状況の乖離を確認できるため、生産状況の乖離の要因特定が容易になる。
 生産システム1においては、生産対象物の変更を含む生産計画の変化への柔軟な適応が求められる場合がある。また、ローカル機器2の種類、台数、配置変更など、生産環境の変化への柔軟な適応も求められる場合がある。これに対し、生産計画の変化及び生産環境の変化に対し、ローカル機器2の自律的な適応を実現することが有効である。しかしながら、実行すべきタスクの特定と、その適切な実行タイミングの特定とをローカルコントローラに行わせるためには、複雑な条件設定が必要となる。複雑な条件設定により自律性を付与したシステムにおいては、当初想定していなかった新たな生産計画、又は生産環境への更なる適応が困難となる。
 これに対し、制御システム3は、ワークに対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいて、次タスクの実行指令を出力する指令出力部と、環境情報を記憶する環境情報格納部と、指令出力部から出力された実行指令と、環境情報格納部の環境情報とに基づいて、ローカル機器2に次タスクを実行させるローカルコントローラと、ローカル機器2の動作に応じて、環境情報格納部の環境情報を更新する環境更新部と、を備えてもよい。環境情報に加え、次タスクの実行指令をローカルトコントローラに提供することによって、ローカルコントローラにおいて次に実行すべきタスクを環境情報に基づき特定する必要がなくなるので、ローカル機器2に自律性を付与するための条件設定が簡素化される。これにより、個々のタスクのローカル機器2による自律的な遂行を容易に実現することができる。このため、複数のタスクの進捗に基づいて次タスクの実行指令を出力し、ローカル機器2の動作に応じて環境情報を更新する簡素な処理によって、複数のタスクを適切な順序で容易に遂行させることができる。このため、生産計画の変化又は生産環境の変化に応じて、個々のローカル機器2に実行させる複数のタスクを容易に組み替えることができる。
 図1に示すように、制御システム3は、複数のローカルコントローラ100と、上位コントローラ200(セルコントローラ)と、データ管理装置300とを有する。複数のローカルコントローラ100は、複数のローカル機器2をそれぞれ制御する。
 複数のローカルコントローラ100のそれぞれは、リアル空間において、ワーク9に対するプロセスに含まれる複数のタスクを、制御対象のローカル機器2(以下、「管轄ローカル機器2」という。)に実行させる。リアル空間は、管轄ローカル機器2が実際に存在する空間である。
 複数のローカルコントローラ100のそれぞれは、複数のタスクごとに、上記環境情報格納部の環境情報に基づいて実行タイミングを調節してもよい。また、ローカルコントローラ100は、上記指令出力部からの実行指令に対応する次タスクを管轄ローカル機器2に実行させてもよい。例えば複数のローカルコントローラ100のそれぞれは、上記実行指令と、上記環境情報とに基づいて、管轄ローカル機器2に上記次タスクを実行させる。例えばローカルコントローラ100は、上記環境情報格納部の環境情報に基づいて実行タイミングを調節しつつ、上記指令出力部からの実行指令に対応する次タスクをローカル機器2に実行させる。
 図示において、制御システム3は、4つのローカルコントローラ100A,100B,100C,100Dを有する。ローカルコントローラ100Aは搬送装置2Aを制御し、ローカルコントローラ100Bはロボット2Bを制御するロボットコントローラであり、ローカルコントローラ100Cはロボット2Cを制御するロボットコントローラであり、ローカルコントローラ100Dは移動型ロボット2Dを制御するロボットコントローラである。ローカルコントローラ100の数及び各ローカルコントローラ100の構成は、ローカル機器2の数及び種類に応じて適宜変更可能である。
 上位コントローラ200は、上記指令出力部と、上記環境情報格納部と、上記環境更新部と、を備え、複数のローカルコントローラ100と同期通信を行う。同期通信とは、一定の周期(上記通信周期)の同期フレームに同期して、1周期ごとに、複数のローカルコントローラ100との通信を行うことを意味する。上位コントローラ200は、ワーク9に対するプロセスと、当該プロセスの進捗情報とに基づいて、複数のローカルコントローラ100のそれぞれに次タスクの実行指令を出力し、複数のローカル機器2の動作に応じて環境情報を更新する。また、上位コントローラ200は、複数のローカル機器2によるタスクの実行状況に応じて、ワーク9に対するプロセスの進捗情報を更新する。
 データ管理装置300は、上記バーチャルローカルコントローラと、上記リアル情報収集部と、上記バーチャル情報収集部と、上記タスク比較部と、を備え、上位コントローラ200と同期通信又は非同期通信を行う。データ管理装置300は、上位コントローラ200を介し、複数のローカルコントローラ100から上記リアル実行状況情報を収集する。データ管理装置300は、複数のローカルコントローラ100にそれぞれ対応する複数のバーチャルローカルコントローラを備え、当該複数のバーチャルローカルコントローラから上記バーチャル実行状況情報を収集する。以下、ローカルコントローラ100、上位コントローラ200及びデータ管理装置300の構成を具体的に例示する。
 図3に示すように、上位コントローラ200は、機能上の構成(以下、「機能ブロック」という。)として、プロセスデータベース211と、オーダ取得部212と、プロセス割当部213と、プロセス格納部214と、指令出力部215と、進捗更新部216と、環境情報格納部221と、環境更新部222とを有する。
 プロセスデータベース211は、生産システム1が対象とする複数種類のワーク9ごとに複数のプロセスを記憶する。各プロセスは、ワーク9に対する複数のタスクのそれぞれの識別情報と、当該複数のタスクの実行順序と、当該複数のタスクのそれぞれを実行するローカル機器2の識別情報と、を含む。
 複数のタスクは、互いに異なるローカル機器2が実行するタスクを含んでいてもよい。例えば複数のタスクは、ロボット2B,2C又は移動型ロボット2Dが実行する複数のタスクと、他のローカル機器2が実行する1以上のタスクとを含んでいてもよい。タスクは、1つのローカル機器2が実行する一まとまりの作業単位である。ロボット2B,2C又は移動型ロボット2Dが実行する複数のタスクは、一以上の同一関節を動作させる複数のタスクを含んでいてもよい。例えば、複数のタスクのいずれにおいても、関節31,32,33,34,35,36の複合動作によって、先端部18の位置・姿勢が調節されるが、タスクの内容によっては、関節31,32,33,34,35,36のいずれかが動作しない場合はあり得る。ロボット2B,2C又は移動型ロボット2Dが実行するタスクの具体例としては、パーツをピックアップして所定位置に搬送するタスク、二つのパーツを締結(例えばボルト締結)するタスク、二つのパーツを溶接するタスク、二つのパーツを接着するタスク、二以上のパーツの組み立て品をピックアップして所定位置に搬送するタスク等が挙げられる。各タスクは、ワーク又はツールをピックアップする位置まで先端部18を移動させる動作を含んでもよく、ワーク又はツールをリリースした先端部18をワーク又はツールから離れた位置まで移動させる動作を含んでもよい。他のローカル機器2が実行するタスクの具体例としては、ロボット2B,2Cのタスクに合わせてワーク又はツールの位置・姿勢を変更するタスク、ロボット2B,2Cにより配置されたワーク又はツールに所定の加工(例えば切削加工)を行うタスク等が挙げられる。
 オーダ取得部212は、生産管理コントローラ4からワーク9の生産オーダを取得する。生産オーダは、生産すべきワーク9の種類と、種類ごとの生産数量とを含む。生産管理コントローラ4は、例えば、工場のMES(Manufacturing Execution System)において、生産計画に従ったワーク9の生産オーダを複数の工場セルに割り振るコントローラであり、上位コントローラ200と同期通信又は非同期通信を行う。
 プロセス割当部213は、生産オーダが指定するワーク9に対しプロセスを割り当てる。例えばプロセス割当部213は、生産オーダが指定するワーク9に対し、プロセスデータベース211に基づいてプロセスを割り当てる。生産オーダが複数のワーク9を指定する場合、プロセス割当部213は、複数のワーク9のそれぞれに対して、プロセスデータベース211に基づいてプロセスを割り当てる。複数のワーク9は、互いに異種のワーク9を含んでいてもよい。
 プロセス格納部214は、プロセス割当部213によるプロセスの割り当て結果と、プロセスごとの進捗情報(リアル空間における進捗情報)とを記憶する。図4は、複数のワーク9に対するプロセスの割り当て結果を例示するテーブルである。このテーブルにおいては、左から右への並び順序によって、各プロセスにおける複数のタスクの実行順序が示されている。
 図4においては、ワークAに対し、3ステップのタスクa1,a2,a3を含むプロセスが割り当てられている。ワークBに対し、5ステップのタスクb1,b2,b3,b4,b5を含むプロセスが割り当てられている。ワークCに対し、2ステップのタスクc1,c2を含むプロセスが割り当てられている。ワークDに対し、3ステップのタスクd1,d2,d3を含むプロセスが割り当てられている。ワークEに対し、4ステップのタスクe1,e2,e3,e4を含むプロセスが割り当てられている。
 プロセスごとの進捗情報は、例えばプロセスの各タスクが未着手であるか、実行中であるか、完了しているかを示す情報である。進捗情報は、未着手、実行中、又は完了を示すフラグであってもよいし、開始時刻及び完了時刻であってもよい。進捗情報が開始時刻及び完了時刻である場合、開始時刻も完了時刻も打刻されていなければ未着手であり、開始時刻が打刻され完了時刻が打刻されていなければ実行中であり、完了時刻が打刻されていれば完了である。
 図3に戻り、指令出力部215は、プロセス格納部214が記憶するプロセスと、当該プロセスの進捗情報とに基づいて、次タスクの実行指令を出力する。複数のタスクにおける次タスクは、未着手のタスクのうち、一つ前のタスクが存在しないか、一つ前のタスクが完了しているタスクである。指令出力部215は、プロセスデータベース211に基づいて複数のローカルコントローラ100のいずれかに次タスクの実行指令を出力する。例えば指令出力部215は、プロセスデータベース211において次タスクに対応付けられたローカル機器2のローカルコントローラ100に次タスクの実行指令を出力する。
 プロセス格納部214において、複数のワーク9に対し複数のプロセスがそれぞれ割り当てられている場合、指令出力部215は、複数のプロセスごとの複数の進捗情報に基づいて、複数のプロセスごとに複数の次タスクの実行指令を出力してもよい。指令出力部215は、複数の次タスクの実行指令を同じローカルコントローラ100に出力してもよい。
 例えば、プロセス格納部214において、第1ワーク9に対し第1プロセスが割り当てられ、第2ワーク9に対し第2プロセスが割り当てられている場合、指令出力部215は、第1プロセスの次タスクの実行指令と第2プロセスの次タスクの実行指令とを同じローカルコントローラ100に出力してもよい。この場合、指令出力部215は、上記第1プロセスの次タスクの実行指令を出力した後、当該次タスクの実行に先立って第2プロセスの次タスクの実行指令を出力してもよい。また、指令出力部215は、上記第2プロセスの次タスクの実行指令を出力した後、当該次タスクの実行に先立って第1プロセスの次タスクの実行指令を出力してもよい。更に、指令出力部215は、第1プロセスの次タスクの実行指令と、第2プロセスの次タスクの実行指令とを同時に出力してもよい。ここでの同時に出力は、第1プロセスの次タスクの実行指令を出力する期間と、第2プロセスの次タスクの実行指令を出力する期間とが少なくとも部分的に重複することを意味する。
 なお、指令出力部215は、上記同期通信におけるローカルコントローラ100からの要求に応じて次タスクの実行指令を出力してもよいし、ローカルコントローラ100からの要求の有無によらずに実行指令を出力してもよい。
 進捗更新部216は、複数のローカル機器2による次タスクの実行状況に応じて、プロセス格納部214の進捗情報を更新する。例えば進捗更新部216は、ローカルコントローラ100が出力する後述のステータス情報に基づいて、プロセス格納部214の進捗情報を更新する。
 環境情報格納部221は、環境情報を記憶する。環境情報は、例えばローカル機器2に関する情報(以下、「機器情報」という。)と、ワーク9に関する情報(以下、「ワーク情報」という。)とを含む。機器情報の具体例としては、ローカル機器2の位置・姿勢情報が挙げられる。ローカル機器2の位置・姿勢情報の具体例としては、ロボット2B,2Cの姿勢情報、及び移動型ロボット2Dの位置・姿勢情報等が挙げられる。ロボット2B,2Cの姿勢情報は、関節31,32,33,34,35,36の動作角度情報であってもよいし、先端部18の位置・姿勢情報であってもよい。移動型ロボット2Dの位置・姿勢情報は、例えば無人搬送車50の位置・姿勢情報と、ロボット10の姿勢情報とを含む。ロボット10の姿勢情報は、関節31,32,33,34,35,36の動作角度情報であってもよいし、先端部18の位置・姿勢(無人搬送車50を基準にした位置・姿勢)情報であってもよい。
 機器情報は、ローカルコントローラ100と、その管轄ローカル機器2との間に発生した制御信号(以下、「リアル制御信号」という。)の情報を含む。リアル制御信号は、管轄ローカル機器2の制御のためにローカルコントローラ100で生成される内部信号であってもよいし、ローカルコントローラ100から管轄ローカル機器2に出力される出力信号であってもよいし、管轄ローカル機器2からローカルコントローラ100に出力されるフィードバック信号であってもよい。内部信号の具体例としては、管轄ローカル機器2の位置・姿勢の指令値等が挙げられる。出力信号の具体例としては、管轄ローカル機器2のアクチュエータへの出力電流値等が挙げられる。フィードバック信号の具体例としては、ローカル機器2における位置・姿勢、速度等の検出値が挙げられる。
 図5は、機器情報を例示するテーブルである。図5においては、ローカル機器2の識別情報と、ローカル機器2に関する情報を示す少なくとも一つの状態パラメータとが対応付けられている。
 ワーク情報の具体例としては、各ワーク9の位置情報が挙げられる。図6は、ワーク情報を例示するテーブルである。図6においては、ワーク9の識別情報(例えば種別及びシリアル番号)と、ワーク9の位置情報とが対応付けられている。
 環境更新部222は、複数のローカル機器2の動作に応じて、環境情報格納部221の環境情報を更新する。例えば環境更新部222は、複数のローカルコントローラ100のそれぞれからローカル機器2のステータス情報を取得し、当該ステータス情報に基づいて機器情報を更新する。環境更新部222は、ローカル機器2のステータス情報に基づいてワーク情報を更に更新してもよい。例えば環境更新部222は、ローカルコントローラ100Aから取得した搬送装置2Aのステータス情報に基づいて、各ワーク9の位置情報を更新してもよい。環境更新部222は、外部センサ5の検出結果に更に基づいて環境情報を更新してもよい。
 図3に示すように、ローカルコントローラ100は、機能ブロックとして、タスクプログラム格納部111と、パラメータ保持部112と、指令バッファ113と、環境情報取得部114と、選択部115と、制御部116と、ステータス出力部117とを有する。
 タスクプログラム格納部111(条件記憶部)は、複数のタスクのうち1以上のタスクごとに予め定められた1以上の実行条件を記憶する。例えばタスクプログラム格納部111は、複数のタスクにおける動作をそれぞれ定める複数のタスクプログラム130を記憶する。ここでの複数のタスクは、作業対象のワーク9が互いに異なるタスクを含んでいてもよい。以下、作業対象のワーク9を、「対象ワーク9」という。
 タスクプログラム130は、条件ヘッダ131と、動作プログラム132とを含む。動作プログラム132は、管轄ローカル機器2の動作を表す。例えば動作プログラム132は、管轄ローカル機器2に一まとまりの動作を実行させるように時系列に並ぶ複数の移動命令を含む。管轄ローカル機器2がロボット2B,2C、又は移動型ロボット2Dである場合、動作プログラム132における移動命令は、先端部18の目標位置・目標姿勢を含む。
 条件ヘッダ131は、動作プログラム132の実行条件を表す。実行条件は、動作プログラム132の実行タイミングを決定するための条件である。図7は、条件ヘッダ131の一例を示すテーブルである。実行条件は、動作プログラム132(対応するタスク)の実行可否を決定するための実行可否条件と、動作プログラム132の優先度とを含む。優先度は、タスクプログラム格納部111が記憶する複数のタスクプログラム130における優先順位を表す。優先度が、優先順位自体を表す数値である場合、値が小さい程優先度は高くなる。
 図7に示されるように、実行可否条件の具体例としては、以下が挙げられる。
例1)管轄ローカル機器2の動作範囲内に、管轄ローカル機器2の動作の障害物が存在しないこと。
例2)対象ワーク9が所定位置にあること。
例3)対象ワーク9の搬入先に他のワーク9がないこと。
例4)対象ワーク9の搬入先が開放されていること。
 障害物の具体例としては、他のローカル機器2、他のローカル機器2が保持するワーク9、又は人等が挙げられる。対象ワーク9の搬入先の具体例としては、他のローカル機器2の一例であるNC工作機械が挙げられる。搬入先が開放されていることの具体例としては、NC工作機械のドアが開放されていることが挙げられる。
 上述したように、一つの対象ワーク9に対するプロセスは、管轄ローカル機器2の他のローカル機器2によるタスクを含む場合がある。他のローカル機器2によるタスクの具体例としては、産業機械(例えばNC工作機械)が実行するマシンタスクが挙げられる。管轄ローカル機器2がロボット2B,2C、又は移動型ロボット2Dである場合、管轄ローカル機器2が実行する複数のタスクは、当該マシンタスクの前に実行されるタスクと、当該マシンタスクの後に実行されるタスクとを含んでいてもよい。また、管轄ローカル機器2が実行する複数のタスクは、他のローカル機器2(第1産業機械)と協働するタスクと、更に他のローカル機器2(第2産業機械)と協働するタスクとを含んでいてもよい。
 管轄ローカル機器2がロボット2B,2C、又は移動型ロボット2Dである場合、管轄ローカル機器2が実行する複数のタスクは、対象ワーク9に対する複数のタスクの他に、1以上の補間タスクを含んでいてもよい。以下、ワーク9に対する複数のタスクを「ワーキングタスク」といい、補間タスクを「エアカットタスク」という。
 エアカットタスクは、複数のワーキングタスクのうち2つのワーキングタスク間における管轄ローカル機器2の動作を表す。以下、説明の便宜上、2つのワーキングタスクを「第1ワーキングタスク」及び「第2ワーキングタスク」という。エアカットタスクの具体例を以下に示す。
例1)第1ワーキングタスクの完了時における位置・姿勢から、第2ワーキングタスクの開始時における位置・姿勢まで所定軌道で先端部18を移動させる。
例2)第1ワーキングタスクの開始時における位置・姿勢から、第2ワーキングタスクの開始時における位置・姿勢まで所定軌道で先端部18を移動させる。
例3)第2ワーキングタスクの完了時における位置・姿勢から、第1ワーキングタスクの開始時における位置・姿勢まで所定軌道で先端部18を移動させる。
例4)第2ワーキングタスクの開始時における位置・姿勢から、第1ワーキングタスクの開始時における位置・姿勢まで所定軌道で先端部18を移動させる。
 これらのエアカットタスクが、2組以上のワーキングタスク間に設けられていてもよい。プロセスデータベース211及びプロセス格納部214において、ワーク9に対応付けられるプロセスは、複数のワーキングタスクを含んでいればよく、エアカットタスクを含んでいなくてもよい。
 パラメータ保持部112は、管轄ローカル機器2を制御するための1以上の制御パラメータを記憶する。1以上の制御パラメータの具体例としては、位置制御ゲイン、速度制御ゲイン、電流制御ゲイン等が挙げられる。
 指令バッファ113は、上位コントローラ200から取得した次タスクの実行指令を記憶する。上述のように、指令出力部215は、複数の次タスクの実行指令を同じローカルコントローラ100に出力する場合がある。このため、指令バッファ113は、複数の実行指令を記憶するように構成されていてもよい。
 図8は、指令バッファの内容を例示するテーブルであり、複数の次タスクの実行指令として、ワークAに対するタスクa1の実行指令と、ワークBに対するタスクb2の実行指令と、ワークEに対するタスクe3の実行指令とを記憶した状態を示している。
 図3に戻り、環境情報取得部114は、環境情報格納部221に格納された環境情報を取得する。環境情報取得部114は、上位コントローラ200に環境情報の出力を要求し、要求に応じて出力された環境情報を取得してもよいし、要求の有無によらずに、例えば上記同期通信において上位コントローラ200から出力された環境情報を取得してもよい。
 選択部115は、タスクプログラム格納部111における複数の次タスクのそれぞれの実行条件(条件ヘッダ131)と、環境情報格納部221の環境情報とに基づいて、指令バッファ113の複数の次タスクのいずれかを選択する。例えば選択部115は、複数の次タスクのそれぞれの実行可否を確認する。例えば選択部115は、複数の次タスクのそれぞれの実行可否条件を環境情報が満たしているかを確認する。更に選択部115は、実行可能な1以上の次タスクのいずれかを優先度に基づいて選択する。実行可能な次タスクが一つのみである場合、選択部115は当該次タスクを選択する。2以上の次タスクが実行可能である場合に、選択部115は優先度が最も高い次タスクを選択する。
 次タスクの実行に先立ってエアカットタスクの実行が必要となる場合がある。例えば、先端部18の現在位置・姿勢と、次タスクの開始位置・姿勢とが異なっている場合、現在位置・姿勢から開始位置・姿勢までのエアカットタスクが必要となる。この場合、選択部115は、次タスクの先頭にエアカットタスクを含めてもよい。以下、先頭にエアカットタスクが含められた次タスクを、「エアカット付きの次タスク」という。選択部115は、エアカット付きの次タスクの実行可否条件を環境情報が満たしているか否かを確認する際には、エアカットタスクの実行可否条件を環境情報が満たしているか否かを合わせて確認してもよい。
 制御部116は、タスクプログラム格納部111における次タスクの実行条件と、環境情報格納部221の環境情報とに基づいて管轄ローカル機器2に次タスクを実行させる。例えば制御部116は、選択部115が選択した次タスクを管轄ローカル機器2に実行させる。選択部115がエアカット付きの次タスクを選択した場合、制御部116は、当該次タスクの先頭に含められたエアカットタスクを実行した後に、当該次タスクを実行する。
 ステータス出力部117は、管轄ローカル機器2の上記ステータス情報を上位コントローラ200に出力する。ステータス情報は、少なくとも管轄ローカル機器2の位置・姿勢情報を含む。ステータス出力部117は、上記タスクプログラム130の実行が完了するのに応じ、タスクの完了通知をステータス情報に含めて出力してもよい。
 ステータス出力部117は、上記同期通信における上位コントローラ200からの要求に応じてステータス情報を出力してもよいし、上位コントローラ200からの要求の有無によらずにステータス情報を出力してもよい。
 以下、図9を参照し、ローカルコントローラ100Bの指令バッファ113が複数の次タスクを記憶している場合に、ローカルコントローラ100Bが実行する制御を具体的に例示する。この例において、複数のローカル機器2は、NC工作機械2Fを更に含む。ロボット2Bは、NC工作機械2Fと搬送装置2Aとの間に設置されている。ロボット2Bの周囲には、NC工作機械2F及び搬送装置2Aの他に、ワーク9を仮置きするためのワーク台91,92が設けられている。
 ローカルコントローラ100Bの指令バッファ113は、以下の第1ワーキングタスクの実行指令と、第2ワーキングタスクの実行指令と、第3ワーキングタスクの実行指令とを記憶している。
第1ワーキングタスク:NC工作機械2Fから第1ワーク9Aを搬出してワーク台91に搬送する。
第2ワーキングタスク:ワーク台92から第2ワーク9Bを搬送してNC工作機械2Fに搬入する。
第3ワーキングタスク:ワーク台91から搬送装置2Aに第3ワーク9Cを搬送する。
 タスクプログラム格納部111において、第1ワーキングタスクの優先度は第2ワーキングタスクの優先度より高く、第2ワーキングタスクの優先度は第3ワーキングタスクの優先度より高い。
 図9の(a)は、第1ワーキングタスクと第3ワークタスクとが実行可能となった状態を示している。この場合、選択部115は、第3ワーキングタスクに比較して優先度の高い第1ワーキングタスクを選択する。これに応じ、制御部116は、ロボット2Bに第1ワーキングタスクを実行させる(図9の(b)参照)。
 第1ワーキングタスクが実行され、NC工作機械2F内にワーク9が存在しなくなることで、第2ワーキングタスクと第3ワーキングタスクとが実行可能となる(図10の(a)参照)。この場合、選択部115は、第3ワーキングタスクに比較して優先度の高い第2ワーキングタスクを選択する。これに応じ、制御部116は、ロボット2Bに第2ワーキングタスクを実行させる(図10の(b)参照)。
 第1ワーキングタスクと第2ワーキングタスクの実行により、指令バッファ113に残るタスクは第3ワーキングタスクのみとなる。第3ワーキングタスクは依然として実行可能であるため、選択部115は第3ワーキングタスクを選択する。これに応じ、制御部116は、ロボット2Bに第3ワーキングタスクを実行させる(図11の(a)及び(b)参照)。
 環境情報格納部221が記憶する環境情報は、上記マシンタスクの完了時間に対応した待ち時間を含んでいてもよい。環境情報は、マシンタスクの完了時間までの時間を表す限りいかなる形式で待ち時間を含んでいてもよい。例えば環境情報は、上記マシンタスクの完了予定時刻と現在時刻との組み合わせを含んでいてもよいし、現在時刻から完了予定時刻までの時間長を含んでいてもよい。
 ローカルコントローラ100は選択タイミング調節部121を更に有してもよい。選択タイミング調節部121は、指令バッファ113の複数の次タスクが、マシンタスクが完了したら実行可能になる第1タスクと、すでに実行可能な第2タスクとを含む場合、第1タスク及び第2タスクの優先度と、待ち時間とに基づいて、選択部115による次タスクの選択タイミングを調整する。例えば選択タイミング調節部121は、第1タスクの優先度が、第2タスクの優先度よりも高く、待ち時間が所定の閾値以下の場合、選択部115による次タスクの選択タイミングを待ち時間の経過時以降にする。
 図12を参照し、ローカルコントローラ100Bの指令バッファ113が、上記第1ワーキングタスクの実行指令と、上記第2ワーキングタスクの実行指令と、上記第3ワーキングタスクの実行指令とを記憶している場合の選択タイミング調節部121の処理を例示する。この例においては、NC工作機械2Fが第1ワーク9Aに対して行う加工が上記マシンタスクに相当する。マシンタスクの実行中(図12の(a)参照)においては、第3ワーキングタスク(第2タスク)のみが実行可能であり、第1ワーキングタスク(第1タスク)及び第2ワーキングタスクは実行不可である。
 NC工作機械2Fが第1ワーク9Aに対して実行中のマシンタスクの待ち時間が所定の閾値以下である場合、選択タイミング調節部121は、選択部115による次タスクの選択タイミングを待ち時間の経過時以降にする。このため、第3ワーキングタスクがすでに実行可能であっても、制御部116はロボット2Bに第3ワーキングタスクを実行させずに待ち時間の経過を待機する。
 選択タイミング調節部121が選択部115に次タスクの選択をさせるタイミングにおいては、上記待ち時間の経過により、第1ワーキングタスクと第3ワーキングタスクとが実行可能となる。このため、選択部115は、第3ワーキングに比較して優先度の高い第1ワーキングタスクを実行する。これに応じ、制御部116は、ロボット2Bに第1ワーキングタスクを実行させる(図12の(b)参照)。
 ローカルコントローラ100は、中断部122を更に有してもよい。中断部122は、指令バッファ113の複数の次タスクが、第1タスクと、第1タスクよりも優先度の低い第2タスクとを含み、管轄ローカル機器2による第2タスクの実行中に第1タスクが実行可能になった場合、制御部116に第2タスクを中断させ、選択部115に第1タスクを選択させる。また、中断部122は、第2タスクの実行指令を指令バッファ113に戻す。
 第2タスクの実行途中において対象ワーク9を解放できない場合、中断部122は、制御部116により管轄ローカル機器2を第2タスクの開始前の状態に戻させた後に、選択部115に第1タスクを選択させてもよい。例えば、第1タスクが第1ワークの搬送を含み、第2タスクが第2ワークの搬送を含む場合に、中断部122は、管轄ローカル機器2による第2タスクの実行中に第1タスクが実行可能となった場合に、制御部116により管轄ローカル機器2を第2ワークの搬送開始前の状態に戻させた後に、選択部115に第1タスクを選択させ、第2タスクの実行指令を指令バッファ113に戻す。
 図13を参照し、上記ロボット2Bによる上記第3ワーキングタスク(第2タスク)の実行中に上記第1ワーキングタスク(第1タスク)が実行可能となった場合の中断部122の処理を例示する。
 図13の(a)は、NC工作機械2Fが第1ワーク9Aに対してマシンタスクを実行中であるために、第1ワーキングタスクが実行不可である状況において、制御部116がロボット2Bに第3ワーキングタスクを実行させている状態を示している。ロボット2Bは、第3ワーク9Cをワーク台91から搬送装置2Aに搬送している。
 この状態において、第1ワーキングタスクが実行可能になると、中断部122は制御部116に第3ワーキングタスクを中断させる。第3ワーク9Cがワーク台91から離れ、搬送装置2Aに到達していない状態において、第3ワーク9Cを解放することはできないので、ロボット2Bは、制御部116によりロボット2Bを第3ワーキングタスクの開始前の状態に戻させる。これにより、第3ワーク9Cがワーク台91上に戻される(図13の(b)参照)。その後、中断部122は、選択部115に第1ワーキングタスクを選択させる。制御部116は、第3ワーキングタスクの開始時における位置・姿勢から、第1ワーキングタスクの開始時における位置・姿勢まで所定軌道で先端部18を移動させるエアカットタスクをロボット2Bに実行させた後に、ロボット2Bに第1ワーキングタスクを実行させる。
 中断部122は、制御部116に第2タスクの実行を中断させ、選択部115に第1タスクを選択させる場合に比較して、第2タスクの完了後に選択部115に第1タスクを選択させる方が複数のプロセスの実行時間が短縮される場合に、第2タスクを制御部116に中断させなくてもよい。例えば中断部122は、第1タスクが実行可能となったタイミングにおいて、第2タスクの残り時間が所定の閾値以下である場合に、第2タスクを制御部116に中断させなくてもよい。
 ローカルコントローラ100及び上位コントローラ200が以上のように構成されるのに対応して、データ管理装置300は、プロセスと、バーチャル空間における当該プロセスの進捗情報とに基づいて、次タスクの実行指令を出力するバーチャル指令出力部と、バーチャル環境情報を記憶するバーチャル環境情報格納部と、バーチャル指令出力部から出力された実行指令と、バーチャル環境情報格納部のバーチャル環境情報とに基づいて、バーチャルローカル機器にバーチャル空間において次タスクを実行させるバーチャルローカルコントローラと、バーチャルローカル機器の動作に応じて、バーチャル環境情報格納部のバーチャル環境情報を更新するバーチャル環境更新部と、を有してもよい。
 例えば図14に示すように、データ管理装置300は、機能ブロックとして、モデル格納部311と、複数のバーチャルローカルコントローラ400と、バーチャル上位コントローラ500とを有する。
 モデル格納部311は、複数のバーチャルローカル機器のモデルを記憶する。バーチャルローカル機器のモデルは、対応するローカル機器2のリアル空間における配置、構造、各部の寸法、及び各部の質量等のパラメータを含む。モデル格納部311は、バーチャル空間における複数のバーチャルローカル機器の周辺環境のモデルも記憶する。周辺環境のモデルは、複数のローカル機器2の周辺物体のリアル空間における配置、三次元形状、寸法等のパラメータを含む。モデル格納部311は、制御指令に対するバーチャルローカル機器の応答性を時間で表した標準時間を含んでいてもよい。標準時間の具体例としては、例えば、制御指令に応じた動作時間長が挙げられる。動作時間長は、例えば、制御指令の出力開始時刻から、これに応じたバーチャルローカル機器の動作完了時刻までの時間長である。
 複数のバーチャルローカルコントローラ400は、複数のローカルコントローラ100にそれぞれ対応する。例えばデータ管理装置300は、ローカルコントローラ100Aに対応するバーチャルローカルコントローラ400Aと、ローカルコントローラ100Bに対応するバーチャルローカルコントローラ400Bと、ローカルコントローラ100Cに対応するバーチャルローカルコントローラ400Cと、ローカルコントローラ100Dに対応するバーチャルローカルコントローラ400Dとを有する。
 ロボットコントローラであるローカルコントローラ100B,100C,100Dにそれぞれ対応するバーチャルローカルコントローラ400B,400C,400Dは、バーチャルロボットコントローラである。バーチャルローカルコントローラ400B,400Cが制御するバーチャルローカル機器はバーチャルロボットであり、バーチャルローカルコントローラ400Dが制御するバーチャルローカル機器はバーチャル移動型ロボットである。
 複数のバーチャルローカルコントローラ400は、複数のローカル機器2にそれぞれ対応する複数のバーチャルローカル機器をバーチャル空間においてそれぞれ制御する。複数のバーチャルローカルコントローラ400のそれぞれは、バーチャル空間において、対象ワーク9に対するプロセスに含まれる複数のタスクを、制御対象のバーチャルローカル機器に実行させる。
 以下、バーチャルローカルコントローラ400による制御対象のバーチャルローカル機器を「管轄バーチャルローカル機器」といい、管轄バーチャルローカル機器に対応するローカル機器2を「管轄ローカル機器2」という。管轄ローカル機器2は、バーチャルローカルコントローラ400に対応するローカルコントローラ100が制御対象とするローカル機器2である。
 バーチャル空間は、管轄ローカル機器2が存在しないシミュレーション上の仮想空間である。バーチャル空間において、管轄バーチャルローカル機器にタスクを実行させるとは、モデル格納部311が記憶する管轄ローカル機器2のモデル情報に基づいて、当該タスクを実行する際のリアル空間における管轄ローカル機器2の動作をシミュレーションすることを意味する。
 複数のバーチャルローカルコントローラ400のそれぞれは、複数のタスクごとに、上記バーチャル環境情報格納部のバーチャル環境情報に基づいて実行タイミングを調節してもよい。また、バーチャルローカルコントローラ400は、上記バーチャル指令出力部からの実行指令に対応する次タスクを管轄バーチャルローカル機器に実行させてもよい。例えば複数のバーチャルローカルコントローラ400のそれぞれは、上記実行指令と、上記バーチャル環境情報とに基づいて、管轄バーチャルローカル機器に上記次タスクを実行させる。例えばバーチャルローカルコントローラ400は、上記バーチャル環境情報格納部のバーチャル環境情報に基づいて実行タイミングを調節しつつ、上記バーチャル指令出力部からの実行指令に対応する次タスクを管轄バーチャルローカル機器に実行させる。
 バーチャル上位コントローラ500は、より細分化された機能ブロックとして、プロセスデータベース211、オーダ取得部212、プロセス割当部213、プロセス格納部214、指令出力部215、進捗更新部216、環境情報格納部221、環境更新部222にそれぞれ対応するプロセスデータベース511、オーダ取得部512、プロセス割当部513、プロセス格納部514、指令出力部515、進捗更新部516、環境情報格納部521、環境更新部522を有する。
 プロセスデータベース511は、プロセスデータベース211と同様に、生産システム1が対象とする複数種類のワーク9ごとに複数のプロセスを記憶する。オーダ取得部512は、例えば後述の入力デバイス396等から、シミュレーション用の生産オーダを取得する。
 プロセス割当部513は、プロセス割当部213と同様に、生産オーダが指定するワーク9に対しプロセスを割り当てる。例えばプロセス割当部513は、生産オーダが指定するワーク9に対し、プロセスデータベース511に基づいてプロセスを割り当てる。プロセス格納部514は、プロセス格納部214と同様に、プロセス割当部513によるプロセスの割り当て結果と、プロセスごとの進捗情報(バーチャル空間における進捗情報)とを記憶する。
 指令出力部515(バーチャル指令出力部)は、指令出力部215と同様に、プロセス格納部514が記憶するプロセスと、バーチャル空間における当該プロセスの進捗情報とに基づいて、次タスクの実行指令を出力する。指令出力部515は、プロセスデータベース511に基づいて複数のバーチャルローカルコントローラ400のいずれかに次タスクの実行指令を出力する。例えば指令出力部515は、プロセスデータベース511において次タスクに対応付けられたローカル機器2のバーチャルローカル機器のバーチャルローカルコントローラ400に次タスクの実行指令を出力する。
 進捗更新部516は、進捗更新部216と同様に、複数のバーチャルローカル機器による次タスクの実行状況に応じて、プロセス格納部514の進捗情報を更新する。例えば進捗更新部516は、バーチャルローカルコントローラ400が出力する後述のステータス情報に基づいて、プロセス格納部514の進捗情報を更新する。
 環境情報格納部521(バーチャル環境情報格納部)は、バーチャル環境情報を記憶する。バーチャル環境情報の構成は、環境情報の構成と同様である。バーチャル環境情報は、バーチャル空間における機器情報と、バーチャル空間におけるワーク情報とを含む。
 バーチャル空間における機器情報の具体例としては、バーチャル空間におけるバーチャルローカル機器の位置・姿勢情報が挙げられる。バーチャル空間における機器情報は、バーチャルローカルコントローラ400と、その管轄バーチャルローカル機器との間に発生した制御信号(以下、「バーチャル制御信号」という。)の情報を含む。
 バーチャル制御信号は、管轄バーチャルローカル機器の制御のためにバーチャルローカルコントローラ400で生成される内部信号であってもよいし、バーチャルローカルコントローラ400から管轄バーチャルローカル機器に出力される出力信号であってもよいし、管轄バーチャルローカル機器からバーチャルローカルコントローラ400に出力されるフィードバック信号であってもよい。内部信号の具体例としては、管轄バーチャルローカル機器の位置・姿勢の指令値等が挙げられる。出力信号の具体例としては、管轄バーチャルローカル機器のアクチュエータへの出力電流値等が挙げられる。フィードバック信号の具体例としては、出力信号と、モデル格納部311が記憶するモデル情報とに基づく管轄ローカル機器2の動作のシミュレーション結果が挙げられる。
 バーチャル空間におけるワーク情報の具体例としては、バーチャル空間における各ワーク9の位置情報が挙げられる。
 環境更新部522(バーチャル環境更新部)は、複数のバーチャルローカル機器の動作に応じて、環境情報格納部521のバーチャル環境情報を更新する。
 バーチャルローカルコントローラ400は、より細分化された機能ブロックとして、タスクプログラム格納部111、パラメータ保持部112、指令バッファ113、環境情報取得部114、選択部115、制御部116、ステータス出力部117、選択タイミング調節部121、及び中断部122にそれぞれ対応するタスクプログラム格納部411、パラメータ保持部412、指令バッファ413、環境情報取得部414、選択部415、制御部416、ステータス出力部417、選択タイミング調節部421、及び中断部422を有する。
 タスクプログラム格納部411は、タスクプログラム格納部111と同様に、複数のタスクのうち1以上のタスクごとに予め定められた1以上の実行条件を記憶する。例えばタスクプログラム格納部411は、上記複数のタスクプログラム130を記憶する。パラメータ保持部412は、パラメータ保持部112と同様に、管轄バーチャルローカル機器を制御するための1以上のパラメータを記憶する。
 指令バッファ413は、指令バッファ113と同様に、バーチャル上位コントローラ500から取得した次タスクの実行指令を記憶する。環境情報取得部414は、環境情報取得部114と同様に、環境情報格納部521に格納された環境情報を取得する。選択部415は、選択部115と同様に、タスクプログラム格納部411における複数の次タスクのそれぞれの実行条件(条件ヘッダ131)と、環境情報格納部521の環境情報とに基づいて、指令バッファ413の複数の次タスクのいずれかを選択する。
 制御部416は、タスクプログラム格納部411における次タスクの実行条件と、環境情報格納部521の環境情報とに基づいて管轄バーチャルローカル機器に次タスクを実行させる。例えば制御部416は、選択部415が選択した次タスクを管轄バーチャルローカル機器に実行させる。以下、選択部415が選択したタスクを「選択済タスク」という。具体的に、制御部416は、モデル格納部311が記憶する管轄ローカル機器2のモデル情報に基づいて、選択済タスクを実行する際のリアル空間における管轄ローカル機器2の動作をシミュレーションする。ステータス出力部417は、ステータス出力部117と同様に、管轄バーチャルローカル機器の上記ステータス情報をバーチャル上位コントローラ500に出力する。
 選択タイミング調節部421は、選択タイミング調節部121と同様に、選択部415による次タスクの選択タイミングを調整する。例えば選択タイミング調節部421は、指令バッファ413の複数の次タスクが、マシンタスクが完了したら実行可能になる第1タスクと、すでに実行可能な第2タスクとを含む場合、第1タスク及び第2タスクの優先度と、待ち時間とに基づいて、選択部415による次タスクの選択タイミングを調整する。
 中断部422は、中断部122と同様に、指令バッファ413の複数の次タスクが、第1タスクと、第1タスクよりも優先度の低い第2タスクとを含み、管轄バーチャルローカル機器による第2タスクの実行中に第1タスクが実行可能になった場合、制御部416に第2タスクを中断させ、選択部415に第1タスクを選択させる。
 図15に示すように、データ管理装置300は、機能ブロックとして、リアル情報収集部312と、リアル情報データベース313と、バーチャル情報収集部314と、バーチャル情報データベース315と、タスク比較部316と、状況対比表示部317と、表示形態変更部318と、リアル信号抽出部321と、バーチャル信号抽出部322と、信号対比表示部323とを更に有する。
 リアル情報収集部312は、ローカルコントローラ100による複数のタスクそれぞれの実行状況を表すリアル実行状況情報を収集する。リアル実行状況情報は、関節31,32,33,34,35,36の複合動作によりリアル空間に生じた一つの状況を表す情報である。リアル空間における状況は、リアル空間の状態に加え、リアル空間における時間の経過状況も含む。リアル実行状況情報には、対応するタスクの実行時間が含まれる。実行時間は、開始時刻であってもよいし、完了時刻であってもよいし、開始時刻から完了時刻までの時間長であってもよい。例えばリアル情報収集部312は、第1タイムラインにおける複数のタスクのそれぞれの実行開始時刻及び実行完了時刻を含むリアル実行状況情報を収集する。第1タイムラインは、例えば上位コントローラ200内のタイマを基準とする時間軸である。リアル実行状況情報は、対応するタスクの実行後における対象ワーク9の状態情報を含んでもよい。対象ワーク9の状態情報の一例としては、搬送後における対象ワーク9の位置・姿勢等が挙げられる。
 リアル情報収集部312は、リアル実行状況情報を上位コントローラ200のプロセス格納部214から取得する。リアル情報収集部312は、更に、上記リアル制御信号を上位コントローラ200の環境情報格納部221から取得してもよい。リアル情報収集部312は、上記リアル制御信号を含む環境情報を第1タイムラインにおける時刻に対応付けて環境情報格納部221から取得してもよい。リアル情報収集部312は、上位コントローラ200にリアル実行状況情報及びリアル制御信号の出力を要求し、要求に応じて出力されたリアル実行状況情報及びリアル制御信号を取得してもよいし、要求の有無によらず上位コントローラ200から出力されたリアル実行状況情報及びリアル制御信号を取得してもよい。
 リアル情報データベース313は、リアル情報収集部312が収集したリアル実行状況情報及びリアル制御信号を蓄積する。リアル情報データベース313は、リアル制御信号を上記第1タイムラインに沿った時刻に対応付けて蓄積してもよい。リアル情報データベース313は、上記リアル制御信号を含む環境情報を、上記第1タイムラインに沿った時刻に対応付けて蓄積してもよい。
 バーチャル情報収集部314は、バーチャルローカルコントローラ400による複数のタスクそれぞれの実行状況を表すバーチャル実行状況情報を収集する。バーチャル実行状況情報は、関節31,32,33,34,35,36の複合動作によりバーチャル空間に生じた一つの状況を表す情報である。バーチャル空間における状況は、バーチャル空間の状態に加え、バーチャル空間における時間の経過状況も含む。バーチャル実行状況情報には、対応するタスクの実行時間が含まれる。実行時間は、開始時刻であってもよいし、完了時刻であってもよいし、開始時刻から完了時刻までの時間長であってもよい。例えばバーチャル情報収集部314は、第2タイムラインにおける複数のタスクの実行開始時刻及び実行完了時刻を含むバーチャル実行状況情報を収集する。第2タイムラインは、例えばデータ管理装置300内のタイマを基準とする時間軸である。バーチャル実行状況情報は、対応するタスクの実行後における対象ワーク9の状態情報を含んでもよい。対象ワーク9の状態情報の一例としては、搬送後における対象ワーク9の位置・姿勢等が挙げられる。
 バーチャル情報収集部314は、バーチャル実行状況情報をプロセス格納部514から取得する。バーチャル情報収集部314は、更に、上記バーチャル制御信号を環境情報格納部521から取得してもよい。バーチャル情報収集部314は、上記バーチャル制御信号を含むバーチャル環境情報を第2タイムラインにおける時刻に対応付けて環境情報格納部521から取得してもよい。
 バーチャル情報データベース315は、バーチャル情報収集部314が収集したバーチャル実行状況情報及びバーチャル制御信号を蓄積する。バーチャル情報データベース315は、バーチャル制御信号を上記第2タイムラインに沿った時刻に対応付けて蓄積してもよい。バーチャル情報データベース315は、上記バーチャル制御信号を含むバーチャル環境情報を、上記第2タイムラインに沿った時刻に対応付けて蓄積してもよい。
 タスク比較部316は、複数のタスクのうち、リアル実行状況情報とバーチャル実行状況情報とが乖離した1以上の乖離タスクを抽出する。ここでの乖離は、リアル実行状況情報と、バーチャル実行状況情報との差が所定レベルを超えることを意味する。タスク比較部316は、複数のタスクのうち、少なくとも1以上のタスクについてリアル実行状況情報とバーチャル実行状況情報との比較を行えばよく、必ずしも複数のタスクの全てについて、リアル実行状況情報とバーチャル実行状況情報との比較を行わなくてよい。タスク比較部316による乖離タスクの抽出の具体例を以下に示す。
例1)リアル実行状況情報に基づく実行時間長(開始から完了までの時間長)と、バーチャル実行状況情報に基づく実行時間長との差が所定レベルを超えた1以上の乖離タスクを抽出する。
例2)リアル実行状況情報に基づく対象ワーク9の上記状態情報と、バーチャル実行状況情報に基づく対象ワーク9の上記状態情報との差が所定レベルを超えた1以上の乖離タスクを抽出する。
 状況対比表示部317は、リアル情報収集部312が収集した複数のタスクそれぞれのリアル実行状況情報と、バーチャル情報収集部314が収集した複数のタスクそれぞれのバーチャル実行状況情報とをタスクごとに対比して表示部(例えば後述の表示デバイス395)に表示させる。
 図16は、リアル実行状況情報とバーチャル実行状況情報との対比表示を例示するテーブルである。このテーブルは、リアル実行状況情報に基づく実行時間長と、バーチャル実行状況情報に基づく実行時間長とを複数のタスクごとに対比して表示する。また、このテーブルは、リアル実行状況情報に基づく対象ワーク9の状態情報と、バーチャル実行状況情報に基づく対象ワーク9の状態情報とを複数のタスクごとに対比して表示する。
 表示形態変更部318は、1以上の乖離タスクを、他のタスクと異なる表示形態で表示部に表示させる。表示形態変更部318は、図16に例示するテーブルにおいて、乖離タスクに対応する行を色付け等のスタイル変更により強調表示する。
 リアル信号抽出部321は、1以上の乖離タスクに対応するリアル制御信号をリアル情報データベース313から抽出する。例えばリアル信号抽出部321は、第1タイムラインにおける実行開始時刻及び実行完了時刻に基づいて、1以上の乖離タスクに対応するリアル制御信号をリアル情報データベース313から抽出する。より具体的に、リアル信号抽出部321は、第1タイムラインにおいて、乖離タスクの実行開始時刻から実行完了時刻までの時刻に対応付けて蓄積されたリアル制御信号をリアル情報データベース313から抽出する。
 バーチャル信号抽出部322は、1以上の乖離タスクに対応するバーチャル制御信号をバーチャル情報データベース315から抽出する。例えばバーチャル信号抽出部322は、第2タイムラインにおける実行開始時刻及び実行完了時刻に基づいて、1以上の乖離タスクに対応するバーチャル制御信号をバーチャル情報データベース315から抽出する。より具体的に、バーチャル信号抽出部322は、第2タイムラインにおいて、乖離タスクの実行開始時刻から実行完了時刻までの時刻に対応付けて蓄積されたバーチャル制御信号をバーチャル情報データベース315から抽出する。
 信号対比表示部323は、リアル信号抽出部321が抽出したリアル制御信号とバーチャル信号抽出部322が抽出したバーチャル制御信号とを対比して表示部(例えば後述の表示デバイス395)に表示させる。例えば信号対比表示部323は、制御信号の種別ごとに、乖離タスクの開始時刻を揃えた状態で、リアル制御信号のタイミングチャートとバーチャル制御信号のタイミングチャートとを対比表示させる。
 図17は、リアル制御信号と、バーチャル制御信号との対比表示を例示するチャートである。このチャートは、信号種別A,Bについての対比表示を含んでいる。信号種別Aは、管轄ローカル機器2の第1アクチュエータに対する制御信号であり、信号種別Bは、管轄ローカル機器2の第2アクチュエータに対する制御信号である。第1アクチュエータと第2アクチュエータとは協働する。図17の(a)は、信号種別Aについてのリアル制御信号A1のタイミングチャートであり、図17の(b)は、信号種別Aに対応するバーチャル制御信号A2のタイミングチャートである。図17の(c)は、信号種別Bについてのリアル制御信号B1のタイミングチャートである、図17の(d)は、信号種別Bに対応するバーチャル制御信号B2のタイミングチャートである。
 図17の(a)のチャートと図17の(b)のチャートとを対比すると、リアル制御信号A1がローレベルとなる期間T1と、バーチャル制御信号A2がローレベルとなる期間T2とに差が生じていることが分かる。図17の(a)のチャートと図17の(c)のチャートとを対比すると、リアル制御信号A1がローレベルとなる期間T1は、リアル制御信号B1がハイレベルとなる期間T11に対応していることが分かる。図17の(b)のチャートと図17の(d)のチャートとを対比すると、バーチャル制御信号A2がローレベルとなる期間T2は、バーチャル制御信号B2がハイレベルとなる期間T12に対応していることが分かる。
 そして、これらのチャートから、リアル制御信号B1と、バーチャル制御信号B2との乖離が、乖離タスクにおけるリアル実行状況情報とバーチャル実行状況情報との乖離要因であると推定される。例えば、リアル空間における第2アクチュエータの動作と、バーチャル空間における第2アクチュエータの動作との差が、上記乖離要因であると推定される。より具体的には、管轄ローカル機器2において、第2アクチュエータにより駆動される部分と、モデル格納部311における当該部分のモデル情報との差が上記乖離要因であると推定される。
 データ管理装置300は、進捗表示部324を更に有してもよい。進捗表示部324は、リアル空間における、複数のワーク9ごとの複数のプロセスの進捗を表示部(例えば後述の表示デバイス395)に表示させる。例えば進捗表示部324は、リアル情報収集部312が収集するリアル実行状況情報に基づいて、生産システム1が実行中のタスクを表示部に表示させる。
 図18は、複数のプロセスの進捗の表示例を示す図である。例えば進捗表示部324は、複数のワークごとのプロセスをフローチャートで表示し、各フローチャートにおいて、生産システム1が実行中のタスクを強調表示する。図18のチャートは、左から順に、ワークAに対するプロセスのフローチャート、ワークBに対するプロセスのフローチャート、ワークCに対するプロセスのフローチャート、ワークDに対するプロセスのフローチャート、及びワークEに対するプロセスのフローチャートを示している。
 図19に示すように、データ管理装置300は、機能ブロックとして、プログラム取得部331と、パラメータ取得部332と、プログラム生成部333と、プログラム配信部335とを更に有してもよい。
 プログラム取得部331は、各ローカルコントローラ100において、ティーチングにより登録されたワーキングタスクのタスクプログラム130を取得し、バーチャルローカルコントローラ400のタスクプログラム格納部411に記憶させる。ワーキングタスクのティーチング後において、ワーキングタスクの実行条件は未定であってもよい。例えば、タスクプログラム130における条件ヘッダ131は空白であってもよい。
 パラメータ取得部332は、各ローカルコントローラ100において、上記パラメータ保持部112が記憶する1以上のパラメータを取得し、バーチャルローカルコントローラ400のパラメータ保持部412に記憶させる。
 プログラム生成部333は、プログラム取得部331が取得したワーキングタスクと、モデル格納部311が記憶するモデル情報とに基づいて上記1以上のエアカットタスクを生成し、タスクプログラム格納部411に記憶させる。プログラム生成部333は、エアカットタスクの始点と終点との間に、周辺物体との衝突を回避可能な経由点を追加することを、始点から終点までの全域に亘って周辺物体との衝突が回避可能となるまで繰り返すことでエアカットタスクを生成する。プログラム生成部333は、タスクプログラム格納部411が記憶する複数のワーキングタスクにおいて順に実行されることが想定される2つのワーキングタスクの全組み合わせに対し、上記エアカットタスクを生成してもよい。
 プログラム生成部333(実行条件生成部)は、複数のバーチャルローカル機器のバーチャル空間における動作に基づいて、上記1以上の実行条件の少なくとも一部を生成する。例えばプログラム生成部333は、バーチャル情報データベース315に蓄積された環境情報に基づいて実行可否条件を生成する。
 例えばプログラム生成部333は、バーチャル情報データベース315に蓄積された環境情報に基づいて、いずれかのバーチャルローカル機器(第1バーチャルローカル機器)と、他のバーチャルローカル機器(第2バーチャルローカル機器)とのバーチャル空間における衝突を避けるように、第1バーチャルローカル機器のタスクの実行可否条件と、第2バーチャルローカル機器の実行可否条件とを生成する。例えば、複数のタスクが、ロボット(例えばロボット2B,2C又は移動型ロボット2D)が実行する第1ロボットタスクと、第2ロボット(例えばロボット2B,2C又は移動型ロボット2D)が実行する第2ロボットタスクとを含む場合に、プログラム生成部333は、ロボットに対応するバーチャルロボットと、第2ロボットに対応する第2バーチャルロボットとのバーチャル空間における衝突を避けるように、第1ロボットタスクの実行可否条件と第2ロボットタスクの実行可否条件とを生成する。
 一例として、プログラム生成部333は、第1ロボットタスクを実行するバーチャルロボットの動作領域と、第2ロボットタスクを実行する第2バーチャルロボットの動作領域との重複領域を導出し、第2バーチャルロボットが重複領域内に位置しないことを含むように第1ロボットタスクの実行可否条件を生成し、第1バーチャルロボットが重複領域内に位置しないことを含むように第2ロボットタスクの実行可否条件を生成する。プログラム生成部333は、生成した実行可否条件を、対応するタスクのタスクプログラム130の条件ヘッダ131に登録する。
 プログラム生成部333は、生成済みの実行条件に基づいて複数のバーチャルローカル機器が動作する場合の、バーチャル空間における複数のプロセスの実行時間を短縮するように、実行条件の少なくとも一部を変更してもよい。例えばプログラム生成部333は、複数のタスクのそれぞれの優先度を定める優先度組み合わせをランダムに変更し、優先度組み合わせのそれぞれを対応するタスクプログラム130の条件ヘッダ131に登録することと、変更後の優先度組み合わせにおいて複数のプロセスの実行時間を評価することと、を繰り返す。プログラム生成部333は、複数のプロセスの実行時間が最も短くなる優先度組み合わせを採用し、採用した優先度組み合わせのそれぞれを対応するタスクプログラム130の条件ヘッダ131に登録する。
 以上に説明したように、プログラム生成部333によるエアカットタスクの追加と、プログラム生成部333による実行条件の追加とがなされた後に、タスクプログラム格納部411が記憶するプログラムを、以下では「生成済みのプログラム」という。
 プログラム配信部335は、タスクプログラム格納部411の生成済みのプログラムを、対応するローカルコントローラ100に出力し、当該ローカルコントローラ100のタスクプログラム格納部111に記憶させる。例えばプログラム配信部335は、上位コントローラ200を介して、生成済みのプログラムを対応するローカルコントローラ100に出力する。
 図20に示すように、データ管理装置300は、バーチャル調整部341と、リアル調整部342と、状態変化検出部343と、再現部344と、異常検出部345とを更に有してもよい。
 バーチャル調整部341は、リアル信号抽出部321が抽出したリアル制御信号及びバーチャル信号抽出部322が抽出したバーチャル制御信号の少なくとも一方に基づいて、モデル格納部311が記憶する複数のバーチャルローカル機器のモデルのパラメータを調整する。以下、リアル信号抽出部321が抽出したリアル制御信号を「抽出済みのリアル制御信号」といい、バーチャル信号抽出部322が抽出したバーチャル制御信号を「抽出済みのバーチャル制御信号」という。
 例えばバーチャル調整部341は、バーチャルローカルコントローラ400の制御信号を抽出済みのリアル制御信号に近付けるように、対応するバーチャルローカル機器のモデルのパラメータを変更する。一例として、バーチャル調整部341は、抽出済みのリアル制御信号と、抽出済みのバーチャル制御信号との差を縮小するように、対応するバーチャルローカル機器のモデルのパラメータを変更する。バーチャルローカル機器のモデルのパラメータを変更することの具体例を以下に示す。
例1)上記配置、構造、各部の寸法、及び各部の質量等の物体情報を変更する。
例2)制御指令に応じたローカル機器2の動作時間長に合わせ、上記標準時間を変更する。
 リアル調整部342は、抽出済みのリアル制御信号及び抽出済みのバーチャル制御信号の少なくとも一方に基づいて、複数のローカルコントローラ100の制御パラメータ(パラメータ保持部112のパラメータ)を調整する。例えばリアル調整部342は、ローカルコントローラ100の制御信号を抽出済みのバーチャル制御信号に近付けるように、対応するローカルコントローラ100のパラメータを変更する。例えば、リアル調整部342は、抽出済みのリアル制御信号と、抽出済みのバーチャル制御信号との差を縮小するように、上記位置制御ゲイン、速度制御ゲイン、又は電流制御ゲイン等のパラメータを変更する。リアル調整部342がパラメータ保持部112のパラメータを変更した場合に、パラメータ取得部332が変更後のパラメータをパラメータ保持部112から取得し、パラメータ保持部412に登録してもよい。
 リアル調整部342がパラメータ保持部112のパラメータを変更することによって、抽出済みのリアル制御信号と、抽出済みのバーチャル制御信号との差が縮小していた場合に、変更後のパラメータがパラメータ保持部412に上書きされると、抽出済みのリアル制御信号と抽出済みのバーチャル制御信号との差が再度拡大する可能性がある。この場合、バーチャル調整部341が、再度拡大した差を縮小するように、バーチャルローカル機器のモデルのパラメータを更に変更してもよい。これにより、ローカル機器2の変化が、対応するバーチャルローカル機器のモデルのパラメータに反映されることとなる。
 状態変化検出部343は、抽出済みのリアル制御信号及び抽出済みのバーチャル制御信号の少なくとも一方に基づいて、バーチャルローカル機器2及びバーチャルローカル機器2が協働する装置の少なくとも一方の状態変化を検出する。状態変化の具体例としては、制御指令に対する応答性の変化、制御指令に対する追従精度の変化等が挙げられる。応答性の変化要因としては、摩擦の増大などによる内部不可の増大が挙げられる。追従精度の変化要因としては、可動部のガタツキの拡大等が挙げられる。
 再現部344は、状態変化検出部343が状態変化を検出した場合、少なくとも当該状態変化が発生したタスクに対応するリアル制御信号に基づいて、当該タスクを実行する管轄ローカル機器2の動作を管轄バーチャルロボットに再現させる。以下、状態変化が発生したタスクを「変化発生タスク」という。例えば再現部344は、モデル格納部311が記憶するバーチャルローカル機器のモデルと、変化発生タスクに対応するリアル制御信号とに基づいて、変化発生タスクを実行するローカル機器2の動作の再現動画を生成し、表示部(例えば後述の表示デバイス395)等に表示させる。再現部344は、変化発生タスクの前後のタスクについてもリアル制御信号に基づいて管轄ローカル機器2の動作を管轄バーチャルローカル機器に再現させてもよい。
 データ管理装置300は、異常検出部345を更に有してもよい。異常検出部345は、上位コントローラ200が発生するアラーム信号等に基づいて、管轄ローカル機器2及び管轄ローカル機器2が協働する装置の少なくとも一方の異常を検出する。再現部344は、異常検出部345が異常を検出した場合、当該異常が発生した時点の前及び後の少なくとも一方の管轄ローカル機器2の動作を、リアル制御信号に基づいて管轄バーチャルローカル機器に再現させてもよい。
 図21に示すように、データ管理装置300は、センサ情報処理部351と、情報更新部352とを更に有してもよい。センサ情報処理部351は、外部センサ5から取得したセンサ情報に対して、所定の処理を行う。所定の処理の具体例としては、外部センサ5の一例であるカメラから取得した画像情報等に基づいて、ワーク9の種類・位置・姿勢等のワーク情報、ローカル機器2の位置、ローカル機器2の動作状態等の機器情報、及び、ワーク9に対するローカル機器2のアプローチ状態(ワーク情報及び機器情報の複合情報)等を抽出する処理が挙げられる。
 情報更新部352は、センサ情報処理部351の処理結果に基づいて、リアル情報データベース313における最新の環境情報を更新する。情報更新部352により、リアル情報データベース313における最新の環境情報が更新された場合、リアル情報収集部312は更新結果に合わせて、上位コントローラ200の環境情報格納部221の環境情報を更新する。これにより、上位コントローラ200における情報処理負担を軽減し、上位コントローラ200における同期通信リソースなどを節約することができる。
 図22は、制御システム3のハードウェア構成を例示するブロック図である。図22に示すように、上位コントローラ200は、回路290を有する。回路290は、一つ又は複数のプロセッサ291と、メモリ292と、ストレージ293と、通信ポート294,295と、入出力ポート296を含む。ストレージ293は、例えば不揮発性の半導体メモリ等、コンピュータによって読み取り可能な記憶媒体を有する。ストレージ293は、ワーク9に対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいて、次タスクの実行指令をローカルコントローラ100に送信することと、環境情報格納部221に環境情報を記憶することと、実行指令と、環境情報格納部221の環境情報とに基づいて、ローカルコントローラ100がローカル機器2に実行させた動作に応じて、環境情報を更新することと、を上位コントローラ200に実行させるためのプログラムを記憶している。例えばストレージ293は、上述した各機能ブロックを上位コントローラ200に構成させるためのプログラムを記憶している。
 メモリ292は、ストレージ293の記憶媒体からロードしたプログラム及びプロセッサ291による演算結果を一時的に記憶する。プロセッサ291は、メモリ292と協働して上記プログラムを実行することで、上位コントローラ200の各機能ブロックを構成する。通信ポート294は、プロセッサ291からの指令に従って、第1のネットワーク回線NW1を介して、ローカルコントローラ100との間で通信を行う。通信ポート295は、プロセッサ291からの指令に従って、第2のネットワーク回線NW2を介して、データ管理装置300との間で通信を行う。入出力ポート296は、プロセッサ291からの指令に従って、外部センサ5との間で情報の入出力を行う。
 ローカルコントローラ100は、回路190を有する。回路190は、一つ又は複数のプロセッサ191と、メモリ192と、ストレージ193と、通信ポート194と、ドライバ回路195を含む。ストレージ193は、例えば不揮発性の半導体メモリ等、コンピュータによって読み取り可能な記憶媒体を有する。ストレージ193は、ワーク9に対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいて上位コントローラ200が送信した次タスクの実行指令を指令バッファ113に記憶することと、ローカル機器2によるタスクの実行に応じて上位コントローラ200により更新される環境情報と、実行指令とに基づいて、次タスクをローカル機器2に実行させることと、次タスクの実行状況を上位コントローラ200に送信することと、をローカルコントローラ100に実行させるためのプログラムを記憶している。例えばストレージ193は、上述した各機能ブロックをローカルコントローラ100に構成させるためのプログラムを記憶している。
 メモリ192は、ストレージ193の記憶媒体からロードしたプログラム及びプロセッサ191による演算結果を一時的に記憶する。プロセッサ191は、メモリ192と協働して上記プログラムを実行することで、ローカルコントローラ100の各機能ブロックを構成する。通信ポート194は、プロセッサ191からの指令に従って、第1のネットワーク回線NW1を介して、上位コントローラ200との間で通信を行う。ドライバ回路195は、プロセッサ191からの指令に従って、ローカル機器2に駆動電力を出力する。
 データ管理装置300は、回路390を有する。回路390は、一つ又は複数のプロセッサ391と、メモリ392と、ストレージ393と、通信ポート394と、表示デバイス395と、入力デバイス396とを含む。ストレージ393は、例えば不揮発性の半導体メモリ等、コンピュータによって読み取り可能な記憶媒体を有する。ストレージ393は、ローカルコントローラ100による複数のタスクそれぞれの実行状況を表すリアル実行状況情報を収集することと、バーチャルローカルコントローラ400による複数のタスクそれぞれの実行状況を表すバーチャル実行状況情報を収集することと、複数のタスクのうち、リアル実行状況情報とバーチャル実行状況情報とが乖離した1以上の乖離タスクを抽出することと、をデータ管理装置300に実行させるためのプログラムを記憶している。例えばストレージ393は、上述した各機能ブロックをデータ管理装置300に構成させるためのプログラムを記憶している。
 メモリ392は、ストレージ393の記憶媒体からロードしたプログラム及びプロセッサ391による演算結果を一時的に記憶する。プロセッサ391は、メモリ392と協働して上記プログラムを実行することで、データ管理装置300の各機能ブロックを構成する。通信ポート394は、プロセッサ391からの指令に従って、第2のネットワーク回線NW2を介して、上位コントローラ200との間で通信を行う。表示デバイス395及び入力デバイス396は、データ管理装置300のユーザインタフェースとして機能する。表示デバイス395は、例えば液晶モニタ等を含み、ユーザに対する情報表示に用いられる。入力デバイス396は、例えばキーパッド等であり、ユーザによる入力情報を取得する。表示デバイス395及び入力デバイス396は、所謂タッチパネルのように一体化されていてもよい。表示デバイス395及び入力デバイス396は、データ管理装置300に接続される外部機器に設けられていてもよいし、データ管理装置300に組み込まれていてもよい。
 なお、回路190,290,390は、必ずしもプログラムにより各機能を構成するものに限られない。例えば回路290,390,490は、専用の論理回路又はこれを集積したASIC(Application Specific Integrated Circuit)により少なくとも一部の機能を構成してもよい。ローカルコントローラ100、上位コントローラ200及びデータ管理装置300のそれぞれは、互いに通信可能な複数のコンピュータにより構成されていてもよく、各コンピュータが回路を有していてもよい。例えばデータ管理装置300は、データ収集装置と、シミュレーション装置とを含む複数のコンピュータにより構成されていてもよい。この場合、上述したデータ管理装置300の各機能ブロックは、複数のコンピュータに分散して構成されてもよい。一例として、バーチャルローカルコントローラ400、バーチャル上位コントローラ500、モデル格納部311、プログラム取得部331、プログラム配信部335、プログラム生成部333、及びパラメータ取得部332がシミュレーション装置に構成され、リアル情報収集部312、リアル情報データベース313、バーチャル情報収集部314、バーチャル情報データベース315、タスク比較部316、状況対比表示部317、表示形態変更部318、リアル信号抽出部321、バーチャル信号抽出部322、信号対比表示部323、進捗表示部324、バーチャル調整部341、リアル調整部342、状態変化検出部343、再現部344、異常検出部345、センサ情報処理部351、及び情報更新部352がデータ収集装置に構成されていてもよい。データ収集装置は、各ローカルコントローラ100のタスクプログラム130及び制御パラメータの収集・記憶と、各ローカルコントローラ100へのタスクプログラム130の配信とを更に行ってもよい。この場合、プログラム取得部331はデータ収集装置を介してタスクプログラム130をローカルコントローラ100から取得してもよい。パラメータ取得部332はデータ収集装置を介して制御パラメータをローカルコントローラ100から取得してもよい。プログラム配信部335はデータ収集装置を介して生成済みのプログラムをローカルコントローラ100に出力してもよい。また、シミュレーション装置としての機能を一まとめにしたプログラムにより1台のコンピュータにシミュレーション装置が構成され、データ収集装置としての機能を一まとめにしたプログラムにより同じ1台のコンピュータにデータ収集装置が構成されていてもよい。
〔制御手順〕
 制御方法の一例として、制御システム3が行う制御手順を示す。この制御手順は、ワーク9に対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいて、次タスクの実行指令をローカルコントローラ100に送信することと、環境情報格納部221に環境情報を記憶することと、実行指令と、環境情報格納部221の環境情報とに基づいて、ローカルコントローラ100がローカル機器2に実行させた動作に応じて、環境情報を更新することと、を含む。
 また、制御手順は、ワーク9に対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいて上位コントローラ200が送信した次タスクの実行指令を指令バッファに記憶することと、ローカル機器2によるタスクの実行に応じて上位コントローラ200により更新される環境情報と、実行指令とに基づいて、次タスクをローカル機器2に実行させることと、次タスクの実行状況を上位コントローラ200に送信することと、を含む。
 他の観点において、この制御手順は、リアル空間において、ワーク9に対するプロセスに含まれる複数のタスクを、ローカル機器2に実行させることと、バーチャル空間において、複数のタスクを、バーチャルローカル機器に実行させることと、ローカルコントローラ100による複数のタスクそれぞれの実行状況を表すリアル実行状況情報を収集することと、バーチャルローカルコントローラ400による複数のタスクそれぞれの実行状況を表すバーチャル実行状況情報を収集することと、複数のタスクのうち、リアル実行状況情報とバーチャル実行状況情報とが乖離した1以上の乖離タスクを抽出することと、を含む。
 以下、制御手順を、上位コントローラ200が実行する進捗管理手順と、ローカルコントローラ100が実行する制御手順と、データ管理装置300が行うデータ管理手順とに分けて詳細に例示する。少なくとも、上位コントローラ200が実行する進捗管理手順と、ローカルコントローラ100が実行する制御手順とは並行して実行される。
(進捗管理手順)
 図23に示すように、上位コントローラ200は、ステップS01,S02,S03,S04,S05,S06を順に実行する。ステップS01では、オーダ取得部212が、生産管理コントローラ4からの生産オーダの取得を待機する。ステップS02では、プロセス割当部213が、生産オーダが指定するワーク9に対しプロセスを割り当ててプロセス格納部214に記憶させる。
 ステップS03では、プロセス格納部214が記憶するプロセスと、当該プロセスの進捗情報とに基づいて、指令出力部215が次タスクの実行指令を出力する。プロセス格納部214において、複数のワーク9に対し複数のプロセスがそれぞれ割り当てられている場合、指令出力部215は、複数のプロセスごとの複数の次タスクの実行指令を出力する。
 ステップS04では、環境更新部222が、複数のローカルコントローラ100のそれぞれからローカル機器2のステータス情報を取得し、外部センサ5の検出結果を取得し、当該ステータス情報及び検出結果に基づいて環境情報を更新する。ステップS05では、進捗更新部216が、ステップS04において取得されたステータス情報が含むタスクの完了通知に応じて、プロセス格納部214の進捗情報を更新する。ステータス情報がタスクの完了通知を含んでいない場合、進捗情報は変更されない。
 ステップS06では、プロセス格納部214においてワーク9に割り当てられたプロセスが完了しているかを指令出力部215が確認する。例えば指令出力部215は、プロセス格納部214における全てのタスクが完了しているかを確認する。
 ステップS06において、完了していないタスクが残っていると判定した場合、上位コントローラ200は処理をステップS03に戻す。以後、上位コントローラ200は、プロセス格納部214における全てのタスクが完了するまで、例えば所定周期の同期通信サイクルにてステップS03~S06を繰り返す。ステップS06において、全てのタスクが完了していると判定した場合、上位コントローラ200は処理をステップS01に戻す。上位コントローラ200は以上の処理を繰り返し実行する。
(制御手順)
 図24に示すように、ローカルコントローラ100は、まずステップS11,S12,S13,S14を実行する。ステップS11では、選択部115が、指令バッファ113に1以上の次タスクの実行指令が蓄積されるのを待機する。ステップS12では、環境情報取得部114が、環境情報格納部221に格納された環境情報を取得する。
 ステップS13では、選択部115が、1以上の次タスクのそれぞれの実行条件と、環境情報格納部221の環境情報とに基づいて、1以上の次タスクのそれぞれの実行可否を確認する。例えば選択部115は、1以上の次タスクのそれぞれの実行可否条件を環境情報が満たしているかを確認する。ステップS14では、実行可の次タスクが存在するか否かを選択部115が確認する。
 ステップS14において実行可の次タスクが存在しないと判定した場合、ローカルコントローラ100は処理をステップS11に戻す。以後、いずれかの次タスクが実行可となるまでは所定周期の通信サイクルでステップS11~S14が繰り返される。通信サイクルは、上記同期通信サイクルと同期していてもよい。
 ステップS14において実行可の次タスクが存在すると判定した場合、ローカルコントローラ100はステップS15,S16,S17,S18を実行する。ステップS15では、選択部115が、実行可の次タスクの中で、優先度が最も高い次タスクを選択する。以下、選択部115が選択した次タスクを「選択済タスク」という。
 ステップS16では、制御部116が、管轄ローカル機器2に、選択済タスクのうち1制御周期分を実行させる。ステップS17では、ステータス出力部117が、管轄ローカル機器2のステータス情報を上位コントローラ200に出力する。ステップS18では、選択済タスクの実行が完了したか否かを制御部116が確認する。
 ステップS18において選択済タスクの実行が完了していないと判定した場合、ローカルコントローラ100は処理をステップS16に戻す。以後、選択済タスクの実行が完了するまで、ローカルコントローラ100は所定周期の制御サイクルにてステップS16~S18を繰り返す。制御サイクルは、上記同期通信サイクルと同期していてもよい。
 ステップS18において選択済タスクの実行が完了したと判定した場合、ローカルコントローラ100はステップS19を実行する。ステップS19では、ステータス出力部117が、選択済タスクの完了通知をステータス情報に含めて上位コントローラ200に出力する。その後、ローカルコントローラ100は処理をステップS11に戻す。ローカルコントローラ100は以上の処理を繰り返す。
 制御手順は、上記待ち時間に基づいて、次タスクの選択タイミングを調整することを更に含んでいてもよい。図25は、待ち時間に基づく次タスクの選択タイミングの調整を含む制御手順を例示するフローチャートである。図25に示すように、ローカルコントローラ100は、まず、ステップS11~S14と同様のステップS21~S24を実行する。ステップS21では、選択部115が、指令バッファ113に1以上の次タスクの実行指令が蓄積されるのを待機する。ステップS22では、環境情報取得部114が、環境情報格納部221に格納された環境情報を取得する。
 ステップS23では、選択部115が、1以上の次タスクのそれぞれの実行条件と、環境情報格納部221の環境情報とに基づいて、1以上の次タスクのそれぞれの実行可否を確認する。例えば選択部115は、1以上の次タスクのそれぞれの実行可否条件を環境情報が満たしているかを確認する。ステップS24では、実行可の次タスクが存在するか否かを選択部115が確認する。
 ステップS24において実行可の次タスクが存在しないと判定した場合、ローカルコントローラ100は処理をステップS21に戻す。ステップS24において実行可の次タスクが存在すると判定した場合、ローカルコントローラ100が、ステップS25を実行する。ステップS25では、選択タイミング調節部121が、現時点では実行不可であるが、実行可の次タスクに比較して優先度の高いタスク(以下、これを「選択候補タスク」という。)があるか否かを確認する。
 ステップS25において選択候補タスクが存在すると判定した場合、ローカルコントローラ100はステップS26を実行する。ステップS26では、選択候補タスクが実行可となるまでの待ち時間が所定の閾値を超えているかを選択タイミング調節部121が確認する。待ち時間の具体例としては、選択候補タスクの前に他のローカル機器2が実行する上記マシンタスクの完了までの待ち時間が挙げられる。
 ステップS26において、選択候補タスクが実行可となるまでの待ち時間が所定の閾値を超えていないと判定した場合、ローカルコントローラ100は、実行可の次タスクを選択することなく、処理をステップS22に戻す。これにより、次タスクの選択タイミングが、上記待ち時間の経過時以降となる。待ち時間が経過した後には、上記選択候補タスクが実行可の次タスクに加わることとなる。
 ステップS26において、選択候補タスクが実行可となるまでの待ち時間が所定の閾値を超えていると判定した場合、ローカルコントローラ100はステップS27を実行する。ステップS25において選択候補タスクが存在しないと判定した場合、ローカルコントローラ100はステップS26を実行せずにステップS27を実行する。ステップS27では、選択部115が、実行可の次タスクの中で、優先度が最も高い次タスクを選択する。以下、選択部115が選択した次タスクを「選択済タスク」という。
 次に、ローカルコントローラ100は、ステップS28,S29,S31を実行する。ステップS28では、制御部116が、管轄ローカル機器2に、選択済タスクのうち1制御周期分を実行させる。ステップS29では、ステータス出力部117が、管轄ローカル機器2のステータス情報を上位コントローラ200に出力する。ステップS31では、選択済タスクの実行が完了したか否かを制御部116が確認する。
 ステップS31において選択済タスクの実行が完了していないと判定した場合、ローカルコントローラ100は処理をステップS28に戻す。以後、選択済タスクの実行が完了するまで、ローカルコントローラ100は所定周期の制御サイクルにてステップS28~S31を繰り返す。制御サイクルは、上記同期通信サイクルと同期していてもよい。
 ステップS31において選択済タスクの実行が完了したと判定した場合、ローカルコントローラ100はステップS32を実行する。ステップS32では、ステータス出力部117が、選択済タスクの完了通知をステータス情報に含めて上位コントローラ200に出力する。その後、ローカルコントローラ100は処理をステップS21に戻す。ローカルコントローラ100は以上の処理を繰り返す。
 制御手順は、管轄ローカル機器2による第2タスクの実行中に、第2タスクよりも優先度の高い第1タスクが実行可能になった場合、第2タスクの実行を中断して第1タスクを選択することを更に含んでいてもよい。図26は実行中のタスクの中断を含む制御手順を例示するフローチャートである。図26は、制御手順のうち、選択済タスクの実行を開始した後、タスクの完了通知を出力するまでの手順を示している。
 図26に示すように、ローカルコントローラ100は、まずステップS41,S42,S43を実行する。ステップS41では、制御部116が、ステップS16と同様に、管轄ローカル機器2に、選択済タスクのうち1制御周期分を実行させる。ステップS42では、ステータス出力部117が、管轄ローカル機器2のステータス情報を上位コントローラ200に出力する。ステップS43では、選択済タスクの実行が完了したか否かを制御部116が確認する。
 ステップS43において選択済タスクの実行が完了していないと判定した場合、ローカルコントローラ100はステップS44,S45,S46を実行する。ステップS44では、環境情報取得部114が、環境情報格納部221に格納された環境情報を取得する。ステップS45では、選択部115が、1以上の次タスクのそれぞれの実行条件と、環境情報格納部221の環境情報とに基づいて、1以上の次タスクのそれぞれの実行可否を確認する。例えば選択部115は、1以上の次タスクのそれぞれの実行可否条件を環境情報が満たしているかを確認する。ステップS46では、実行可の次タスクが存在するか否かを選択部115が確認する。以下、実行可の次タスクを「入替候補タスク」という。
 ステップS46において実行可の次タスクが存在すると判定した場合、ローカルコントローラ100はステップS47を実行する。ステップS47では、入替候補タスクの優先度が、実行中のタスクの優先度より高いか否かを選択部115が確認する。
 ステップS47において入替候補タスクの優先度が実行中のタスクの優先度より高いと判定した場合、ローカルコントローラ100はステップS48を実行する。ステップS48では、選択部115が、選択済タスクの実行を中断させ、選択部115に入替候補タスクを選択させることで、選択済タスクの完了後に選択部115に入替候補タスクを選択させるよりも複数のプロセスの実行時間が短縮され得るかを確認する。以下、選択済タスクの実行を中断させ、選択部115に入替候補タスクを選択させる場合を「第1ケース」という。選択済タスクの完了後に選択部115に入替候補タスクを選択させる場合を「第2ケース」という。第1ケースによれば、第2ケースに比べ複数のプロセスの実行時間が短縮され得るかの簡易的な確認手法として、選択部115は、選択済タスクの残り時間が所定の閾値を超えているかを確認してもよい。
 ステップS48において、第1ケースによっても、第2ケースに比べ複数のプロセスの実行時間が短縮され得ると言えないと判定した場合、ローカルコントローラ100は処理をステップS42に戻す。例えば、選択済タスクの残り時間が所定の閾値以下である場合、ローカルコントローラ100は処理をステップS42に戻す。ステップS46において実行可の次タスクが存在しないと判定した場合、及びステップS47において入替候補タスクの優先度が実行中のタスクの優先度より高くないと判定した場合も、ローカルコントローラ100は処理をステップS42に戻す。以後、より優先度の高い次タスクが実行可とならない限り、選択済タスクが完了まで遂行される。
 ステップS43において選択済タスクの実行が完了したと判定した場合、ローカルコントローラ100はステップS49を実行する。ステップS49では、ステータス出力部117が、選択済タスクの完了通知をステータス情報に含めて上位コントローラ200に出力する。
 ステップS48において、第1ケースによれば、第2ケースに比べ複数のプロセスの実行時間が短縮され得ると判定した場合、ローカルコントローラ100はステップS51,S52,S53,S54,S55を実行する。ステップS51では、中断部122が、実行中のタスクを制御部116に中断させる。中断部122は、制御部116により管轄ローカル機器2を中断したタスクの開始前の状態に戻させてもよい。ステップS52では、中断部122が、選択部115に、入替候補タスクを選択させる。以下、入替候補タスクを「入替済タスク」という。
 ステップS53では、制御部116が、管轄ローカル機器2に、入替済タスクのうち1制御周期分を実行させる。ステップS54では、ステータス出力部117が、管轄ローカル機器2のステータス情報を上位コントローラ200に出力する。ステップS55では、入替済タスクの実行が完了したか否かを制御部116が確認する。
 ステップS55において入替済タスクの実行が完了していないと判定した場合、ローカルコントローラ100は処理をステップS53に戻す。以後、選択済タスクの実行が完了するまで、ローカルコントローラ100は所定周期の制御サイクルにてステップS53~S55を繰り返す。制御サイクルは、上記同期通信サイクルと同期していてもよい。
 ステップS55において入替済タスクの実行が完了したと判定した場合、ローカルコントローラ100はステップS56を実行する。ステップS56では、ステータス出力部117が、入替済タスクの完了通知をステータス情報に含めて上位コントローラ200に出力する。以上で、タスクの完了通知までの手順が完了する。
(データ管理手順)
 データ管理装置300が実行するデータ管理手順は、対比手順と、プログラム生成手順と、調整手順と、環境情報更新手順とに大別される。以下、対比手順と、プログラム生成手順と、調整手順とをそれぞれ詳細に例示する。
(対比手順)
 対比手順は、リアル情報の収集手順と、バーチャル情報の収集手順と、乖離タスクの抽出手順とを含む。図27は、リアル情報の収集手順を例示するフローチャートである。図27に示すように、データ管理装置300は、ステップS61,S62,S63,S64を順に実行する。ステップS61では、上位コントローラ200が生産オーダに応じたプロセスの実行を開始するのをリアル情報収集部312が待機する。
 ステップS62では、リアル情報収集部312が、ローカルコントローラ100による複数のタスクそれぞれの実行状況を表すリアル実行状況情報をプロセス格納部214から取得し、リアル情報データベース313に蓄積する。例えばリアル情報収集部312は、第1タイムラインにおける複数のタスクのそれぞれの実行開始時刻及び実行完了時刻を含むリアル実行状況情報を収集する。また、リアル情報収集部312は、上記リアル制御信号を含む環境情報を環境情報格納部221から取得し、リアル情報データベース313に蓄積する。
 ステップS63では、進捗表示部324が、リアル情報収集部312が取得したリアル実行状況情報に基づいて、生産システム1が実行中のタスクを表示部に表示させる。ステップS64では、上位コントローラ200によるプロセスの実行が完了したかをリアル情報収集部312が確認する。
 ステップS64において上位コントローラ200によるプロセスの実行が完了していないと判定した場合、データ管理装置300は処理をステップS62に戻す。以後、データ管理装置300は、上位コントローラ200によるプロセスの実行が完了するまで、リアル実行状況情報及び環境情報の取得・蓄積と、実行中のタスクの表示とを繰り返す。ステップS64において上位コントローラ200によるプロセスの実行が完了したと判定した場合、リアル情報の収集手順が完了する。
 図28は、バーチャル情報の収集手順を例示するフローチャートである。データ管理装置300は、ステップS71,S72,S73を順に実行する。ステップS71では、バーチャル上位コントローラ500が生産オーダに応じたプロセスの実行を開始するのをバーチャル情報収集部314が待機する。
 ステップS72では、バーチャル情報収集部314が、バーチャルローカルコントローラ400による複数のタスクそれぞれの実行状況を表すバーチャル実行状況情報をプロセス格納部514から取得し、バーチャル情報データベース315に蓄積する。例えばバーチャル情報収集部314は、第2タイムラインにおける複数のタスクのそれぞれの実行開始時刻及び実行完了時刻を含むバーチャル実行状況情報を収集する。また、バーチャル情報収集部314は、上記バーチャル制御信号を含むバーチャル環境情報を環境情報格納部521から取得し、バーチャル情報データベース315に蓄積する。ステップS73では、バーチャル上位コントローラ500によるプロセスの実行が完了したかをバーチャル情報収集部314が確認する。
 ステップS73においてバーチャル上位コントローラ500によるプロセスの実行が完了していないと判定した場合、データ管理装置300は処理をステップS72に戻す。以後、データ管理装置300は、バーチャル上位コントローラ500によるプロセスの実行が完了するまで、バーチャル実行状況情報及びバーチャル環境情報の取得・蓄積を繰り返す。ステップS73においてバーチャル上位コントローラ500によるプロセスの実行が完了したと判定した場合、バーチャル情報の収集手順が完了する。
 図29は、乖離タスクの抽出手順を例示するフローチャートである。データ管理装置300は、まずステップS81,S82,S83を実行する。ステップS81では、タスク比較部316が、プロセスにおける最初のタスクを選択する。以下、タスク比較部316が選択したタスクを「比較対象タスク」という。ステップS82では、タスク比較部316が、比較対象タスクのリアル実行状況情報をリアル情報データベース313から抽出し、比較対象タスクのバーチャル実行状況情報をバーチャル情報データベース315から抽出し、抽出したリアル実行状況情報とバーチャル実行状況情報とを比較する。ステップS83では、タスク比較部316が、抽出したリアル実行状況情報と、抽出したバーチャル実行状況情報とに乖離があるか否かを確認する。
 ステップS83において抽出したリアル実行状況情報と、抽出したバーチャル実行状況情報とに乖離があると判定した場合、データ管理装置300はステップS84を実行する。ステップS84では、タスク比較部316が、比較対象タスクを乖離タスクの抽出結果に追加する。
 次に、データ管理装置300は、ステップS85を実行する。ステップS83において、抽出したリアル実行状況情報と、抽出したバーチャル実行状況情報とに乖離がないと判定した場合、データ管理装置300は、ステップS84を実行することなくステップS85を実行する。ステップS85では、タスク比較部316が、プロセスの全タスクについて、リアル実行状況情報とバーチャル実行状況情報との比較が完了したかを確認する。
 ステップS85においてリアル実行状況情報とバーチャル実行状況情報との比較が完了していないタスクがプロセスに残っていると判定した場合、データ管理装置300は、ステップS886を実行する。ステップS86では、タスク比較部316が、プロセスから次の比較対象タスクを選択する。その後、データ管理装置300は処理をステップS82に戻す。以後、全タスクの比較が完了するまで、タスクごとにリアル実行状況情報とバーチャル実行状況情報とを比較することが繰り返される。
 ステップS85においてプロセスの全タスクについて、リアル実行状況情報とバーチャル実行状況情報との比較が完了したと判定した場合、乖離タスクの検出手順が完了する。
 データ管理装置300が実行する対比手順は、図30に例示する実行状況の対比表示手順を更に含んでもよい。この場合、データ管理装置300は、ステップS91,S92,S93を順に実行する。ステップS91では、状況対比表示部317が、リアル情報収集部312が収集した複数のタスクそれぞれのリアル実行状況情報と、バーチャル情報収集部314が収集した複数のタスクそれぞれのバーチャル実行状況情報とをタスクごとに対比する対比表示画面を生成する。この対比表示画面は、複数のタスクごとのリアル実行状況情報及びバーチャル実行状況情報の表示形態を定めるスタイルデータを含む。
 ステップS92では、表示形態変更部318が、上記スタイルデータにおける1以上の乖離タスクの表示形態を、他のタスクの表示形態と変更する。ステップS93では、状況対比表示部317が、表示形態変更部318によりスタイルデータが変更された対比表示画面を表示部に表示させる。以上で実行状況の対比表示手順が完了する。
 対比手順は、図31に例示する制御信号の抽出手順を更に含んでもよい。図31に示すように、データ管理装置300は、まずステップS101,S102,S103,S104を実行する。ステップS101では、リアル信号抽出部321が、タスク比較部316が抽出した1以上の乖離タスクから最初の乖離タスクを選択する。以下、選択された乖離タスクを「選択済乖離タスク」という。
 ステップS102では、リアル信号抽出部321が、選択済乖離タスクに対応するリアル制御信号をリアル情報データベース313から抽出する。ステップS103では、バーチャル信号抽出部322が、選択済乖離タスクに対応するバーチャル制御信号をバーチャル情報データベース315から抽出する。ステップS104では、リアル信号抽出部321が、1以上の乖離タスクの全てについて、リアル制御信号及びバーチャル制御信号の抽出が完了したか否かを確認する。
 ステップS104においてリアル制御信号及びバーチャル制御信号の抽出が行われていない乖離タスクが残っていると判定した場合、データ管理装置300はステップS105を実行する。ステップS105では、リアル信号抽出部321が、1以上の乖離タスクから次の乖離タスクを選択する。その後、データ管理装置300は処理をステップS102に戻す。以後、1以上の乖離タスクの全てについて、リアル制御信号及びバーチャル制御信号の抽出が完了するまで、データ管理装置300はリアル制御信号及びバーチャル制御信号の抽出を繰り返す。ステップS104において1以上の乖離タスクの全てについて、リアル制御信号及びバーチャル制御信号の抽出が完了したと判定した場合、制御信号の抽出手順が完了する。
 対比手順は、図32に例示する制御信号の対比表示手順を更に含んでもよい。図32に示すように、データ管理装置300は、ステップS111,S112,S113を順に実行する。ステップS111では、信号対比表示部323が、入力デバイス396に対するユーザ入力等に基づいて、1以上の乖離タスクのいずれかを選択する。例えば信号対比表示部323は、実行状況の対比表示画面において、強調表示された乖離タスクを選択する入力に基づいて、1以上の乖離タスクのいずれかを選択する。以下、選択された乖離タスクを「表示対象乖離タスク」という。
 ステップS112では、信号対比表示部323が、表示対象乖離タスクに対応付けてリアル信号抽出部321が抽出したリアル制御信号と、表示対象乖離タスクに対応付けてバーチャル信号抽出部322が抽出したバーチャル制御信号とを制御信号の種別ごとに対比表示する信号対比表示画面を生成する。ステップS113では、信号対比表示部323が、信号対比表示画面を表示部に表示させる。以上で制御信号の対比表示手順が完了する。
(プログラム生成手順)
 図33に示すように、データ管理装置300は、ステップS121,S122,S123,S124,S125,S126,S127を順に実行する。ステップS121では、プログラム取得部331が、各ローカルコントローラ100において、ティーチングにより登録されたワーキングタスクのタスクプログラム130を取得し、バーチャルローカルコントローラ400のタスクプログラム格納部411に記憶させる。ステップS122では、パラメータ取得部332が、各ローカルコントローラ100において、上記パラメータ保持部112が記憶する1以上のパラメータを取得し、バーチャルローカルコントローラ400のパラメータ保持部412に記憶させる。ステップS123では、プログラム生成部333が、プログラム取得部331が取得したワーキングタスクと、モデル格納部311が記憶するモデル情報とに基づいて上記1以上のエアカットタスクを生成し、タスクプログラム格納部411に記憶させる。
 ステップS124では、プロセス割当部513が、生産オーダが指定するワーク9に対しプロセスを割り当ててプロセス格納部514に記憶させる。ステップS125では、データ管理装置300が、実行可否条件を生成する。ステップS125の具体的内容については後述する。ステップS126では、データ管理装置300が、優先度を生成する。ステップS126の具体的内容については後述する。ステップS127では、プログラム配信部335が、タスクプログラム格納部411の生成済みのプログラムを、対応するローカルコントローラ100に出力し、当該ローカルコントローラ100のタスクプログラム格納部111に記憶させる。以上でプログラム生成手順が完了する。
 図34は、ステップS125における実行可否条件の生成手順を例示するフローチャートである。図34に示すように、データ管理装置300は、ステップS131,S132,S133,S134を順に実行する。ステップS131では、バーチャル上位コントローラ500及びバーチャルローカルコントローラ400が、タスクプログラム格納部411の複数のタスクプログラム130に基づいて、バーチャル空間における複数のタスクを複数のバーチャルローカル機器に実行させる。
 ステップS132では、プログラム生成部333が、バーチャル情報データベース315に蓄積されたバーチャル環境情報に基づいて、バーチャルローカル機器同士の動作範囲の重複領域を抽出する。例えばプログラム生成部333は、第1バーチャルローカル機器の動作領域と、第2バーチャルローカル機器の動作領域との重複領域を算出する。
 ステップS133では、プログラム生成部333が、重複領域に2以上のバーチャルローカル機器が同じ重複領域に入ることが無いように、複数のタスクのそれぞれの実行可否条件を生成する。例えば、第2バーチャルローカル機器が重複領域内に位置しないことを含むように第1バーチャルローカル機器のタスクの実行可否条件を生成し、第1バーチャルローカル機器が重複領域内に位置しないことを含むように第2バーチャルローカル機器のタスクの実行可否条件を生成する。ステップS134では、プログラム生成部333が、生成した実行可否条件を、対応するタスクのタスクプログラム130の条件ヘッダ131に登録する。以上で実行可否条件の生成手順が完了する。
 図35は、ステップS126における優先度の生成手順を例示するフローチャートである。図35に示すように、データ管理装置300は、まずステップS141,S142,S143,S144を実行する。ステップS141では、プログラム生成部333が、複数のタスクのそれぞれの優先度を定める優先度組み合わせをランダムに仮決めし、仮決めした優先度組み合わせのそれぞれを対応するタスクプログラム130の条件ヘッダ131に登録する。ステップS142では、バーチャル上位コントローラ500及びバーチャルローカルコントローラ400が、タスクプログラム格納部411の複数のタスクプログラム130に基づいて、バーチャル空間における複数のタスクを複数のバーチャルローカル機器に実行させる。
 ステップS143では、プログラム生成部333が、バーチャル情報データベース315に蓄積されたバーチャル実行状況情報に基づいて、複数のプロセスの実行時間を評価する。ステップS144では、優先度を変更し、複数のプロセスの実行時間を評価する試行の回数が所定回数に達したかを、プログラム生成部333が確認する。
 ステップS144において、試行の回数が所定回数に達していないと判定した場合、データ管理装置300はステップS145を実行する。ステップS145では、プログラム生成部333が、優先度組み合わせをランダムに変更し、変更した優先度組み合わせのそれぞれを対応するタスクプログラム130の条件ヘッダ131に登録する。その後、ローカルコントローラ100は処理をステップS142に戻す。以後、上記試行の回数が所定回数に達するまで、優先度組み合わせの変更と、複数のプロセスの実行時間の評価とが繰り返される。
 ステップS144において試行の回数が所定回数に達したと判定した場合、データ管理装置300はステップS146を実行する。ステップS146では、プログラム生成部333が、上記試行において、複数のプロセスの実行時間が最も短くなった優先度組み合わせを採用し、採用した優先度組み合わせのそれぞれを対応するタスクプログラム130の条件ヘッダ131に登録する。以上で優先度の生成手順が完了する。
(調整手順)
 図36に示すように、データ管理装置300は、ステップS151,S152,S153,S154,S155を順に実行する。ステップS151では、データ管理装置300が、上記対比手順を実行する。ステップS152では、データ管理装置300が、ステップS151の対比手順にて抽出されたリアル制御信号及びバーチャル制御信号の少なくとも一方に基づいて、複数のバーチャルローカル機器のモデルのパラメータを調整する。ステップS152の具体的な処理内容については後述する。ステップS153では、データ管理装置300が所定期間の経過を待機する。ステップS154では、データ管理装置300が上記対比手順を実行する。
 ステップS155では、データ管理装置300が、ステップS154の対比手順にて抽出されたリアル制御信号及びバーチャル制御信号の少なくとも一方に基づいて、複数のローカルコントローラ100の制御パラメータ(パラメータ保持部112のパラメータ)を調整する。ステップS155の具体的な処理内容については後述する。以上で調整手順が完了する。
 図37は、ステップS152におけるモデルのパラメータの調整手順を例示するフローチャートである。図37に示すように、データ管理装置300は、まずステップS161,S162,S163,S164を実行する。ステップS161では、バーチャル調整部341が、タスク比較部316が抽出した1以上の乖離タスクから最初の乖離タスクを選択する。以下、選択された乖離タスクを「バーチャル調整乖離タスク」という。
 ステップS162では、バーチャル調整部341が、バーチャル調整乖離タスクに対応するリアル制御信号とバーチャル制御信号とに基づいて、リアル実行状況情報とバーチャル実行状況情報との乖離要因となったバーチャルローカル機器のモデル化誤差を導出する。
 ステップS163では、バーチャル調整部341が、ステップS162で導出したモデル化誤差に基づいて、モデル格納部311が記憶するモデルのパラメータを修正する。ステップS164では、バーチャル調整部341が、1以上の乖離タスクの全てについて、モデルのパラメータの調整が完了したか否かを確認する。
 ステップS164において、モデルのパラメータの調整が完了していない乖離タスクが残っていると判定した場合、データ管理装置300はステップS165を実行する。ステップS165では、バーチャル調整部341が、1以上の乖離タスクから次の乖離タスクを選択する。その後、データ管理装置300は処理をステップS161に戻す。以後、1以上の乖離タスクの全てについて、モデルの調整が完了するまで、データ管理装置300はモデルのパラメータの調整を繰り返す。ステップS164において1以上の乖離タスクの全てについて、モデルのパラメータの調整が完了したと判定した場合、モデルのパラメータの調整手順が完了する。
 図38は、ステップS153における制御パラメータの調整手順を例示するフローチャートである。データ管理装置300は、まずステップS171,S172,S173を実行する。ステップS171では、リアル調整部342が、タスク比較部316が抽出した1以上の乖離タスクから最初の乖離タスクを選択する。以下、選択された乖離タスクを「リアル調整乖離タスク」という。
 ステップS172では、リアル調整部342が、リアル調整乖離タスクに対応するリアル制御信号とバーチャル制御信号とに基づいて、リアル実行状況情報とバーチャル実行状況情報との乖離を縮小可能な制御パラメータを選択する。以下、選択した制御パラメータを「選択済み制御パラメータ」という。ステップS173では、リアル調整部342が、リアル調整乖離タスクに対応するリアル制御信号とバーチャル制御信号との差を、選択済み制御パラメータによって所望のレベルまで抑制できるか否かを確認する。
 ステップS173において、リアル調整乖離タスクに対応するリアル制御信号とバーチャル制御信号との差を、選択済み制御パラメータによって所望のレベルまで抑制できると判定した場合、データ管理装置300はステップS174,S175を実行する。ステップS174では、リアル調整部342が、リアル調整乖離タスクに対応するリアル制御信号とバーチャル制御信号との差を所望のレベルまで抑制するように、選択済み制御パラメータを変更し、変更結果を対応するローカルコントローラ100のパラメータ保持部112に登録する。ステップS175では、1以上の乖離タスクの全てについて、制御パラメータの調整が完了したか否かを、リアル調整部342が確認する。
 ステップS175において、制御パラメータの調整が完了していない乖離タスクが残っていると判定した場合、データ管理装置300はステップS176を実行する。ステップS176では、リアル調整部342が、1以上の乖離タスクから次の乖離タスクを選択する。その後、データ管理装置300は処理をステップS171に戻す。以後、1以上の乖離タスクの全てについて、制御パラメータの調整が完了するまで、データ管理装置300は制御パラメータの調整を繰り返す。
 ステップS175において1以上の乖離タスクの全てについて、制御パラメータの調整が完了したと判定した場合、制御パラメータの調整手順が完了する。ステップS173において、リアル調整乖離タスクに対応するリアル制御信号とバーチャル制御信号との差を、選択済み制御パラメータによって所望のレベルまで抑制できないと判定した場合、データ管理装置300は、ステップS177,S178,S179を実行する。
 ステップS177では、状態変化検出部343が、リアル調整乖離タスクに対応するリアル制御信号とバーチャル制御信号とに基づいて、バーチャルローカル機器2及び当該バーチャルローカル機器2が協働する装置の少なくとも一方の状態変化を検出する。ステップS178では、状態変化検出部343が、状態変化を検出したことを表示部に表示させる。
 ステップS179では、再現部344が、状態変化検出部343が状態変化を検出したタスク(上記変化発生タスク)に対応するリアル制御信号に基づいて、変化発生タスクを実行する管轄ローカル機器2の動作を管轄バーチャルロボットに再現させる。例えば再現部344は、モデル格納部311が記憶するバーチャルローカル機器のモデルと、変化発生タスクに対応するリアル制御信号とに基づいて、変化発生タスクを実行するローカル機器2の動作の再現動画を生成し、表示部等に表示させる。その後、データ管理装置300は、制御パラメータの調整手順を中止する。
 図39は、制御パラメータの調整手順の変形例を示すフローチャートである。このフローチャートにおいて、ステップS181~S189は、ステップS171~S179と同様である。図39の調整手順は、制御パラメータの調整が完了するステップS185の後に、ステップS191~S193を更に有する。この調整手順において、データ管理装置300は、ステップS191,S192,S193を順に実行する。ステップS191では、パラメータ取得部332が変更後の制御パラメータをパラメータ保持部112から取得し、パラメータ保持部412に登録する。ステップS192では、データ管理装置300が、上記対比手順を実行する。ステップS193では、データ管理装置300が、ステップS152と同様の調整手順を実行する。付加されたステップS191~S193によって、ローカル機器2の変化が、対応するバーチャルローカル機器のモデルのパラメータに反映される。
 データ管理装置300が実行するデータ管理手順は、状態変化が検出された際の再現表示手順に加え、異常検出時の再現表示手順を更に含んでいてもよい。図40は再現表示手順を例示するフローチャートである。図40に示すように、データ管理装置300は、ステップS201,S202を順に実行する。ステップS201では、再現部344が、上位コントローラ200が発生するアラーム信号等に基づいて、管轄ローカル機器2及び管轄ローカル機器2が協働する装置の少なくとも一方の異常を異常検出部345が検出するのを待機する。ステップS202では、再現部344が、異常が発生した時点の前及び後の少なくとも一方の管轄ローカル機器2の動作を、リアル制御信号に基づいて管轄バーチャルローカル機器に再現させる。以上で再現表示手順が完了する。
(環境情報更新手順)
 図41に示すように、データ管理装置300は、ステップS211,S212,S213,S214を順に実行する。ステップS211では、外部センサ5が検出したセンサ情報を、センサ情報処理部351が取得する。ステップS212では、センサ情報処理部351が、外部センサ5から取得したセンサ情報に対して、所定の処理を行う。ステップS213では、情報更新部352が、センサ情報処理部351の処理結果に基づいて、リアル情報データベース313における最新の環境情報を更新する。ステップS214では、リアル情報収集部312が、上記最新の環境情報の更新結果に合わせて、上位コントローラ200の環境情報格納部221の環境情報を更新する。以上で環境情報更新手順が完了する。
〔本実施形態の効果〕
 以上に説明したように、生産システム1は、ワーク9に対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいて、次タスクの実行指令を出力する指令出力部215と、環境情報を記憶する環境情報格納部221と、指令出力部215から出力された実行指令と、環境情報格納部221の環境情報とに基づいて、ロボット2B,2C,10に次タスクを実行させるローカルコントローラ100(ロボットコントローラ)と、ロボット2B,2C,10の動作に応じて、環境情報格納部221の環境情報を更新する環境更新部222と、を備える。
 生産システム1によれば、次タスクの実行指令に加え、環境情報をローカルコントローラ100に提供することによって、環境情報に基づくロボット2B,2C,10の自律的なタスク遂行を容易に実現することができる。これにより、個々のタスクのロボット2B,2C,10による自律的な遂行を容易に実現することができる。このため、複数のタスクの進捗に基づいて次タスクの実行指令を出力し、ロボット2B,2C,10の動作に応じて環境情報を更新する簡素な処理によって、複数のタスクを適切な順序で容易に遂行させることができる。このため、ワーク9の生産計画の変化又は生産環境の変化に応じて、ロボット2B,2C,10に実行させる複数のタスクを容易に組み替えることができる。従って、生産システムの柔軟性向上に有効である。
 生産システム1は、ロボット2B,2C,10による次タスクの実行状況に応じて、進捗情報を更新する進捗更新部216を更に備えていてもよい。この場合、次タスクの実行状況に応じて進捗情報を更新することによって、適切な進捗管理を継続することができる。
 生産システム1は、上位生産管理システムからワーク9の生産オーダを取得するオーダ取得部212と、生産オーダが指定するワーク9に対しプロセスを割り当てるプロセス割当部213と、を更に備え、指令出力部215は、生産オーダが指定するワーク9に対しプロセス割当部213が割り当てたプロセスと、当該プロセスの進捗情報とに基づいて、次タスクの実行指令を出力してもよい。この場合、ワーク9に対するプロセスの割り当てがプロセス割当部213により行われ、プロセスの進捗に基づく次タスクの実行指令が指令出力部215により出力され、実行指令と環境情報とに基づいて次タスクがロボット2B,2C,10により順次実行される。このため、生産管理システムにおいては、生産オーダを生産システム1に割り振る簡素な処理によって生産を管理することができる。
 ローカルコントローラ100は、複数のタスクのうち1以上のタスクごとに予め定められた1以上の実行条件を記憶するタスクプログラム格納部111(条件記憶部)と、タスクプログラム格納部111における次タスクの実行条件と、環境情報格納部221の環境情報とに基づいてロボット2B,2C,10に次タスクを実行させる制御部116と、を有していてもよい。この場合、環境情報と組み合わせて参照される実行条件を予め定めておくことにより、ロボット2B,2C,10による自律的な動作を、進捗管理に合わせて調節することができる。
 プロセス割当部213は、オーダ取得部212が複数のワーク9の生産オーダを取得した場合に、当該複数のワーク9に対して複数のプロセスをそれぞれ割り当て、複数のプロセスのそれぞれが複数のタスクを含み、指令出力部215は、複数のプロセスごとの複数の進捗情報に基づいて、複数のプロセスごとに複数の次タスクの実行指令を出力し、ローカルコントローラ100は、複数の次タスクの実行指令を記憶する指令バッファ113と、タスクプログラム格納部111における複数の次タスクのそれぞれの実行条件と、環境情報格納部221の環境情報とに基づいて、指令バッファ113の複数の次タスクのいずれかを選択する選択部115と、を更に有し、制御部116は、選択部115が選択した次タスクをロボット2B,2C,10に実行させてもよい。この場合、複数のワーク9に対するタスクの選択もローカルコントローラ100に委ねることによって、複数のワーク9に対するタスクの進捗管理が更に簡素化される。従って、生産システムの柔軟性向上に更に有効である。
 1以上の実行条件のそれぞれには、対応するタスクの優先度が含まれており、選択部115は、指令バッファ113の複数の次タスクのうち2以上の次タスクが実行可能である場合に、優先度が最も高い次タスクを選択してもよい。この場合、より適切な選択により、柔軟性と効率の両立を図ることが可能となる。
 複数のタスクは、ロボット2B,2C,10の他の産業機械が実行するマシンタスクを含み、環境情報には、マシンタスクの完了時間に対応した待ち時間が含まれ、ローカルコントローラ100は、指令バッファ113の複数の次タスクが、マシンタスクが完了したら実行可能になる第1タスクと、すでに実行可能な第2タスクとを含む場合、第1タスク及び第2タスクの優先度と、待ち時間とに基づいて、選択部による次タスクの選択タイミングを調整する選択タイミング調節部121を更に有していてもよい。この場合、より適切な選択により、柔軟性と効率の両立を図ることが可能となる。
 選択タイミング調節部121は、第1タスクの優先度が、第2タスクの優先度よりも高く、待ち時間が所定の閾値以下の場合、選択部による次タスクの選択タイミングを待ち時間の経過時以降にしてもよい。この場合、より適切な選択により、柔軟性と効率の両立を図ることが可能となる。
 ローカルコントローラ100は、指令バッファ113の複数の次タスクが、第1タスクと、第1タスクよりも優先度の低い第2タスクとを含み、ロボット2B,2C,10による第2タスクの実行中に第1タスクが実行可能になった場合、制御部116に第2タスクを中断させ、選択部に第1タスクを選択させる中断部122を更に備えていてもよい。この場合、より適切な選択により、柔軟性と効率の両立を図ることが可能となる。
 中断部122は、制御部116によりロボットを第2タスクの開始前の状態に戻させた後に、選択部115に第1タスクを選択させてもよい。この場合、第2タスクの実行中に第2ワークを解放することが困難な場合であっても、容易に第2タスクを中断させて第1タスクを優先することができる。
 第1タスクは第1ワーク9Aの搬送を含み、第2タスクは第2ワーク9Bの搬送を含み、中断部122は、ロボット2B,2C,10による第2タスクの実行中に第1タスクが実行可能となった場合に、制御部116によりロボット2B,2C,10を第2ワーク9Bの搬送開始前の状態に戻させた後に、選択部115に第1タスクを選択してもよい。この場合、第2タスクの実行中に第2ワーク9Bを解放することが困難な場合であっても、容易に第2タスクを中断させて第1タスクを優先することができる。
 中断部122は、制御部116に第2タスクの実行を中断させ、選択部115に第1タスクを選択させる場合に比較して、第2タスクの完了後に選択部115に第1タスクを選択させる方が複数のプロセスの実行時間が短縮される場合に、第2タスクを制御部116に中断させなくてもよい。この場合、より適切な選択により、柔軟性と効率の両立を図ることが可能となる。
 生産システム1は、ロボット2B,2C,10に対応するバーチャルロボットのバーチャル空間における動作に基づいて、1以上の実行条件の少なくとも一部を生成するプログラム生成部333(実行条件生成部)を更に備えていてもよい。この場合、適切な実行条件を容易に生成することができる。
 プログラム生成部333は、1以上の実行条件に基づいてバーチャルロボットが動作する場合の、バーチャル空間における複数のプロセスの実行時間を短縮するように、1以上の実行条件の少なくとも一部を変更してもよい。この場合、適切な実行条件を容易に生成することができる。
 生産システム1は、プロセスと、バーチャル空間における当該プロセスの進捗情報とに基づいて、次タスクの実行指令を出力する指令出力部515(バーチャル指令出力部)と、バーチャル環境情報を記憶する環境情報格納部521(バーチャル環境情報格納部)と、指令出力部515から出力された実行指令と、環境情報格納部521のバーチャル環境情報とに基づいて、バーチャルロボットにバーチャル空間において次タスクを実行させるバーチャルローカルコントローラ400(バーチャルロボットコントローラ)と、バーチャルロボットの動作に応じて、環境情報格納部521のバーチャル環境情報を更新する環境更新部522(バーチャル環境更新部)と、を更に備えていてもよい。この場合、バーチャル空間において、よりリアル空間に近い条件でバーチャルロボットを動作させ、適切な実行条件を容易に生成することができる。
 複数のタスクは、ロボット2Bが実行する第1ロボットタスクと、第2ロボット2Cが実行する第2ロボットタスクとを含み、プログラム生成部333は、バーチャルロボットと、第2ロボットに対応する第2バーチャルロボットとのバーチャル空間における衝突を避けるように、第1ロボットタスクの実行条件と第2ロボットタスクの実行条件とを生成してもよい。この場合、衝突回避のための実行条件を容易に生成することができる。
 プログラム生成部333は、第1ロボットタスクを実行するバーチャルロボットの動作領域と、第2ロボットタスクを実行する第2バーチャルロボットの動作領域との重複領域を導出し、第2バーチャルロボットが重複領域内に位置しないことを含むように第1ロボットタスクの実行条件を生成し、バーチャルロボットが重複領域内に位置しないことを含むように第2ロボットタスクの実行条件を生成してもよい。この場合、衝突回避のための実行条件を更に容易に生成することができる。
 以上、実施形態について説明したが、本開示は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変更が可能である。
 1…生産システム、2B,2C,10…ロボット、9…ワーク、9A…第1ワーク、9B…第2ワーク、100…ローカルコントローラ(ロボットコントローラ)、111…タスクプログラム格納部(条件記憶部)、113…指令バッファ、115…選択部、116…制御部、121…選択タイミング調節部、122…中断部、200…上位コントローラ(セルコントローラ)、212…オーダ取得部、213…プロセス割当部、215…指令出力部、216…進捗更新部、221…環境情報格納部、222…環境更新部、333…プログラム生成部(実行条件生成部)、400…バーチャルローカルコントローラ(バーチャルコントローラ)、515…指令出力部(バーチャル指令出力部)、521…環境情報格納部(バーチャル環境情報格納部)、522…環境更新部(バーチャル環境更新部)。

Claims (22)

  1.  ワークに対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいて、次タスクの実行指令を出力する指令出力部と、
     環境情報を記憶する環境情報格納部と、
     前記指令出力部から出力された実行指令と、前記環境情報格納部の環境情報とに基づいて、ロボットに前記次タスクを実行させるロボットコントローラと、
     前記ロボットの動作に応じて、前記環境情報格納部の環境情報を更新する環境更新部と、
    を備える生産システム。
  2.  前記ロボットによる前記次タスクの実行状況に応じて、前記進捗情報を更新する進捗更新部を更に備える、請求項1記載の生産システム。
  3.  上位生産管理システムからワークの生産オーダを取得するオーダ取得部と、
     前記生産オーダが指定するワークに対しプロセスを割り当てるプロセス割当部と、を更に備え、
     前記指令出力部は、前記生産オーダが指定するワークに対し前記プロセス割当部が割り当てたプロセスと、当該プロセスの進捗情報とに基づいて、前記次タスクの実行指令を出力する、請求項1又は2記載の生産システム。
  4.  前記ロボットコントローラは、
      前記複数のタスクのうち1以上のタスクごとに予め定められた1以上の実行条件を記憶する条件記憶部と、
      前記条件記憶部における前記次タスクの実行条件と、前記環境情報格納部の環境情報とに基づいて前記ロボットに前記次タスクを実行させる制御部と、を有する、請求項3記載の生産システム。
  5.  前記プロセス割当部は、前記オーダ取得部が複数のワークの生産オーダを取得した場合に、当該複数のワークに対して複数のプロセスをそれぞれ割り当て、前記複数のプロセスのそれぞれが複数のタスクを含み、
     前記指令出力部は、前記複数のプロセスごとの複数の進捗情報に基づいて、前記複数のプロセスごとに複数の次タスクの実行指令を出力し、
     前記ロボットコントローラは、
      前記複数の次タスクの実行指令を記憶する指令バッファと、
      前記条件記憶部における前記複数の次タスクのそれぞれの実行条件と、前記環境情報格納部の環境情報とに基づいて、前記指令バッファの前記複数の次タスクのいずれかを選択する選択部と、を更に有し、
     前記制御部は、前記選択部が選択した次タスクを前記ロボットに実行させる、請求項4記載の生産システム。
  6.  前記1以上の実行条件のそれぞれには、対応するタスクの優先度が含まれており、
     前記選択部は、前記指令バッファの複数の次タスクのうち2以上の次タスクが実行可能である場合に、優先度が最も高い次タスクを選択する、請求項5記載の生産システム。
  7.  前記複数のタスクは、前記ロボットの他の産業機械が実行するマシンタスクを含み、
     前記環境情報には、前記マシンタスクの完了時間に対応した待ち時間が含まれ、
     前記ロボットコントローラは、
      前記指令バッファの複数の次タスクが、前記マシンタスクが完了したら実行可能になる第1タスクと、すでに実行可能な第2タスクとを含む場合、前記第1タスク及び前記第2タスクの優先度と、前記待ち時間とに基づいて、前記選択部による次タスクの選択タイミングを調整する選択タイミング調節部を更に有する、請求項6記載の生産システム。
  8.  前記選択タイミング調節部は、前記第1タスクの優先度が、前記第2タスクの優先度よりも高く、前記待ち時間が所定の閾値以下の場合、前記選択部による次タスクの選択タイミングを前記待ち時間の経過時以降にする、請求項7記載の生産システム。
  9.  前記ロボットコントローラは、前記指令バッファの複数の次タスクが、第1タスクと、第1タスクよりも優先度の低い第2タスクとを含み、前記ロボットによる前記第2タスクの実行中に前記第1タスクが実行可能になった場合、前記制御部に前記第2タスクを中断させ、前記選択部に前記第1タスクを選択させる中断部を更に備える、請求項6記載の生産システム。
  10.  前記中断部は、前記制御部により前記ロボットを前記第2タスクの開始前の状態に戻させた後に、前記選択部に前記第1タスクを選択させる、請求項9記載の生産システム。
  11.  前記第1タスクは第1ワークの搬送を含み、
     前記第2タスクは第2ワークの搬送を含み、
     前記中断部は、前記ロボットによる前記第2タスクの実行中に前記第1タスクが実行可能となった場合に、前記制御部により前記ロボットを前記第2ワークの搬送開始前の状態に戻させた後に、前記選択部に前記第1タスクを選択する、請求項10記載の生産システム。
  12.  前記中断部は、前記制御部に前記第2タスクの実行を中断させ、前記選択部に前記第1タスクを選択させる場合に比較して、前記第2タスクの完了後に前記選択部に前記第1タスクを選択させる方が前記複数のプロセスの実行時間が短縮される場合に、前記第2タスクを前記制御部に中断させない、請求項9~11のいずれか一項記載の生産システム。
  13.  前記ロボットに対応するバーチャルロボットのバーチャル空間における動作に基づいて、前記1以上の実行条件の少なくとも一部を生成する実行条件生成部を更に備える、請求項5~12のいずれか一項記載の生産システム。
  14.  前記実行条件生成部は、前記1以上の実行条件に基づいて前記バーチャルロボットが動作する場合の、前記バーチャル空間における前記複数のプロセスの実行時間を短縮するように、前記1以上の実行条件の少なくとも一部を変更する、請求項13記載の生産システム。
  15.  前記プロセスと、前記バーチャル空間における当該プロセスの進捗情報とに基づいて、次タスクの実行指令を出力するバーチャル指令出力部と、
     バーチャル環境情報を記憶するバーチャル環境情報格納部と、
     前記バーチャル指令出力部から出力された実行指令と、前記バーチャル環境情報格納部のバーチャル環境情報とに基づいて、前記バーチャルロボットに前記バーチャル空間において前記次タスクを実行させるバーチャルロボットコントローラと、
     前記バーチャルロボットの動作に応じて、前記バーチャル環境情報格納部のバーチャル環境情報を更新するバーチャル環境更新部と、を更に備える、請求項13又は14記載の生産システム。
  16.  前記複数のタスクは、前記ロボットが実行する第1ロボットタスクと、第2ロボットが実行する第2ロボットタスクとを含み、
     前記実行条件生成部は、前記バーチャルロボットと、前記第2ロボットに対応する第2バーチャルロボットとの前記バーチャル空間における衝突を避けるように、前記第1ロボットタスクの実行条件と前記第2ロボットタスクの実行条件とを生成する、請求項13~15のいずれか一項記載の生産システム。
  17.  前記実行条件生成部は、前記第1ロボットタスクを実行する前記バーチャルロボットの動作領域と、前記第2ロボットタスクを実行する前記第2バーチャルロボットの動作領域との重複領域を導出し、前記第2バーチャルロボットが前記重複領域内に位置しないことを含むように前記第1ロボットタスクの実行条件を生成し、前記バーチャルロボットが前記重複領域内に位置しないことを含むように前記第2ロボットタスクの実行条件を生成する、請求項16記載の生産システム。
  18.  前記指令出力部と、前記環境情報格納部と、前記環境更新部とは、前記ロボットコントローラと通信可能なセルコントローラに設けられている、請求項1~17のいずれか一項記載の生産システム。
  19.  ワークに対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいて、次タスクの実行指令をロボットコントローラに送信する指令出力部と、
     環境情報を記憶する環境情報格納部と、
     前記実行指令と、前記環境情報格納部の環境情報とに基づいて、前記ロボットコントローラがロボットに実行させた動作に応じて、環境情報を更新する環境更新部と、を備えるセルコントローラ。
  20.  ワークに対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいてセルコントローラが送信した次タスクの実行指令を記憶する指令バッファと、
     ロボットによるタスクの実行に応じて前記セルコントローラにより更新される環境情報と、前記実行指令とに基づいて、前記次タスクを前記ロボットに実行させる制御部と、
     前記次タスクの実行状況を前記セルコントローラに送信する進捗送信部と、を備えるロボットコントローラ。
  21.  ワークに対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいて、次タスクの実行指令をロボットコントローラに送信することと、
     環境情報格納部に環境情報を記憶することと、
     前記実行指令と、前記環境情報格納部の環境情報とに基づいて、前記ロボットコントローラがロボットに実行させた動作に応じて、環境情報を更新することと、を含む制御方法。
  22.  ワークに対する複数のタスクを含むプロセスと、当該プロセスの進捗情報とに基づいてセルコントローラが送信した次タスクの実行指令を指令バッファに記憶することと、
     ロボットによるタスクの実行に応じて前記セルコントローラにより更新される環境情報と、前記実行指令とに基づいて、前記次タスクを前記ロボットに実行させることと、
     前記次タスクの実行状況を前記セルコントローラに送信することと、を含む制御方法。
PCT/JP2021/021758 2020-06-08 2021-06-08 生産システム、セルコントローラ、ロボットコントローラ及び制御方法 WO2021251385A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202180039869.5A CN115697649A (zh) 2020-06-08 2021-06-08 生产系统、单元控制器、机器人控制器以及控制方法
EP21822136.4A EP4144491A1 (en) 2020-06-08 2021-06-08 Production system, cell controller, robot controller, and control method
US18/062,019 US20230099602A1 (en) 2020-06-08 2022-12-06 Device control based on execution command and updated environment information

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US202063035829P 2020-06-08 2020-06-08
US63/035,829 2020-06-08
US202063046701P 2020-07-01 2020-07-01
US63/046,701 2020-07-01
JP2020140303A JP6951523B1 (ja) 2020-06-08 2020-08-21 生産システム、セルコントローラ、ロボットコントローラ及び制御方法
JP2020-140303 2020-08-21

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/062,019 Continuation US20230099602A1 (en) 2020-06-08 2022-12-06 Device control based on execution command and updated environment information

Publications (1)

Publication Number Publication Date
WO2021251385A1 true WO2021251385A1 (ja) 2021-12-16

Family

ID=78114176

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/021758 WO2021251385A1 (ja) 2020-06-08 2021-06-08 生産システム、セルコントローラ、ロボットコントローラ及び制御方法

Country Status (5)

Country Link
US (1) US20230099602A1 (ja)
EP (1) EP4144491A1 (ja)
JP (2) JP6951523B1 (ja)
CN (1) CN115697649A (ja)
WO (1) WO2021251385A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11755003B2 (en) * 2021-09-30 2023-09-12 Hitachi, Ltd. Autonomous task management industrial robot

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02257204A (ja) * 1989-03-29 1990-10-18 Yaskawa Electric Mfg Co Ltd 複数ロボット腕の衝突回避制御方式
JPH06301412A (ja) * 1993-04-14 1994-10-28 Citizen Watch Co Ltd ロボットセル用制御装置
JPH0744214A (ja) * 1993-07-27 1995-02-14 Nkk Corp ロボット群の制御システム
JP2006343828A (ja) * 2005-06-07 2006-12-21 Fanuc Ltd ロボット制御装置及びロボット制御方法
JP2018097661A (ja) * 2016-12-14 2018-06-21 オムロン株式会社 生産システム、制御装置、および制御方法
JP2018153881A (ja) 2017-03-16 2018-10-04 株式会社安川電機 コントロールシステム、コントローラ及び制御方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02257204A (ja) * 1989-03-29 1990-10-18 Yaskawa Electric Mfg Co Ltd 複数ロボット腕の衝突回避制御方式
JPH06301412A (ja) * 1993-04-14 1994-10-28 Citizen Watch Co Ltd ロボットセル用制御装置
JPH0744214A (ja) * 1993-07-27 1995-02-14 Nkk Corp ロボット群の制御システム
JP2006343828A (ja) * 2005-06-07 2006-12-21 Fanuc Ltd ロボット制御装置及びロボット制御方法
JP2018097661A (ja) * 2016-12-14 2018-06-21 オムロン株式会社 生産システム、制御装置、および制御方法
JP2018153881A (ja) 2017-03-16 2018-10-04 株式会社安川電機 コントロールシステム、コントローラ及び制御方法

Also Published As

Publication number Publication date
JP2021193543A (ja) 2021-12-23
JP6951523B1 (ja) 2021-10-20
US20230099602A1 (en) 2023-03-30
CN115697649A (zh) 2023-02-03
EP4144491A1 (en) 2023-03-08
JP2021192949A (ja) 2021-12-23

Similar Documents

Publication Publication Date Title
WO2021251389A1 (ja) 制御システム及び制御方法
JP6898506B1 (ja) 制御システム、ロボットシステム及び制御方法
KR102525831B1 (ko) 제어 시스템, 컨트롤러 및 제어 방법
WO2021251385A1 (ja) 生産システム、セルコントローラ、ロボットコントローラ及び制御方法
Johansson et al. Sensor integration in task‐level programming and industrial robotic task execution control
Kuts et al. COLLABORATIVE WORK BETWEEN HUMAN AND INDUSTRIAL ROBOT IN MANUFACTURING BY ADVANCED SAFETY MONITORING SYSTEM.
Al-Hussaini et al. Human-supervised semi-autonomous mobile manipulators for safely and efficiently executing machine tending tasks
Rückert et al. Augmented Reality for teaching collaborative robots based on a physical simulation
CN113874177A (zh) 机器人系统、恢复程序生成装置、控制辅助装置、控制装置、程序、恢复程序的生成方法以及恢复程序的输出方法
JP7374867B2 (ja) 制御システム、ローカルコントローラ及び制御方法
Ji et al. Interface architecture design for minimum programming in human-robot collaboration
Tewkesbury et al. The use of distributed intelligence within advanced production machinery for design applications
Glück et al. Towards a tool-based methodology for developing software for dynamic robot teams
WO2023157889A1 (ja) 生産システム及び生産方法
Senehi et al. Hierarchical control architectures from shop level to end effectors
US20230249347A1 (en) Path planning during execution of robot control
US20230259523A1 (en) Data collection from industrial equipment
JP7485705B2 (ja) ロボットシステム、タスク生成装置及び制御方法
Kovarikova et al. Prototyping an intelligent robotic welding workplace by a cyber-physic tool
Chen et al. Architecture for rapidly reconfigurable robot workcell
Bolmsjö et al. Increased autonomy in industrial robotic systems: A framework
Tewkesbury et al. A framework for the automatic programming of advanced production machinery
Turban Expert systems‐based robot technology
Sanders et al. A new computer aided design environment using intelligence that is distributed throughout advanced production machines

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: 21822136

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021822136

Country of ref document: EP

Effective date: 20221202

NENP Non-entry into the national phase

Ref country code: DE