Simulation system and simulation method
Patent Information
- Application Number
- JP2025527274
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Priority Date
- 2023-06-20
- Filing Date
- 2023-06-20
- Publication Date
- 2026-03-05
AI Technical Summary
Current engineering processes for production systems with multiple machines and controllers are inefficient due to the need for trial and error and require extensive steps to verify operations, especially when dealing with different types of machines and controllers, which complicates collaboration and task allocation.
A simulation system that simulates a cell with multiple types of machines and controllers, allowing for collaboration in a virtual space with specialized user interfaces for each type of controller, enabling engineers to test and optimize control programs without affecting real hardware, thereby improving engineering efficiency.
The simulation system enhances engineering efficiency by allowing collaboration among multiple users with different skills, reducing the need for physical trial and error, and enabling detailed verification of machine operations in a virtual environment, thus streamlining the engineering process for production systems.
Abstract
Description
Simulation system and simulation method
[0001] The present disclosure relates to a simulation system and a simulation method.
[0002] Patent Document 1 discloses a simulation device including a first simulator that simulates control by a first controller over a first machine, a second simulator that simulates control by a second controller over a second machine, and a simulation manager that controls the progress of the simulation by the first simulator and the progress of the simulation by the second simulator so as to correspond to the relationship between the progress of control by the first controller and the progress of control by the second controller.
[0003] International Publication No. 2021 / 261018
[0004] The present disclosure provides a system that is effective in improving engineering efficiency for cells.
[0005] A simulation system according to one aspect of the present disclosure is a system for simulating a cell having multiple types of machines and multiple types of controllers that cause the multiple types of machines to cooperate with each other, and includes a simulation environment that causes multiple types of virtual controllers corresponding to the multiple types of controllers to simulate cooperation, and multiple types of user interfaces that are accessible to each of the multiple types of virtual controllers in the simulation environment, differ from one another depending on the type of corresponding virtual controller, and are each specialized for engineering the corresponding virtual controller.
[0006] A simulation system according to another aspect of the present disclosure is a system for simulating a cell having multiple types of machines and multiple types of controllers that cause the multiple types of machines to cooperate with each other, and includes: multiple types of user interfaces that are accessible to each of the multiple types of controllers, that differ from one another depending on the type of the corresponding controller, and that are specialized for engineering the corresponding controller; a virtual space generation unit that causes the multiple types of machines to further cooperate in a virtual space based on control results of the multiple types of machines by the multiple types of controllers; and a virtual space display unit that displays the virtual space in which the multiple types of machines are cooperating based on the control results on at least one user interface that is accessing the corresponding controller.
[0007] A simulation method according to yet another aspect of the present disclosure is a method for simulating a cell having a plurality of types of machines and a plurality of types of controllers that cause the plurality of types of machines to cooperate with one another, the method including: in a simulation environment including a plurality of types of virtual controllers respectively corresponding to the plurality of types of controllers, causing the plurality of types of virtual controllers to access a plurality of types of user interfaces that differ depending on the type of the corresponding virtual controller and that are each specialized for engineering the corresponding virtual controller; updating the plurality of types of virtual controllers based on input to the plurality of types of user interfaces; and simulating cooperation of the updated plurality of types of virtual controllers in the simulation environment.
[0008] According to the present disclosure, it is possible to provide a system that is effective in improving engineering efficiency for cells.
[0009] 1 is a schematic diagram illustrating the configuration of a production system. FIG. 1 is a schematic diagram illustrating the configuration of a robot. FIG. 2 is a block diagram illustrating the functional configuration of a simulation system. FIG. 3 is a block diagram illustrating a modified example of the simulation system. FIG. 4 is a block diagram illustrating a further modified example of the simulation system. FIG. 5 is a block diagram illustrating a further modified example of the simulation system. FIG. 6 is a block diagram illustrating a further modified example of the simulation system. FIG. 7 is a block diagram illustrating a further modified example of the simulation system. FIG. 8 is a block diagram illustrating a further modified example of the simulation system. FIG. 9 is a block diagram illustrating a further modified example of the simulation system. FIG. 10 is a block diagram illustrating a hardware configuration of a simulation system. FIG. 11 is a flowchart illustrating a pairing procedure. FIG. 12 is a flowchart illustrating a modified example of the pairing procedure. FIG. 13 is a flowchart illustrating a setting update procedure. FIG. 14 is a flowchart illustrating a modified example of the setting update procedure. FIG. 15 is a flowchart illustrating a message update procedure. FIG. 16 is a flowchart illustrating a host simulation procedure. FIG. 17 is a flowchart illustrating a local simulation procedure. FIG. 18 is a flowchart illustrating a virtual space display procedure. FIG. 19 is a flowchart illustrating an export procedure. FIG. 19 is a flowchart illustrating a host control procedure. FIG. 19 is a flowchart illustrating a local control procedure.
[0010] Hereinafter, the embodiments will be described in detail with reference to the drawings. In the description, the same elements or elements having the same functions are denoted by the same reference numerals, and redundant description will be omitted.
[0011] [Production System] The production system 1 shown in Figure 1 is a system that produces products in real space. A product can be any tangible object that is produced by mechanically processing and assembling one or more parts. Real space is the space in which tangible objects actually exist.
[0012] The production system 1 includes a cell 2 and a control system 3. The cell 2 performs processing steps on a workpiece W in real space to produce a product. The workpiece W is a tangible object that the cell 2 handles to form at least a part of the product. For example, the workpiece W may be a part to be assembled into the product, an intermediate product formed by assembling parts, or the final completed product itself.
[0013] The processing steps for the workpiece W include multiple tasks. A task is a set of operations whose order is determined in advance for a specific work purpose. At least one of the multiple tasks can be shared by two or more different processing steps. The execution order of the multiple tasks can be changed depending on the content of the processing step, but the order of operations within a single task cannot be changed. Examples of multiple tasks include carrying a base part into the work area, assembling parts to the base part, fixing parts to the base part by fastening or welding, etc., and carrying out the completed product from the work area after assembling one or more parts to the base part.
[0014] For example, the cell 2 includes multiple machines 5. The multiple machines 5 include two or more machines 5 of different types. Different types means that the platforms for creating control programs are different, for example, due to differences in structure. For example, the multiple machines 5 may include a robot and a machine of a different type from the robot. Examples of machines of a different type from the robot include, but are not limited to, a transport device that transports the workpiece W, a device that adjusts the position and posture of the workpiece W to be worked on by the robot, and a machine tool that processes the workpiece W. Any structure can be included in the multiple machines 5 as long as it is capable of executing tasks on the workpiece W.
[0015] The multiple tasks may include two or more tasks that should be executed sequentially in series, or may include two or more tasks that can be executed simultaneously by multiple machines 5. Examples of tasks executed by a robot include transporting the workpiece W, assembling the workpiece W, fixing the workpiece W (e.g., fastening or welding), and carrying the workpiece W into and out of a peripheral machine such as a machine tool. Examples of tasks executed by a machine tool include opening and closing a door, chucking the carried-in workpiece W, rotating and moving the workpiece W, changing tools, placing and moving tools relative to the workpiece W, and releasing the chucking after processing.
[0016] 1 includes, as two or more different types of machines 5, a transport device 5A, robots 5B and 5C, a robot 5D, and a machine tool 5E, but is not limited to this. As long as at least two or more different types of machines 5 are included, the number and types of machines 5 can be changed in any way.
[0017] The transport device 5A is driven by, for example, an electric motor or the like, and transports the workpiece W. Examples of the transport device 5A include a belt conveyor, a roller conveyor, and a carousel.
[0018] The robots 5B and 5C are vertical articulated robots, and as shown in Fig. 2, have an articulated arm 10 and an end effector 50. The end effector 50 acts on the workpiece W. Examples of the end effector 50 include a hand that grips the workpiece W, a suction nozzle that picks up the workpiece W, a welding torch that welds the workpiece W, or a screw tightening tool that tightens a screw on the workpiece W.
[0019] The articulated arm 10 is connected to an end effector 50 and changes the position and orientation of the end effector 50 by operating the articulated arms. For example, the articulated arm 10 includes a base 11, a swivel 12, a first arm 13, a second arm 14, a swinging unit 15, a third arm 17, a tip 18, and actuators 41, 42, 43, 44, 45, and 46. The base 11 is installed around the transport device 5A. The swivel 12 is provided on the base 11 so as to swivel about a vertical axis 21. The first arm 13 is connected to the swivel 12 so as to swivel about an axis 22 that intersects (e.g., is perpendicular to) the axis 21. The intersection may also be in a twisted relationship, such as a so-called three-dimensional intersection. The second arm 14 is connected to the tip of the first arm 13 so as to swivel about an axis 23 that is substantially parallel to the axis 22. The second arm 14 includes a swinging unit 15 and a rotating unit 16. The swinging unit 15 is connected to the tip of the first arm 13 and extends along an axis 24 that intersects (e.g., is perpendicular to) the axis 23. The rotating unit 16 is connected to the tip of the swinging unit 15 so as to rotate about the axis 24 and extends further along the axis 24. The third arm 17 is connected to the tip of the rotating unit 16 so as to swing about an axis 25 that intersects (e.g., is perpendicular to) the axis 24. The tip 18 is connected to the tip of the third arm 17 so as to rotate about an axis 26 that intersects (e.g., is perpendicular to) the axis 25. A work tool such as a hand, a suction nozzle, or a welding torch is attached to the tip 18.
[0020] Thus, the multi-joint arm 10 has a joint 31 connecting the base 11 and the swivel 12, a joint 32 connecting the swivel 12 and the first arm 13, a joint 33 connecting the first arm 13 and the second arm 14, a joint 34 connecting the swinging part 15 and the swivel 16 in the second arm 14, a joint 35 connecting the swivel 16 and the third arm 17, and a joint 36 connecting the third arm 17 and the tip 18.
[0021] The actuators 41, 42, 43, 44, 45, and 46 include, for example, electric motors and reducers, and drive the joints 31, 32, 33, 34, 35, and 36, respectively. For example, the actuator 41 rotates the rotating unit 12 around the axis 21, the actuator 42 swings the first arm 13 around the axis 22, the actuator 43 swings the second arm 14 around the axis 23, the actuator 44 rotates the rotating unit 16 around the axis 24, the actuator 45 swings the third arm 17 around the axis 25, and the actuator 46 rotates the tip end 18 around the axis 26.
[0022] The configuration of the articulated arm 10 can be changed as appropriate. For example, the articulated arm 10 may be a seven-axis redundant robot in which one more joint is added to the six-axis configuration described above, or may be a so-called SCARA type articulated robot.
[0023] 1 , the robot 5D is an autonomously movable robot. For example, the robot 5D is a robot similar to the robots 5B and 5C, but with a base 11 of the articulated arm 10 that is self-propelled. An example of the self-propelled base 11 is an electric automated guided vehicle (AGV).
[0024] The machine tool 5E performs cutting and other processes on the workpiece W that is carried in and out by the robots 5B and 5C. Examples of the machine tool 5E include an NC lathe, an NC milling machine, and a machining center. The cell 2 may further include a peripheral device whose movement range overlaps with that of any of the robots 5B, 5C, and 5D. For example, the movement range of the robot 5C (peripheral device) may overlap with that of the robot 5B.
[0025] The production system 1 may further include one or more environmental sensors 6. Examples of the environmental sensor 6 include a load sensor provided at a position where the workpiece W can be placed, or a camera that photographs the position where the workpiece W can be placed. The environmental sensor 6 is, for example, a camera or an optical three-dimensional shape sensor, and acquires status information of at least a portion of the environment including the multiple machines 5 and objects surrounding the multiple machines 5. The environmental sensor 6 may be a load sensor that detects whether or not the workpiece W is present at a position where the workpiece W can be placed.
[0026] The control system 3 controls the multiple machines 5 to execute production corresponding to a production plan generated by, for example, a manufacturing execution system (MES). For example, the control system 3 includes multiple controllers 300, a data collection device 200, and a simulation device 100.
[0027] The multiple controllers 300 cause the multiple machines 5 to cooperate with one another. In order to cause the multiple machines 5 to cooperate with one another, each of the multiple controllers 300 executes a respective process based on a predetermined control program.
[0028] For example, the multiple controllers 300 include local controllers 302 that respectively control the multiple machines 5, and a host controller 301. Each of the multiple local controllers 302 controls the corresponding machine 5 based on a predetermined local control program.
[0029] The host controller 301 performs synchronous communication with the multiple local controllers 302. Synchronous communication means that communication with the multiple local controllers 302 is performed in each cycle in synchronization with a synchronization frame of a fixed communication cycle. The host controller 301 aggregates information obtained from the multiple local controllers 302 through synchronous communication to update environmental information, and sequentially assigns tasks to each of the multiple local controllers 302 based on a predetermined host control program and the environmental information. The host controller 301 may also update the environmental information based on the detection results from the environmental sensor 6.
[0030] The local control program of each of the local controllers 302 includes one or more task programs for causing the machine 5 to execute one or more tasks that can be assigned by the host controller 301. Each of the local controllers 302 executes a task program corresponding to a task assigned by the host controller 301, thereby causing the corresponding machine 5 to execute the assigned task.
[0031] Instead of the host controller 301 assigning a task to each of the multiple local controllers 302, each of the multiple local controllers 302 may select and execute one or more task programs based on a comparison of the execution conditions of the one or more task programs with environmental information.
[0032] The multiple controllers 300 may include two or more controllers 300 of different types. Different types include different platforms for creating control programs. For example, the host controller 301 and the local controller 302 may be of different types. For example, the platform for creating the local control program and the platform for creating the host control program may be different from each other.
[0033] The multiple local controllers 302 may include two or more local controllers 302 of different types. For example, the multiple local controllers 302 in FIG. 1 include a local controller 302A that controls the transport device 5A, local controllers 302B, 302C, and 302D that control the robots 5B, 5C, and 5D, and a local controller 302E that controls the machine tool 5E. The platform for creating the local control program for the local controller 302A, the platform for creating the local control programs for the local controllers 302B, 302C, and 302D, and the platform for creating the local control program for the local controller 302E are different from one another. The platforms for creating the local control programs for the local controllers 302B and 302C that control the robots 5B and 5C may be different from the platform for creating the local control programs for the local controller 302D that controls the autonomously traveling robot 5D.
[0034] As an example, a platform based on a robot programming language can be used as a platform for creating the local control programs for the local controllers 302B and 302C, and a platform based on a ladder language can be used as a platform for creating the host control program for the host controller 301.
[0035] The data collection device 200 communicates with, for example, a host controller 301 via a network, and accumulates environmental information updated by the host controller 301 in a database in chronological order. The simulation device 100 simulates the cell 2. Simulating the cell 2 means operating the cell 2 in a virtual space instead of operating the cell 2 in a real space.
[0036] [Simulation System] In the production system 1 described above, engineering for the multiple controllers 300 is required to cause the cell 2 to execute a desired processing step. Engineering includes setting control parameters, creating and editing control programs, and the like. Engineering for the multiple controllers 300 is performed using multiple types of user interfaces that are accessible to each of the multiple controllers 300, differ depending on the type of the corresponding controller 300, and are each specialized for engineering the corresponding controller 300. This allows engineering to be performed through collaboration between multiple users with different skills (for example, platforms that require programming skills).
[0037] However, until the desired processing steps can be performed in cell 2 based on the engineering results of each user, a lot of trial and error is required at each stage, from operational verification of each machine 5 to operational verification of the entire cell 2. Performing such trial and error on an actual machine requires a great deal of effort.
[0038] Therefore, the simulation device 100 is configured to be able to perform engineering for a plurality of controllers 300 in a virtual space by utilizing a simulation of the cell 2. When performing engineering in the virtual space, one or more user interfaces for engineering are connected to the simulation device 100. A simulation system including one or more user interfaces for engineering and the simulation device 100 will be described below.
[0039] As shown in FIG. 3 , the simulation system 7 includes a simulation device 100 and a plurality of user interfaces 500. The simulation device 100 has a simulation environment 101. The simulation environment 101 includes a plurality of virtual controllers 120 corresponding to the plurality of controllers 300, respectively, and causes the plurality of virtual controllers 120 to simulate the above-mentioned cooperation between the plurality of machines 5. For example, the simulation performed by the plurality of virtual controllers 120 includes estimating, through calculation, a phenomenon that is generated in real space by the plurality of controllers 300. The phenomenon that is generated by the plurality of controllers 300 includes operating actuators such as the actuators 41, 42, 43, 44, 45, and 46, and communicating information between the plurality of controllers 300.
[0040] Just as the multiple controllers 300 include two or more controllers 300 of different types, the multiple virtual controllers 120 also include two or more virtual controllers 120 of different types. For example, the multiple virtual controllers 120 include a virtual host controller 121 corresponding to the host controller 301 and multiple virtual local controllers 122 corresponding to the multiple local controllers 302, respectively. For example, the multiple virtual local controllers 122 include multiple virtual local controllers 122A to 122E corresponding to the multiple local controllers 302A to 302E, respectively. When the multiple local controllers 302 include two or more local controllers 302 of different types, the multiple virtual local controllers 122 also include two or more virtual local controllers 122 of different types. The multiple user interfaces 500 are respectively accessible to the multiple virtual controllers 120 in the simulation environment 101. Each of the multiple user interfaces 500 is specialized for the engineering of the corresponding virtual controller 120. The two or more user interfaces 500 corresponding to the two or more different types of virtual controllers 120 are different from each other depending on the types of the corresponding virtual controllers 120 .
[0041] For example, the plurality of user interfaces 500 includes a user interface 501 specialized for engineering the virtual host controller 121, and a plurality of user interfaces 502 specialized for engineering each of the plurality of virtual local controllers 122. For example, the plurality of user interfaces 502 include user interfaces 502A to 502E specialized for engineering each of the virtual local controllers 122A to 122E.
[0042] According to the simulation system 7, similar to engineering for multiple controllers 300, engineering for multiple virtual controllers 120 can be performed individually using a user interface 500 specialized for engineering of the corresponding virtual controller 120. Therefore, engineering through collaboration between multiple users with different skills can be performed in a simulation environment separate from the construction of the hardware of the cell 2. Moreover, in the simulation environment, trial and error can be repeated in short cycles even when the engineering is still at a low level of completion. Therefore, the efficiency of engineering for the cell 2 is improved.
[0043] Being specialized for the engineering of the corresponding virtual controller 120 means that it cannot be used for engineering a virtual controller 120 of a different type from the corresponding virtual controller 120. Each of the multiple user interfaces 500 is configured by executing a user interface program in hardware such as a terminal device. The terminal device may be a general-purpose device such as a laptop computer, a tablet computer, or a smartphone, or may be a terminal device specialized for engineering (for example, a programming pendant for a robot controller).
[0044] The two or more user interfaces 500 being different from one another includes, for example, that the user inputs that can be accepted are different from one another, or that the display is different depending on the differences in the user inputs that can be accepted, etc. It is also possible to use a common terminal device as two or more different user interfaces 500 by using two or more different user interface programs. In this case, it cannot be said that the terminal device itself is specialized for the engineering of one type of virtual controller 120, but each of the two or more user interfaces 500 configured by the terminal device executing two or more user interface programs is specialized for the engineering of one type of virtual controller 120.
[0045] The fact that a plurality of user interfaces 500 are respectively accessible to a plurality of virtual controllers 120 includes the fact that at least one user interface 500 is accessible to two or more different types of virtual controllers 120. When at least one user interface 500 is accessible to two or more different types of virtual controllers 120, the number of types of user interfaces 500 differs from the number of types of virtual controllers 120.
[0046] As shown in FIG. 4 , the multiple user interfaces 500 may be accessible to the multiple controllers 300, respectively. For example, the multiple user interfaces 500 may be shared between the engineering for the multiple controllers 300 and the engineering for the multiple virtual controllers 120, but this is not necessarily the case. The multiple user interfaces 500 identical to the multiple user interfaces 500 for engineering for the multiple controllers 300 may be separately provided for engineering for the multiple virtual controllers 120. A communication interface between the multiple user interfaces 500 and the multiple controllers 300 and a communication interface between the multiple user interfaces 500 and the multiple virtual controllers 120 may be common. A communication protocol between the multiple user interfaces 500 and the multiple controllers 300 and a communication protocol between the multiple user interfaces 500 and the multiple virtual controllers 120 may be common.
[0047] By sharing a common user interface between engineering in a virtual environment and engineering in a real environment (real space), the efficiency of engineering in the virtual environment is further improved. For example, when updating the results of engineering in the virtual environment with further engineering in the real environment, the common user interface allows work to be continued smoothly.
[0048] 3 , the simulation device 100 may further include an access management unit 141. The access management unit 141 allows multiple user interfaces 500 to access multiple virtual controllers 120 independently of each other. For example, when one user interface 500 is connected to the simulation device 100, the access management unit 141 identifies the virtual controller 120 corresponding to the one user interface 500 and allows the one user interface 500 to access the corresponding virtual controller 120 without allowing the one user interface 500 to access the other virtual controllers 120. Allowing one user interface 500 to access the corresponding virtual controller 120 includes establishing communication (e.g., pairing) between the one user interface 500 and the corresponding virtual controller 120.
[0049] The access management unit 141 may assign unique identification information to each of the multiple virtual controllers 120 and allow one user interface 500 to access the corresponding virtual controller 120 based on the identification information specified by the user interface 500. The access management unit 141 may assign a unique IP address to each of the multiple virtual controllers 120 as the identification information, or may assign a combination of a common IP address and a unique port number. Access between one user interface 500 and the corresponding virtual controller 120 is independent from access between other user interfaces 500 and other virtual controllers 120, allowing communication with an appropriate communication partner. Even in a system that simulates the entire cell 2, each of the multiple user interfaces 500 accesses the corresponding virtual controller 120 without accessing the other virtual controllers 120. This allows each user to concentrate on engineering the corresponding virtual controller 120. Furthermore, because access to each virtual controller 120 is limited to access from the corresponding user interface 500, confusion caused by overlapping engineering for one virtual controller 120 from two or more user interfaces 500 is avoided.
[0050] The simulation device 100 may have two or more communication ports that can simultaneously connect two or more user interfaces 500. When two or more user interfaces 500 are simultaneously connected to two or more communication ports, the access management unit 141 may parallelly establish two or more communications that respectively connect the two or more user interfaces 500 with two or more virtual controllers.
[0051] The simulation device 100 may further include a model holding unit 142, a virtual space generation unit 143, a virtual space holding unit 144, and a virtual space display unit 145. The model holding unit 142 holds (stores) a system model including models of multiple machines 5 and a model of the surrounding environment of the multiple machines 5. Each model of the multiple machines 5 is data representing the arrangement, structure, shape, size, etc. of the corresponding machine 5 in real space. The model of the surrounding environment of the multiple machines 5 is data representing the arrangement, structure, shape, size, etc. of surrounding objects (e.g., structures such as frames and one or more workpieces W) that make up the surrounding environment of the multiple machines 5 in real space. The arrangement, structure, shape, and size of the system model are represented by, for example, polygon data or voxel data. The coordinate system based on the system model corresponds to the virtual space in which the multiple machines 5 and the surrounding environment of the multiple machines 5 are virtually arranged.
[0052] The virtual space generation unit 143 causes the multiple machines 5 to cooperate in the virtual space based on the results of simulations performed by the multiple virtual controllers 120. For example, the virtual space generation unit 143 causes each of the multiple machines 5 to operate in the virtual space so as to cooperate, based on the operation of the actuators estimated by the simulations performed by the multiple virtual controllers 120 and the system model held by the model holding unit 142. For example, the virtual space generation unit 143 causes the models of the robots 5B and 5C to operate in the virtual space by forward kinematics calculation based on the operation angles of the actuators 41, 42, 43, 44, 45, and 46 and the models of the robots 5B and 5C.
[0053] The virtual space holding unit 144 holds (stores) the collaboration that the virtual space holding unit 144 has caused the multiple machines 5 to execute in the virtual space. For example, the virtual space holding unit 144 holds the changes over time in the states (e.g., positions, postures, etc.) of the multiple machines 5 during the execution of the collaboration.
[0054] The virtual space display unit 145 displays the virtual space in which the multiple machines 5 are working together on at least one of the multiple user interfaces 500. The movements of the multiple machines 5 in the virtual space can be confirmed on each user interface. In this case, since it is possible to confirm the movements of not only the machine 5 corresponding to the virtual controller 120 that performed the engineering, but also the other machines 5, engineering efficiency is improved.
[0055] 5 , each of the multiple user interfaces 500 has an engineering window 521 and a simulation window 522. The engineering window 521 includes one or more objects (such as buttons or input boxes) that accept user input for the above-described engineering. The simulation window 522 displays a virtual space. The virtual space display unit 145 may display a virtual space in which the multiple machines 5 are cooperating in the respective simulation windows 522 of the multiple user interfaces 500.
[0056] The virtual space display unit 145 may display the virtual space from independent viewpoints on at least two or more (e.g., two or more different types) of the multiple user interfaces 500. By adjusting the viewpoint for each of the multiple users, the efficiency of engineering in the virtual environment is further improved.
[0057] The mutually independent viewpoints are viewpoints that are set independently of each other by, for example, a user input. For example, the simulation device 100 may further include a viewpoint setting acquisition unit 151 and a viewpoint setting storage unit 152. The viewpoints include, for example, a position in the virtual space and a direction from the position.
[0058] The viewpoint setting acquisition unit 151 acquires the viewpoint set by the user for each user interface 500 and stores it in the viewpoint setting storage unit 152. For example, the simulation window 522 includes an input object for specifying the viewpoint. The viewpoint setting acquisition unit 151 associates the viewpoint input into each simulation window 522 of the multiple user interfaces 500 with the identification information of the user interface 500 and stores it in the viewpoint setting storage unit 152.
[0059] The virtual space display unit 145 acquires the viewpoints of each of the multiple user interfaces 500 from the viewpoint setting storage unit 152 based on the identification information of the user interfaces 500, converts the virtual space stored in the virtual space storage unit 144 into a two-dimensional image from the acquired viewpoint, and displays it in the simulation window 522.
[0060] The virtual space generation unit 143 may further cause the multiple machines 5 to cooperate in the virtual space based on control results of the multiple machines 5 by the multiple controllers 300, and the virtual space display unit 145 may display a virtual space in which the multiple types of machines 5 are cooperating based on the control results of the multiple machines 5 on at least one user interface 500 accessing the corresponding controller 300. For example, when receiving a request from a user interface 500 accessing a controller 300, the virtual space display unit 145 causes the multiple machines 5 to cooperate in the virtual space based on the control results of the multiple machines 5 accumulated by the data collection device 200. The virtual space display unit 145 transmits a response to the request (a virtual space in which the multiple types of machines 5 are cooperating based on the control results of the multiple machines 5) to the user interface 500 via the data collection device 200 and the controller 300.
[0061] By reproducing in a virtual space the operations of a plurality of machines 5 in real space, it is possible to easily verify in detail the operations of a plurality of types of machines 5. For example, by using a virtual space that reproduces the operations of a plurality of machines 5 in real space, it is possible to easily verify the operations of a plurality of machines 5 by freely changing the viewpoint and the time to be reproduced.
[0062] 6, the simulation device 100 may further include a history storage unit 161. The history storage unit 161 stores the history of engineering for the corresponding virtual controller 120 by each of the multiple user interfaces 500. By referring to the engineering history, the engineering status of the entire cell can be easily grasped.
[0063] For example, the simulation device 100 may further include a history display unit 162. Based on the history stored in the history storage unit 161, the history display unit 162 displays the engineering history for virtual controllers 120 other than the corresponding virtual controller 120 on each of the multiple types of user interfaces 500. This allows each user to more easily grasp the engineering status of the entire cell.
[0064] The engineering history includes, for example, an update history of control parameters, control programs, etc. The history storage unit 161 may store, as the update history, update contents and update dates and times in association with each other.
[0065] 7 , the simulation apparatus 100 may further include a messenger 171. The messenger 171 displays a message input into one user interface 500 on the other user interfaces 500. For example, each of the multiple user interfaces 500 further includes a message window 523 in which a message can be input and displayed. The messenger 171 accumulates messages input into the message window 523 of each of the multiple user interfaces 500 in chronological order and displays the accumulated messages in the message window 523, for example, in a chat format. By facilitating message exchange between users, it is possible to encourage collaboration among multiple users while allowing each user to concentrate on their own engineering work, thereby further improving engineering efficiency.
[0066] 8 , the simulation device 100 may have a copy generation unit 181 as an example of having the simulation environment 101. When engineering a virtual controller 120 corresponding to one of the multiple user interfaces 500, the copy generation unit 181 generates a copy simulation environment 110 corresponding to the one user interface 500 as the simulation environment 101. In this way, having the simulation environment 101 is not limited to always having the simulation environment 101, but also includes having a copy generation unit 181 that dynamically generates a copy simulation environment 110 as needed.
[0067] The copy simulation environment 110 includes multiple virtual controllers 120. When the simulation device 100 includes a copy generator 181, the access manager 141 allows the user interface 500 to access the corresponding virtual controller 120 in the copy simulation environment 110. One user can perform trial and error including engineering and cell simulation independently from other users. This allows the cell 2 to be constructed more efficiently.
[0068] When engineering virtual controllers 120 corresponding to at least two or more user interfaces 500 among the plurality of user interfaces 500, the copy generation unit 181 may generate two or more copy simulation environments 110 corresponding to the two or more user interfaces 500 as the simulation environment 101. The access management unit 141 may allow each of the two or more user interfaces 500 to access the corresponding virtual controller 120 in the corresponding copy simulation environment 110. The access management unit 141 does not allow each of the two or more user interfaces 500 to access the corresponding virtual controller 120 in the copy simulation environment 110 other than the corresponding copy simulation environment 110. Two or more users can independently perform trial and error including engineering and cell simulation. Therefore, the cell 2 can be constructed more efficiently.
[0069] 8 illustrates an example of engineering the virtual controllers 120 corresponding to the user interface 501 and the user interfaces 502A to 502E. The copy generation unit 181 generates multiple copy simulation environments 111 to 116 corresponding to the user interface 501 and the user interfaces 502A to 502E, respectively. The access management unit 141 allows the user interface 501 to access the virtual host controller 121 of the copy simulation environment 111, but does not allow the user interface 501 to access the virtual host controllers 121 of the user interfaces 502A to 502E. Similarly, the access management unit 141 causes the user interface 502A to access the virtual local controller 122A of the copy simulation environment 112, the user interface 502B to access the virtual local controller 122B of the copy simulation environment 113, the user interface 502C to access the virtual local controller 122C of the copy simulation environment 114, the user interface 502D to access the virtual local controller 122D of the copy simulation environment 115, and the user interface 502E to access the virtual local controller 122E of the copy simulation environment 116.
[0070] The simulation device 100 may further include a master holding unit 182 and a master update unit 185. The master holding unit 182 stores master settings 183 for each of the multiple virtual controllers 120. The master settings 183 are settings that define the control content of the corresponding virtual controller 120. The master settings 183 include at least one of the control parameters and the control program described above. The master settings 183 may further include identification information (such as an IP address) of the corresponding virtual controller 120.
[0071] The copy generation unit 181 may generate a copy simulation environment 110 that causes a plurality of virtual controllers 120, each of which includes a copy setting 184 that is a copy of the master setting 183, to simulate cooperation based on the master setting 183 of each of the plurality of virtual controllers 120 stored in the master holding unit 182. The virtual controllers 120 accessed by each of the two or more user interfaces 500 may update the copy setting 184 based on the results of engineering performed by the corresponding user interface 500. For example, the virtual host controller 121 of the copy simulation environment 111 updates the copy settings 184 based on the results of the engineering performed by the user interface 501, the virtual local controller 122A of the copy simulation environment 112 updates the copy settings 184 based on the results of the engineering performed by the user interface 502A, the virtual local controller 122B of the copy simulation environment 113 updates the copy settings 184 based on the results of the engineering performed by the user interface 502B, the virtual local controller 122C of the copy simulation environment 113 updates the copy settings 184 based on the results of the engineering performed by the user interface 502C, the virtual local controller 122D of the copy simulation environment 113 updates the copy settings 184 based on the results of the engineering performed by the user interface 502D, and the virtual local controller 122E of the copy simulation environment 113 updates the copy settings 184 based on the results of the engineering performed by the user interface 502E.
[0072] In response to requests from each of the two or more user interfaces 500, the master update unit 185 reflects the update results of the copy settings 184 in the corresponding copy simulation environments 110 in the master settings 183. After improving the reliability of the copy settings 184 through trial and error in the copy simulation environments 110, the update results of the copy settings 184 can be reflected in the master settings 183. This makes it possible to suppress the adverse effects of trial and error in one copy simulation environment 110 on trial and error in other copy simulation environments 110.
[0073] For example, the master update unit 185 reflects the update result of the copy setting 184 of the virtual host controller 121 in the copy simulation environment 111 in the master setting 183 of the virtual host controller 121 in response to a request from the user interface 501, reflects the update result of the copy setting 184 of the virtual local controller 122A in the copy simulation environment 112 in the master setting 183 of the virtual local controller 122A in response to a request from the user interface 502A, and reflects the update result of the copy setting 184 of the virtual local controller 122B in the copy simulation environment 112 in the master setting 183 of the virtual local controller 122B in response to a request from the user interface 502B. In response to a request from the user interface 502C, the updated results of the copy settings 184 of the virtual local controller 122C in the copy simulation environment 112 are reflected in the master settings 183 of the virtual local controller 122C, in response to a request from the user interface 502D, the updated results of the copy settings 184 of the virtual local controller 122D in the copy simulation environment 112 are reflected in the master settings 183 of the virtual local controller 122D, and in response to a request from the user interface 502E, the updated results of the copy settings 184 of the virtual local controller 122E in the copy simulation environment 112 are reflected in the master settings 183 of the virtual local controller 122E.
[0074] The virtual space generation unit 143 may cause the multiple machines 5 to cooperate in the virtual space based on the simulation results of the multiple virtual controllers 120 for each copy simulation environment 110. The virtual space maintenance unit 144 may cause the corresponding user interface 500 to display the virtual space in which the multiple machines 5 are cooperating for each copy simulation environment 110. Each user can check the execution results of their own simulation on their own user interface 500.
[0075] The history storage unit 161 may store (hold) an update history of the master setting 183 as a history of engineering for the corresponding virtual controller 120 by each of the multiple user interfaces 500. The simulation device 100 may further include an out-of-date detection unit 186. The out-of-date detection unit 186 detects the out-of-date of the copy setting 184 in each of the two or more copy simulation environments 110 based on the generation timing of each of the two or more copy simulation environments 110 and the update history stored in the history storage unit 161. The out-of-date of the copy setting 184 means that it is older than the master setting 183.
[0076] By making each user aware of the out-dates of the copy settings 184 based on engineering by other users, it is possible to suppress unnecessary simulations and further improve the efficiency of engineering by each user.
[0077] The copy generation unit 181 may update the copy settings 184 for which an outdated date has been detected in each of the two or more copy simulation environments 110 based on the master settings 183. Since the copy settings 184 for which an outdated date has been detected are updated by the system, the engineering efficiency of each user is further improved.
[0078] The copy generation unit 181 may update the copy settings 184 based on the master settings 183 for which an outdated date has been detected, in response to a request from a user performing engineering in the copy simulation environment 110 for which an outdated date has been detected. For example, even if an outdated date has been detected for the copy settings 184 in the copy simulation environment 110, the copy generation unit 181 may wait to update the copy settings 184 based on the master settings 183 until a request from a user performing engineering in the copy simulation environment 110 is received. This makes it possible to suppress a decrease in engineering efficiency caused by trial-and-error conditions changing midway.
[0079] 9, when the copy generation unit 181 updates the copy settings 184 in each of two or more copy simulation environments 110, the history display unit 162 may display the updated parts on the corresponding user interface 500. Since the effect of updating the copy settings 184 on the ongoing engineering can be easily understood, the efficiency of engineering by each user is further improved. The display of the updated parts is an example of the above-mentioned "engineering history for virtual controllers 120 other than the corresponding virtual controller 120."
[0080] Examples of displaying the updated portion include displaying the updated portion in the control program (e.g., the number of lines), displaying the time when the updated portion in the control program is executed, etc. As another example of displaying the updated portion, the history display unit 162 may display a portion that may be related to the updated portion (e.g., a portion near the updated portion) in the control program being created or edited by engineering using the corresponding user interface 500.
[0081] The simulation apparatus 100 may be configured to export the engineering results for the multiple virtual controllers 120 to the multiple controllers 300. For example, as shown in FIG. 10 , the simulation apparatus 100 further includes an output unit 187. The output unit 187 outputs the engineering results for the multiple virtual controllers 120 from the multiple virtual controllers 120 to the multiple controllers 300, respectively. The multiple controllers 300 cause the multiple machines 5 to cooperate in real space based on the engineering results output from the multiple virtual controllers 120.
[0082] Fig. 11 is a block diagram illustrating an example of the hardware configuration of the simulation system 7. As shown in Fig. 11, the simulation device 100 has a circuit 190. The circuit 190 has a processor 191, a memory 192, a storage 193, and a communication port 194. The storage 193 is configured with one or more non-volatile memory devices such as a flash memory or a hard disk. The storage 193 stores a program for configuring the above-mentioned functional blocks in the simulation device 100.
[0083] The memory 192 is composed of one or more volatile memory devices such as a random access memory. The memory 192 temporarily stores programs loaded from the storage 193. The processor 191 is composed of one or more arithmetic devices such as a CPU or a GPU. The processor 191 executes the programs loaded in the memory 192, thereby configuring each of the above-mentioned functional blocks in the simulation apparatus 100. The results of calculations by the processor 191 are temporarily stored in the memory 192.
[0084] In response to a request from the processor 191, the communication port 194 communicates with the data collection device 200, the plurality of controllers 300, and the plurality of user interfaces 500 via a wired or wireless communication network NW.
[0085] The user interface 500 includes a circuit 590. The circuit 590 includes a processor 591, a memory 592, a storage 593, a communication port 594, an input device 595, and an output device 596. The storage 593 is configured with one or more non-volatile memory devices such as a flash memory or a hard disk. The storage 593 stores a program for configuring the above-described functional blocks in the user interface 500.
[0086] The memory 592 is composed of one or more volatile memory devices such as a random access memory. The memory 592 temporarily stores programs loaded from the storage 593. The processor 591 is composed of one or more arithmetic devices such as a CPU or a GPU. The processor 591 executes the programs loaded in the memory 592 to configure each of the above-mentioned functional blocks in the user interface 500. The results of calculations by the processor 591 are temporarily stored in the memory 592.
[0087] The communication port 594 communicates with the simulation apparatus 100 via the communication network NW in response to a request from the processor 591. The input device 595 displays information to the user. Examples of the input device 595 include a liquid crystal monitor and an organic EL (Electro-Luminescence) monitor. The output device 596 accepts information input by the user. Examples of the output device 596 include a keyboard and a mouse. The input device may be integrated with the input device 595 as a touch panel.
[0088] [Simulation Procedure] Below, as an example of a simulation method, a simulation procedure executed by the simulation device 100 to enable engineering of the cell 2 in the simulation environment will be illustrated. This simulation procedure includes causing a plurality of virtual controllers 120 in the simulation environment 101 to access a plurality of user interfaces 500 that differ depending on the type of the corresponding virtual controller 120 and that are each specialized for engineering the corresponding virtual controller 120, respectively, updating the plurality of virtual controllers 120 based on input to the plurality of user interfaces 500, and simulating cooperation between the updated plurality of virtual controllers 120 in the simulation environment 101.
[0089] The simulation procedures exemplified below include a pairing procedure that allows a user interface 500 connected to the simulation device 100 to access a corresponding virtual controller 120, a setting update procedure that updates the virtual controller 120 based on input to the user interface 500, a message update procedure that updates messages between users, a host simulation procedure that is a simulation procedure by the virtual host controller 121, a local simulation procedure that is a simulation procedure by the virtual local controller 122, a display procedure for a virtual space in which multiple machines 5 cooperate with each other through the host simulation procedure and the local simulation procedure, and a procedure for exporting engineering results. Each procedure will be exemplified.
[0090] (Pairing Procedure) As shown in FIG. 12 , the simulation device 100 executes steps S01, S02, and S03. In step S01, the access management unit 141 waits for one user interface 500 to be connected to the simulation device 100. In step S02, the access management unit 141 identifies the virtual controller 120 corresponding to the one user interface 500 based on the identification information specified by the one user interface 500. In step S03, the access management unit 141 establishes communication between the one user interface 500 and the corresponding virtual controller 120. Thereafter, the simulation device 100 returns the process to step S01. The simulation device 100 repeats the above process.
[0091] As described above, the simulation device 100 may include a copy generation unit 181. Fig. 13 is a flowchart showing a pairing procedure when the simulation device 100 includes the copy generation unit 181. As shown in Fig. 13, the simulation device 100 executes steps S11, S12, S13, and S14. In step S11, the access management unit 141 waits for one user interface 500 to be connected to the simulation device 100. In step S12, the access management unit 141 identifies the virtual controller 120 corresponding to the one user interface 500 based on the identification information specified by the one user interface 500.
[0092] In step S13, the copy generation unit 181 generates a copy simulation environment 110 corresponding to one user interface 500 as the simulation environment 101. For example, the copy generation unit 181 generates the copy simulation environment 110 so as to be specialized for engineering using the corresponding user interface 500. For example, the copy generation unit 181 does not assign communication identification information to virtual controllers 120 other than the virtual controller 120 corresponding to the user interface 500 in the copy simulation environment 110, thereby preventing other user interfaces 500 from accessing virtual controllers 120 other than the corresponding virtual controller 120.
[0093] In step S14, the access management unit 141 establishes communication between the user interface 500 in step S1 and the corresponding virtual controller 120 in the copy simulation environment 110. After that, the simulation device 100 returns the process to step S11. The simulation device 100 repeats the above process.
[0094] (Setting Update Procedure) This procedure updates the virtual controller 120 based on an input to the user interface 500 that accessed the corresponding virtual controller 120. As shown in FIG. 14 , the simulation apparatus 100 executes steps S21, S22, S23, and S24. In step S21, the virtual controller 120 waits for a user to request registration of engineering content via the user interface 500. In step S22, the virtual controller 120 updates at least one of the control parameters and the control program based on the engineering content via the user interface 500. In step S23, the virtual controller 120 stores an update history of at least one of the control parameters and the control program as an engineering history in the history storage unit 161. In step S24, the history display unit 162 displays the engineering history for the other virtual controllers 120 on the user interface 500 based on the history stored in the history storage unit 161. The simulation apparatus 100 then returns the process to step S21. The simulation device 100 repeats the above process.
[0095] If the simulation apparatus 100 has a copy generation unit 181, a master holding unit 182, and a master update unit 185, the virtual controller 120 updates the copy setting 184 in step S22. Furthermore, the simulation apparatus 100 also updates the master setting 183. For example, as shown in FIG. 15 , the simulation apparatus 100 includes steps S31, S32, S33, and steps S34, S35, and S36. Steps S31, S32, and S33 are executed for one copy simulation environment 110, and steps S34, S35, and S36 are executed for another copy simulation environment 110. In step S31, the master update unit 185 waits for a request to update the master setting 183 based on the update of the copy setting 184 in one copy simulation environment 110. In step S32, the master update unit 185 reflects the update result of the copy setting 184 in one copy simulation environment 110 in the corresponding master setting 183. In step S33, the master update unit 185 causes the history storage unit 161 to store the update history of the master setting 183 as the history of engineering in one copy simulation environment 110.
[0096] As a result of the master setting 183 being updated, the copy setting 184 corresponding to the updated master setting 183 becomes older than the master setting 183 in the other copy simulation environment 110. In step S34, the outdate detection unit 186 detects the outdate in the other copy simulation environment 110 of the copy setting 184 corresponding to the updated master setting 183, based on the generation timing of the other copy simulation environment 110 and the update history stored in the history holding unit 161. In step S35, the copy generation unit 181 updates the copy setting 184 for which the outdate detection unit 186 has detected, based on the updated master setting 183.
[0097] In step S36, if the copy setting 184 is updated by the copy generating unit 181, the history display unit 162 displays the updated part on the user interface 500 corresponding to the other copy simulation environment 110. After that, the simulation device 100 returns the process to step S31. The simulation device 100 repeats the above process.
[0098] (Message Update Procedure) This procedure is executed in parallel with the procedure of FIG. 14 or 15, for example. As shown in FIG. 16, the simulation device 100 executes steps S41 and S42. In step S41, the messenger 171 waits for a message to be input into the message window 523 of one of two or more user interfaces 500 connected to the simulation device 100. In step S42, the messenger 171 adds the newly input message to the messages accumulated in chronological order, and updates the display in the message window 523 of each of the two or more user interfaces 500 so that the added message is included in the display. Thereafter, the simulation device 100 returns the process to step S41. The simulation device 100 repeats the above process.
[0099] (Host Simulation Procedure) This procedure is executed by the simulation device 100 in the virtual host controller 121 to cause multiple machines 5 to cooperate in a virtual space based on the engineering results. As shown in Fig. 17, the simulation device 100 executes steps S51 and S52. In step S51, the virtual host controller 121 acquires the state of the virtual space from the virtual space holding unit 144. In step S52, it is confirmed whether there is a task that can be executed by any of the multiple virtual local controllers 122, based on the host control program and the state of the virtual space.
[0100] If it is determined in step S52 that there is a task that can be executed by any of the multiple virtual local controllers 122, the simulation device 100 executes steps S53 and S54. In step S53, the virtual host controller 121 commands the virtual local controller 122 that can execute the task to execute the task. In step S54, the virtual host controller 121 checks whether or not the execution of all tasks defined by the host control program has been completed.
[0101] If it is determined in step S54 that there is an incomplete task, the simulation apparatus 100 executes step S55. If it is determined in step S52 that there is no task that can be executed by any of the multiple virtual local controllers 122, the simulation apparatus 100 executes step S55 without executing steps S53 and S54. In step S55, the virtual host controller 121 waits for a predetermined host period to elapse, counting from the start of step S51. Thereafter, the simulation apparatus 100 returns the process to step S51.
[0102] If it is determined in step S54 that the execution of all tasks has been completed, the simulation apparatus 100 completes the host simulation procedure.
[0103] (Local Simulation Procedure) This procedure is a procedure that the simulation apparatus 100 causes the virtual local controller 122 to execute in order to cause a plurality of machines 5 to cooperate in a virtual space based on the engineering results. As shown in Fig. 18 , the simulation apparatus 100 executes steps S61, S62, S63, and S64. In step S61, the virtual local controller 122 waits for a command to execute a task from the virtual host controller 121. In step S62, the virtual local controller 122 calculates a control target value (cycle target value) at the time when a predetermined local period has elapsed, based on the task program corresponding to the commanded task.
[0104] In step S63, the virtual local controller 122 calculates the operating angle of the actuator, etc. as a simulation result based on the cycle target value. Furthermore, the virtual space generation unit 143 operates the machine 5 corresponding to the virtual local controller 122 in the virtual space based on the simulation result by the virtual local controller 122 and the system model stored in the model holding unit 142. The virtual space generation unit 143 holds the results of operating the machine 5 corresponding to the virtual local controller 122 in the virtual space in the virtual space holding unit 144. In step S64, the virtual local controller 122 checks whether the execution of the task has been completed.
[0105] If it is determined in step S64 that the execution of the task has not been completed, the simulation apparatus 100 executes step S65. In step S65, the virtual local controller 122 waits for the local period to elapse, counting from the start of step S62. Thereafter, the simulation apparatus 100 returns the process to step S62.
[0106] If it is determined in step S64 that the execution of the task has been completed, the simulation device 100 returns the process to step S61 and waits for a command to execute the next task from the virtual host controller 121. The simulation device 100 repeats the above process. The simulation device 100 causes the multiple virtual local controllers 122 and the virtual space generation unit 143 to repeatedly execute the above process, whereby the multiple machines 5 cooperate in the virtual space, and the virtual space in which the multiple machines 5 cooperate is held in the virtual space holding unit 144.
[0107] (Virtual Space Display Procedure) This procedure is for displaying a virtual space in which multiple machines 5 cooperate on one or more user interfaces 500. As shown in Fig. 19 , the simulation device 100 executes step S71. In step S71, the viewpoint setting acquisition unit 151 checks whether or not there is a viewpoint registration request from the user interface 500. If it is determined in step S71 that there is no viewpoint registration request, the simulation device 100 executes step S72.
[0108] In step S72, the virtual space display unit 145 checks whether or not there is a request to display the virtual space via the user interface 500. If it is determined in step S72 that there is no request to display the virtual space, the simulation device 100 returns the process to step S71.
[0109] If it is determined in step S71 that a request for registering a viewpoint has been made, the simulation device 100 executes step S73. In step S73, the viewpoint setting acquisition unit 151 associates the viewpoint acquired from the user interface 500 with the identification information of the user interface 500 and stores the association information in the viewpoint setting storage unit 152.
[0110] If it is determined in step S72 that a request for displaying a virtual space has been made, the simulation device 100 executes steps S74, S75, and S76. In step S74, the virtual space display unit 145 reads out the viewpoint associated with the user interface 500 that requested display of the virtual space from the viewpoint setting storage unit 152. In step S75, the virtual space stored in the virtual space storage unit 144 is converted into a two-dimensional image from the acquired viewpoint to generate a simulation video. In step S76, the generated simulation video is displayed in the simulation window 522 of the user interface 500 that requested display of the virtual space.
[0111] After executing steps S73 and S76, the simulation device 100 returns the process to step S71, and repeats the above process.
[0112] (Export Procedure) As shown in FIG. 20 , the simulation device 100 executes steps S81 and S82. In step S81, the output unit 187 waits for a request to output the engineering results for the multiple virtual controllers 120, such as from one of the multiple user interfaces 500. In step S82, the output unit 187 outputs the engineering results for the multiple virtual controllers 120 to the multiple controllers 300, respectively. Each of the multiple controllers 300 holds the output engineering results. Thereafter, the simulation device 100 returns the process to step S81. The simulation device 100 repeats the above process.
[0113] [Control Procedure] Below, examples are given of a host control procedure executed by the host controller 301 and a local control procedure executed by the local controller 302 based on the exported engineering results. (Host Control Procedure) As shown in Fig. 21, the host controller 301 executes steps S101 and S102. In step S101, the host controller 301 updates environmental information in real space. In step S102, it is determined based on the host control program and the environmental information whether there is a task that can be executed by any of the multiple local controllers 302.
[0114] If it is determined in step S102 that there is a task that can be executed by any of the multiple local controllers 302, the host controller 301 executes steps S103 and S104. In step S103, the host controller 301 commands the local controller 302 that can execute the task to execute the task. In step S104, the host controller 301 checks whether execution of all tasks defined by the host control program has been completed.
[0115] If it is determined in step S104 that there is an incomplete task, the host controller 301 executes step S105. If it is determined in step S102 that there is no task that can be executed by any of the multiple local controllers 302, the host controller 301 executes step S105 without executing steps S103 and S104. In step S105, the host controller 301 waits for a predetermined host period to elapse, counting from the start of step S101. Thereafter, the simulation apparatus 100 returns the process to step S101.
[0116] If it is determined in step S104 that the execution of all tasks has been completed, the host controller 301 completes the host control procedure.
[0117] 22 , the local controller 302 executes steps S111, S112, S113, and S114. In step S111, the local controller 302 waits for a command to execute a task from the host controller 301. In step S112, the local controller 302 calculates a control target value (cycle target value) at the time when a predetermined local period has elapsed, based on a task program corresponding to the commanded task.
[0118] In step S113, the local controller 302 controls the actuators of the machine 5 so as to follow the cycle target value. In step S114, the local controller 302 checks whether the execution of the task has been completed.
[0119] If it is determined in step S114 that the task execution is not complete, the local controller 302 executes step S115. In step S115, the local controller 302 waits for the local period to elapse, counting from the start of step S112. Thereafter, the local controller 302 returns the process to step S112.
[0120] If it is determined in step S114 that the execution of the task has been completed, the local controller 302 returns the process to step S111 and waits for a command to execute the next task from the host controller 301. The local controller 302 repeats the above process. When multiple local controllers 302 repeat the above process, multiple machines 5 cooperate in real space.
[0121] [Summary] The above-described embodiment includes the following configuration. (1) A simulation system 7 is a system for simulating a cell 2 having multiple types of machines 5 and multiple types of controllers 300 that operate the multiple types of machines 5 in cooperation with each other, the simulation system 7 including: a simulation environment 101 that simulates cooperation between multiple types of virtual controllers 120 corresponding to the multiple types of controllers 300; and multiple types of user interfaces 500 that are accessible to each of the multiple types of virtual controllers 120 in the simulation environment 101, differ depending on the type of the corresponding virtual controller 120, and are specialized for engineering the corresponding virtual controller 120. In the cell 2, engineering for each of the multiple types of controllers 300 can be performed individually using the user interface 500 specialized for engineering the corresponding controller 300. Therefore, the cell 2 can be efficiently constructed through collaboration between multiple users possessing different skills. According to this simulation system 7, engineering for each of the multiple types of virtual controllers 120 can be performed individually using the user interface 500 specialized for engineering the corresponding virtual controller 120, similar to engineering for the cell 2. Therefore, engineering by collaboration between a plurality of users with different skills can be performed in the simulation environment 101, separate from the construction of the hardware of cell 2. This improves the efficiency of engineering for cell 2.
[0122] (2) The simulation system 7 according to (1), wherein the plurality of types of user interfaces 500 are each capable of accessing the plurality of types of controllers 300. By sharing the user interface 500 between engineering in the virtual environment and engineering in the real environment, the efficiency of engineering in the virtual environment is further improved.
[0123] (3) The simulation system 7 according to (1) or (2) further includes a history storage unit 161 that stores a history of engineering for the corresponding virtual controller 120 by each of the plurality of types of user interfaces 500. By referring to the engineering history, the engineering status of the entire cell 2 can be easily grasped.
[0124] (4) The simulation system 7 according to (3) further includes a history display unit 162 that displays, on each of the multiple types of user interfaces 500, the engineering history for the virtual controllers 120 other than the corresponding virtual controller 120, based on the history stored in the history storage unit 161. This allows each user to more easily grasp the engineering status of the entire cell 2.
[0125] (5) The simulation system 7 according to any one of (1) to (4), further comprising an access management unit 141 that allows multiple types of user interfaces 500 to access multiple types of virtual controllers 120 independently of one another. The access management unit 141 allows each user interface 500 to access the corresponding virtual controller 120, and at this time, this access is independent of access between other user interfaces 500 and their corresponding virtual controllers 120. This allows communication with an appropriate communication partner, and the user can concentrate on the engineering that they are performing, without being aware of communications via the other user interfaces 500.
[0126] (6) The simulation system 7 according to (5), further comprising a messenger 171 that displays a message input to one type of user interface 500 on another type of user interface 500. By facilitating message exchange between users while allowing each user to concentrate on the engineering they are responsible for, collaboration among multiple users can be promoted, further improving engineering efficiency.
[0127] (7) The simulation system 7 according to any one of (1) to (6), further comprising: a virtual space generation unit 143 that causes multiple types of machines 5 to cooperate in the virtual space based on simulation results using multiple types of virtual controllers 120; and a virtual space display unit 145 that displays the virtual space in which the multiple types of machines 5 are cooperating on at least one of multiple types of user interfaces 500. The movements of the multiple types of machines 5 in the virtual space can be confirmed on each user interface 500. In this case, since it is possible to confirm the movements of not only the machine 5 corresponding to the virtual controller 120 that performed the engineering, but also the other machines 5, engineering efficiency is improved.
[0128] (8) The simulation system 7 according to (7), wherein the virtual space display unit 145 displays the virtual space from viewpoints independent of each other on at least two or more of the multiple types of user interfaces 500. By adjusting the viewpoints for each of the multiple users, engineering efficiency in the virtual environment is further improved.
[0129] (9) A simulation system 7 according to (7) or (8), wherein the plurality of types of user interfaces 500 are also accessible to the plurality of types of controllers 300, respectively, the virtual space generation unit 143 causes the plurality of types of machines 5 to further cooperate in the virtual space based on the control results of the plurality of types of machines 5 by the plurality of types of controllers 300, and the virtual space display unit 145 causes the virtual space in which the plurality of types of machines 5 are cooperating based on the control results to be displayed on at least one type of user interface 500 accessing the corresponding controller 300. By reproducing the operation of the plurality of types of machines 5 in the real space in the virtual space, detailed verification of the operation of the plurality of types of machines 5 can be easily performed.
[0130] (10) The simulation system 7 according to any one of (1) to (9), further comprising: a copy generation unit 181 that generates a copy simulation environment 110 corresponding to one of the plurality of types of user interfaces 500 as the simulation environment 101 when engineering a virtual controller 120 corresponding to one of the types of user interfaces 500; and an access management unit 141 that allows the one type of user interface 500 to access the corresponding virtual controller 120 in the copy simulation environment 110. One user can perform trial and error including engineering and simulation of the cell 2 independently from other users. This allows the cell 2 to be constructed more efficiently.
[0131] (11) The simulation system 7 according to (10), wherein, when engineering virtual controllers 120 corresponding to at least two or more types of user interfaces 500 among a plurality of types of user interfaces 500, the copy generation unit 181 generates, as the simulation environment 101, two or more copy simulation environments 110 corresponding to the two or more types of user interfaces 500, respectively, and the access management unit 141 allows each of the two or more types of user interfaces 500 to access the corresponding virtual controller 120 in the corresponding copy simulation environment 110. Two or more users can independently perform trial and error including engineering and simulation of the cell 2. This allows the cell 2 to be constructed more efficiently.
[0132] (12) The simulation system 7 according to (11), wherein the copy generation unit 181 generates, based on the master settings 183 of the respective types of virtual controllers 120, copy simulation environments 110 that cause multiple types of virtual controllers 120 to simulate cooperation, each including copy settings 184 that are copies of the master settings 183; the virtual controllers 120 accessed by each of the two or more types of user interfaces 500 update the copy settings 184 based on the results of engineering performed by the corresponding user interface 500; and the simulation system 7 further includes a master update unit 185 that, in response to a request from each of the two or more types of user interfaces 500, reflects the updated results of the copy settings 184 in the corresponding copy simulation environment 110 in the master setting 183. This makes it possible to suppress the adverse effects of trial and error in one copy simulation environment 110 on trial and error in other copy simulation environments 110.
[0133] (13) The simulation system 7 according to (11) or (12) further includes a virtual space generation unit 143 that causes multiple types of machines 5 to cooperate in the virtual space based on simulation results by multiple types of virtual controllers 120 for each copy simulation environment 110, and a virtual space display unit 145 that displays, for each copy simulation environment 110, the virtual space in which the multiple types of machines 5 are cooperating on the corresponding user interface 500. Each user can check the execution results of their own simulation on their own user interface 500.
[0134] (14) The simulation system 7 according to (12) or (13) further includes a history storage unit 161 that stores an update history of the master settings 183, and an out-date detection unit 186 that detects an out-date of the copy settings 184 in each of the two or more copy simulation environments 110 based on the generation timing and update history of each of the two or more copy simulation environments 110. By making each user aware of the out-date of the copy settings 184 due to engineering by other users, it is possible to suppress unnecessary simulations and further improve the engineering efficiency of each user.
[0135] (15) The simulation system 7 according to (14), wherein the copy generation unit 181 updates the copy settings 184 for which an outdated date has been detected in each of the two or more copy simulation environments 110 based on the master settings 183. Since the copy settings 184 for which an outdated date has been detected are updated by the system, the engineering efficiency of each user is further improved.
[0136] (16) The simulation system 7 according to (15) further includes a history display unit 162 that, when the copy generation unit 181 updates the copy settings 184 in each of the two or more copy simulation environments 110, displays the updated parts on the corresponding user interface 500. This allows users to easily understand the impact of updates to the copy settings 184 on ongoing engineering, further improving the efficiency of engineering by each user.
[0137] (17) A simulation system 7 is a system for simulating a cell 2 having multiple types of machines 5 and multiple types of controllers 300 that cause the multiple types of machines 5 to cooperate with each other, the simulation system 7 including: multiple types of user interfaces 500 that can access each of the multiple types of controllers 300, that differ from each other depending on the type of the corresponding controller 300, and that are specialized for engineering of the corresponding controller 300; a virtual space generation unit 143 that causes the multiple types of machines 5 to further cooperate in the virtual space based on control results of the multiple types of machines 5 by the multiple types of controllers 300; and a virtual space display unit 145 that displays the virtual space in which the multiple types of machines 5 are cooperating with each other based on the control results on at least one user interface 500 that is accessing the corresponding controller 300.
[0138] (18) A method for simulating a cell 2 having multiple types of machines 5 and multiple types of controllers 300 that cause the multiple types of machines 5 to cooperate with each other, the simulation method including: in a simulation environment 101 including multiple types of virtual controllers 120 respectively corresponding to the multiple types of controllers 300, causing the multiple types of virtual controllers 120 to access multiple types of user interfaces 500 that differ depending on the types of the corresponding virtual controllers 120 and that are each specialized for engineering the corresponding virtual controller 120; updating the multiple types of virtual controllers 120 based on input to the multiple types of user interfaces 500; and simulating cooperation of the updated multiple types of virtual controllers 120 in the simulation environment 101.
[0139] Although the embodiments have been described above, the present disclosure is not limited to the above-described embodiments, and various modifications are possible without departing from the spirit of the present disclosure.
[0140] 2...cell, 5...machine, 300...controller, 101...simulation environment, 120...virtual controller, 500...user interface, 7...simulation system, 141...access management unit, 143...virtual space generation unit, 145...virtual space display unit, 161...history holding unit, 162...history display unit, 171...messenger, 110...copy simulation environment, 181...copy generation unit, 183...master setting, 184...copy setting, 185...master update unit, 186...outdate detection unit.
Claims
1. A system for simulating a cell having multiple types of machines and multiple types of controllers that operate the multiple types of machines in cooperation with each other, comprising: a simulation environment that simulates the cooperation using multiple types of virtual controllers corresponding to the multiple types of controllers; and multiple types of user interfaces that are accessible to each of the multiple types of virtual controllers in the simulation environment, each of which differs depending on the type of the corresponding virtual controller, and each of which is specialized for engineering the corresponding virtual controller.
2. A simulation system according to claim 1, wherein said plurality of types of user interfaces are also accessible to said plurality of types of controllers, respectively.
3. The simulation system according to claim 1 or 2, further comprising a history storage unit that stores a history of engineering for the corresponding virtual controller by each of the plurality of types of user interfaces.
4. The simulation system according to claim 3, further comprising a history display unit that displays, on each of the plurality of types of user interfaces, the engineering history for virtual controllers other than the corresponding virtual controller, based on the history stored in the history storage unit.
5. The simulation system according to claim 1 or 2, further comprising an access management unit that allows the plurality of types of user interfaces to access the plurality of types of virtual controllers independently of one another.
6. The simulation system according to claim 5, further comprising a messenger for displaying a message inputted to one type of user interface on another type of user interface.
7. A simulation system as claimed in claim 1 or 2, further comprising: a virtual space generation unit that causes the multiple types of machines to execute the collaboration in a virtual space based on a simulation result by the multiple types of virtual controllers; and a virtual space display unit that displays the virtual space in which the multiple types of machines are executing the collaboration on at least one of the multiple types of user interfaces.
8. A simulation system according to claim 7, wherein said virtual space display unit causes at least two or more of said plurality of types of user interfaces to display said virtual space from viewpoints independent of each other.
9. A simulation system as described in claim 7, wherein the multiple types of user interfaces are also accessible to the multiple types of controllers, respectively; the virtual space generation unit causes the multiple types of machines to further execute the collaboration in the virtual space based on the control results of the multiple types of machines by the multiple types of controllers; and the virtual space display unit displays the virtual space in which the multiple types of machines are executing the collaboration based on the control results on at least one user interface accessing a corresponding controller.
10. The simulation system of claim 1, further comprising: a copy generation unit that generates a copy simulation environment corresponding to one of the plurality of types of user interfaces as the simulation environment when engineering a virtual controller corresponding to the one of the plurality of types of user interfaces; and an access management unit that allows the one of the types of user interfaces to access the corresponding virtual controller in the copy simulation environment.
11. A simulation system as described in claim 10, wherein the copy generation unit generates two or more copy simulation environments corresponding to the two or more user interfaces as the simulation environment when engineering a virtual controller corresponding to each of at least two or more user interfaces among the multiple types of user interfaces, and the access management unit allows each of the two or more user interfaces to access a corresponding virtual controller in the corresponding copy simulation environment.
12. The simulation system of claim 11, wherein the copy generation unit generates a copy simulation environment based on a master setting of each of the multiple types of virtual controllers, in which the multiple types of virtual controllers each include a copy setting that is a copy of the master setting, and the virtual controller accessed by each of the two or more types of user interfaces updates the copy setting based on the results of engineering performed by the corresponding user interface, and the simulation system further comprises a master update unit that reflects the update result of the copy setting in the corresponding copy simulation environment in the master setting in response to a request from each of the two or more types of user interfaces.
13. A simulation system as described in claim 11 or 12, further comprising: a virtual space generation unit that causes the multiple types of machines to execute the collaboration in a virtual space based on a simulation result by the multiple types of virtual controllers for each of the copy simulation environments; and a virtual space display unit that displays, for each of the copy simulation environments, the virtual space in which the multiple types of machines are executing the collaboration on a corresponding user interface.
14. The simulation system of claim 12, further comprising: a history storage unit that stores an update history of the master setting; and an out-date detection unit that detects an out-date of the copy setting in each of the two or more copy simulation environments based on the generation timing of each of the two or more copy simulation environments and the update history.
15. The simulation system according to claim 14, wherein said copy generation unit updates said copy setting in which said outdated setting has been detected, based on said master setting, in each of said two or more copy simulation environments.
16. The simulation system according to claim 15, further comprising a history display unit which, when the copy settings are updated by the copy generation unit in each of the two or more copy simulation environments, displays the updated parts on a corresponding user interface.
17. A system for simulating a cell having multiple types of machines and multiple types of controllers that cause the multiple types of machines to cooperate with each other, comprising: multiple types of user interfaces that can access each of the multiple types of controllers, each of which differs depending on the type of the corresponding controller, and each of which is specialized for the engineering of the corresponding controller; a virtual space generation unit that causes the multiple types of machines to further cooperate in a virtual space based on the control results of the multiple types of machines by the multiple types of controllers; and a virtual space display unit that displays the virtual space in which the multiple types of machines are executing the cooperation based on the control results on at least one user interface accessing the corresponding controller.
18. A method for simulating a cell having a plurality of types of machines and a plurality of types of controllers that cause the plurality of types of machines to cooperate with one another, comprising: in a simulation environment including a plurality of types of virtual controllers respectively corresponding to the plurality of types of controllers, causing the plurality of types of virtual controllers to access a plurality of types of user interfaces that differ depending on the type of the corresponding virtual controller and each of which is specialized for the engineering of the corresponding virtual controller; updating the plurality of types of virtual controllers based on input to the plurality of types of user interfaces; and causing the updated plurality of types of virtual controllers to simulate the cooperation in the simulation environment.