Industrial simulation system, industrial simulation program, and message data structure

JP2025030510APending Publication Date: 2025-03-07HITACHI LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
JP2023135865
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-08-23
Publication Date
2025-03-07

AI Technical Summary

Benefits of technology

【0011】 以上のように、本開示では、シミュレータコンポーネントの間でコマンドメッセージまたは通知メッセージを送受信することにより、シミュレータコンポーネントの一方が、シミュレータコンポーネントの他方が実行するシミュレーションを活用出来る。つまり、シミュレータコンポーネントのそれぞれについての、産業システムのモデルにおける、互いに同じまたは類似の構造の部分が無いか少ないようにされることが出来る。 このように、本開示は、産業システムの設計または分析に関して、シミュレータ(またはシミュレータコンポーネント)のそれぞれが産業システムのシミュレーションを行えるようにするための作業における重複する部分を減らすことを実現出来る。 別の表現をするならば、本開示は、産業システムの設計または分析に関して、シミュレータ(またはシミュレータコンポーネント)のそれぞれについての、シミュレーション対象である同一の産業システムのモデルを構築するにあたって、同じまたは類似の構造のモデルの重複した開発を回避または軽減することを実現出来る。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025030510000001_ABST
    Figure 2025030510000001_ABST
Patent Text Reader

Abstract

To provide an industrial simulation system for reducing the duplication of work as one object of the disclosure.SOLUTION: A simulator component 101 manages state information 111 for simulating the industrial system 105, generates a command message 103 based on the state information 111 that the simulator component itself manages, and sends the command message 103 to a simulator component 102. The simulator component 102 manages state information 121 for simulating the industrial system 105, executes the simulation of the industrial system 105 based on the command message 103 received from the simulator component 101, updates the state information 121 for itself, generates a notification message 104 in response to the simulation, and sends the notification message 104 to the simulator component 101.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to a technique for simulating an industrial system. [Background technology]

[0002] An industrial system is any system related to industrial activity. Examples of industrial systems include logistics systems and production systems. When an industrial system is constructed or analyzed, the industrial system may be simulated and the simulation results may be verified. For example, a person who designs an industrial system may improve the design content of the industrial system based on the simulation results of the industrial system. In designing an industrial system, the person who designs the industrial system may stepwise increase the level of detail (LoD) or accuracy of the industrial system from an upstream design stage to a downstream design stage. The person who designs the industrial system may use a simulator with a low level of detail (LoD) or accuracy in the upstream design stage, while using a simulator with a high level of detail (LoD) or accuracy in the downstream design stage. For example, a simulator with a low level of detail (LoD) or precision may be a console-based, two-dimensional (2D)-based simulator that accepts command input via a prompt, outputs the results of numerical calculations as text information, and has a simulated (visualized) space of two dimensions or less, whereas a simulator with a high level of detail (LoD) or precision may be a three-dimensional (3D)-based simulator that has a simulated (visualized) space of three dimensions. Alternatively, in designing an industrial system, a person who designs the industrial system may use a simulator suited to each purpose of the simulation. The same points made above about the design of industrial systems can be made in the analysis of industrial systems. In other words, when there are multiple stages or uses of the analysis of an industrial system, it is possible to use a simulator suitable for each stage or analysis. That is, multiple types of simulators (or simulator components) may be used in the design or analysis of an industrial system.

[0003] Patent Document 1 discloses a prior art that uses multiple simulators. The prior art disclosed in Patent Document 1 includes an integrated processing unit and multiple simulators. The integrated processing unit transmits a simulation processing request (a request to execute a simulation) to each of the simulators. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] JP 2018-139041 A Summary of the Invention [Problem to be solved by the invention]

[0005] For example, a simulator (or simulator component) used earlier and a simulator (or simulator component) used later simulate the same industrial system (although there may be differences due to differences in stages or uses), so at least some of the work to build a model of the industrial system to be simulated for both simulators (or simulator components) may be the same or similar (duplicate). Overlapping work may cause inefficiencies in the design or analysis of the industrial system and the work of building a model for the simulator. In this way, using multiple types of simulators (or simulator components) in the design or analysis of an industrial system may cause problems.

[0006] Furthermore, even if the work of constructing models of the industrial system to be simulated for multiple types of simulators (or simulator components) is carried out in parallel, there may be some overlap in the work described above if the model of the industrial system for each simulator (or simulator component) is constructed individually, independent of the other simulators (or simulator components).

[0007] In addition, in the prior art disclosed in Patent Document 1, a request to execute a simulation is allocated to the multiple simulators from an integrated processing unit that essentially plays the role of a load balancer. Each of the simulators in the prior art disclosed in Patent Document 1 does not focus on ingenuity in constructing a model according to a stage or purpose. Therefore, the prior art disclosed in Patent Document 1 does not solve the above-mentioned problems.

[0008] In light of the above, one objective of the present disclosure may be to reduce duplication of work in designing or analyzing an industrial system so that each simulator (or simulator component) can simulate the industrial system. In other words, with respect to the design or analysis of an industrial system, one of the objectives of the present disclosure may be to avoid or reduce the redundant development of models of the same or similar structure when constructing models of the same industrial system to be simulated for each simulator (or simulator component). [Means for solving the problem]

[0009] In order to achieve at least one of the above objects, the present disclosure may have features that, among features that indicate aspects of a processing flow between simulator components (inter-component cooperation sequence), are as follows, for example. One aspect of the present disclosure is an industrial simulation system. The industrial simulation system is for simulating an industrial system and includes a plurality of simulator components. Any one of the simulator components manages state information for the simulation of the industrial system, generates a command message based on the state information managed by itself, and sends the command message to any other one of the simulator components. The other one of the simulator components manages state information for the simulation of the industrial system, executes a simulation of the industrial system based on the command message received from the one of the simulator components, updates the state information managed by itself, generates a notification message according to the simulation, and sends the notification message to the one of the simulator components.

[0010] In order to achieve at least one of the above objects, the present disclosure may have features, which, among other things, show aspects of the data structure of messages between simulator components as follows, for example. Another aspect of the present disclosure is a data structure of a message. The message is transmitted and received between simulator components in an industrial simulation system for simulating an industrial system. The message is a command message or a notification message. When the message is the command message, the data structure of the message includes an identifier of the simulator component that is the destination of the message, an identifier of a command, and a variable-length list, and the variable-length list includes parameters of the command. When the message is the command message, the data structure of the message is used in a process in which the destination simulator component executes a simulation indicated by the identifier of the command with respect to the industrial system using the parameters included in the variable-length list, and updates state information for the simulation of the industrial system that is managed by the destination simulator component itself. When the message is the notification message, the data structure of the message includes an identifier of the simulator component that is the destination of the message, an identifier of an event, and a variable-length list, and the variable-length list includes parameters of the event. If the message is a notification message, the data structure of the message is used in a process in which the destination simulator component updates status information for the simulation of the industrial system, which the simulator component that is the destination manages itself, based on the progress or results of the simulation of the industrial system indicated by the event identifier performed by the simulator component that issued the notification message, as indicated by the parameters included in the variable-length list. Effect of the Invention

[0011] As described above, in the present disclosure, by transmitting and receiving command messages or notification messages between the simulator components, one of the simulator components can utilize a simulation executed by another of the simulator components, that is, the simulator components can be configured to have no or few parts of the same or similar structure in the model of the industrial system. In this manner, the present disclosure can reduce duplication of effort with respect to designing or analyzing an industrial system to enable each simulator (or simulator component) to simulate the industrial system. In other words, the present disclosure can avoid or reduce the need for redundant development of models of the same or similar structure when constructing models of the same industrial system to be simulated for each simulator (or simulator component) in relation to the design or analysis of an industrial system.

[0012] An industrial simulation method or an industrial simulation program that realizes the same processing as that realized by the above-mentioned industrial simulation system can also obtain the same effect as the above-mentioned industrial simulation system. Furthermore, if it is in the form of a program, the cost can be reduced in many cases. With a program, design changes regarding the processing can be easily made. Other features that the present disclosure may have and the effects corresponding to these features will be disclosed in this specification, the claims, or the drawings. [Brief description of the drawings]

[0013] [Figure 1] 1 illustrates a functional configuration (mainly a processing flow) of an embodiment of the present disclosure. [Diagram 2] 1 illustrates a functional configuration (mainly functional units) of an embodiment of the present disclosure. [Diagram 3] 1 shows a functional configuration (mainly functional units) of a modified example of an embodiment of the present disclosure. [Figure 4]4 illustrates a data structure of a message in an embodiment of the present disclosure. [Diagram 5] The inside of a variable-length list in the data structure of a command message is shown. [Figure 6] The inside of a variable-length list of the data structure of a notification message is shown. [Figure 7] 1 illustrates the relationship between design stages and embodiments of the present disclosure. [Figure 8] 1 illustrates a computer architecture for implementing an embodiment of the present disclosure. [Figure 9] The overall configuration is shown below when the simulation target is a logistics system, etc. [Figure 10] An example of a logistics system and an example of an industrial simulation system are given. [Figure 11] An example of a command message for a shipping process is shown below. [Figure 12] An example of a notification message for a shipping process is shown below. [Figure 13] A first example of a command message for a stowage process is shown below. [Figure 14] A second example of a command message for a stowage process is shown below. [Figure 15] An example of a notification message for a loading process is shown below. [Figure 16] 13 shows a first example of a command message for a transport process. [Figure 17] 13 shows a second example of a command message for a transport process. [Figure 18] 13 shows an example of a notification message for a transport process. [Figure 19] Here is an example of multiple components contained in the same simulator. [Figure 20] Here is an example in which a numerical calculation simulator calls a three-dimensional calculation simulator. [Figure 21] Here is an example in which a three-dimensional calculation simulator calls a numerical calculation simulator. [Figure 22] This shows the relationship between orders and various messages to the logistics system. [Diagram 23] Indicates a retransmission of a command message. [Figure 24] Indicates that the message is used for communication between modules within a component. [Diagram 25] The following message is displayed when the simulation target is a production system. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] Hereinafter, the embodiments of the present disclosure will be described in detail with reference to the drawings. Note that the embodiments described below do not limit the disclosure according to the claims, and not all of the elements and combinations thereof described in the embodiments are necessarily essential to the solution of the present disclosure. The present disclosure is not limited to the embodiments, and any application examples that match the idea of ​​the present disclosure are included in the technical scope of the present disclosure. The following description and drawings are examples for explaining the present disclosure, and are appropriately omitted and simplified for clarity of explanation. Unless otherwise limited, each component may be singular or plural. In order to facilitate understanding of the invention, the position, size, shape, range, etc. of each component shown in the drawings may not represent the actual position, size, shape, range, etc. For this reason, the present disclosure is not necessarily limited to the position, size, shape, range, etc. disclosed in the drawings. Each of the systems, devices, components, or modules disclosed herein may be integrated in terms of hardware, or may be divided into multiple parts that work together to perform their functions. Several systems, devices, components, or modules may be integrated in terms of hardware. Each of the systems, devices, components, or modules may be realized by having a computer execute software (programs) (as in FIG. 8). Some of the functions of the system, device, component, or module may be realized by hardware (e.g., hardwired logic or FPGA), and the remaining functions may be realized by executing software (programs). All of the functions of each of the systems, devices, components, or modules may be realized by hardware. Some or all of the processing steps included in the process flows, etc. described below may be realized by hardware. The entity that executes the above-mentioned software (program) may be an information processing device (e.g., a processor or a CPU), a controller having an information processing device (e.g., a processor or a CPU), an apparatus, a system, a computer, a node, a storage system, a storage device, a server, a management computer, a client, or a host. The entity that executes the software (program) (e.g., an information processing device (e.g., a processor or a CPU)) may include a hardware circuit that performs part or all of the processing. For example, the entity that executes the software (program) may include a hardware circuit that performs encryption, decryption, compression, or decompression. One or more systems, devices, components, or modules of the present disclosure may be realized using one or more hardware resources. For this purpose, each of the systems, devices, components, or modules of the present disclosure may be realized virtually. For example, a virtual computer or container technique may be used. The software (program) of the present disclosure may be included in a concept that generally includes software that constitutes a specific information processing system (industrial simulation system or simulator component) or its operating method according to the intended use by the cooperation of software and hardware resources. In other words, the software (program) of the present disclosure is not limited to a specific type or form of program. The software (program) may also be initially recorded in a compressed format. The software (program) mentioned above may be installed in an information processing system (industrial simulation system or simulator component) from a program source. The program source may be, for example, a non-transient storage medium that can be read by a program distribution server or an information processing system (industrial simulation system or simulator component). When the program source is a program distribution server, the program distribution server includes an information processing device (e.g., a processor or a CPU) and a non-transient storage resource, and the non-transient storage resource may store a program having a distribution function and a program to be distributed. Then, the information processing device (e.g., a processor or a CPU) of the program distribution server may execute the program having the distribution function, so that the information processing device (e.g., a processor or a CPU) of the program distribution server may distribute the program to be distributed to another system (e.g., an information processing system (industrial simulation system or simulator component)). In addition, the software (program) for executing a predetermined process may be configured as a single program or as a group of programs. The use of the same reference numbers in multiple drawings indicates similar items.

[0015] 1. Functional configuration of the embodiment of the present disclosure The functional configuration of an embodiment of the present disclosure will be described with reference to FIGS. First, the aspect of the processing flow between simulator components (inter-component cooperation sequence) among the functional configurations of the embodiment of the present disclosure will be described mainly with reference to Figures 1 to 3. Next, the aspect of the data structure of messages between simulator components among the functional configurations of the embodiment of the present disclosure will be described mainly with reference to Figures 4 to 6. Then, the relationship between the design stage of an industrial system and the embodiment of the present disclosure will be described mainly with reference to Figure 7.

[0016] 1.1. Processing flow between simulator components (interaction sequence) 1 shows the aspect of the process flow (inter-component cooperation sequence) between simulator components in the functional configuration of the embodiment of the present disclosure. The process steps executed in the process flow (inter-component cooperation sequence) are shown in the dotted rectangular frame in FIG. 1. FIG. 2 shows a side view of modules (mostly functional units) in a simulator component among the functional configurations of the embodiment of the present disclosure. Among the modules shown in a solid-line rectangular frame in FIG. 2, modules other than the state information (A) holding module 211 and the state information (B) holding module 221 may be functional units. The modules that are functional units may be constructed by executing a program. Alternatively, some or all of the modules that are functional units may be realized by hardware. The state information (A) holding module 211 and the state information (B) holding module 221 may be a type of database or table for holding state information, or may be a type of encapsulated object. It should be noted that not all of the functional configurations shown in FIG. 1 or FIG. 2 are essential.

[0017] The industrial simulation system 100 shown in Fig. 1 and Fig. 2 is for simulating an industrial system 105. The industrial simulation system 100 includes a plurality of simulator components. In Fig. 1 and Fig. 2, two simulator components, a simulator component (A) 101 and a simulator component (B) 102, are shown as simulator components included in the industrial simulation system 100, but the number of simulator components is not limited to two. Both the simulator component (A) 101 and the simulator component (B) 102 are for simulating the same industrial system 105, but the level of detail (LoD), accuracy, or use of the simulation to be executed may be different from each other. 1, the simulator component (A) 101 manages state information (A) 111 that it uses to simulate the industrial system 105. The simulator component (B) 102 manages state information (B) 121 that it uses to simulate the industrial system 105. The state information (A) 111 is managed by a state information (A) holding module 211. The state information (B) 121 is managed by a state information (B) holding module 221. The contents of the state information (A) 111 and the state information (B) 121 do not need to be completely identical, but there may be some partial overlapping information. 1, at least a command message 103 can be transmitted and received from the simulator component (A) 101 to the simulator component (B) 102. Also, at least a notification message 104 can be transmitted and received from the simulator component (B) 102 to the simulator component (A) 101. The command message 103 is for requesting the destination simulator component to execute a simulation of an industrial system 105. The notification message 104 is for notifying the destination simulator component of the results (intermediate progress or results) of the simulation of the industrial system 105 executed by the simulator component that issued the notification message 104.

[0018] 2, the simulator component (A) 101 may include a state information (A) holding module 211 for managing state information (A) 111, a simulation (A) module 212, a state information (A) update module 213, a command message generation module 214, and a message transmission / reception module 215. The simulator component (B) 102 may include a state information (B) holding module 221 for managing state information (B) 121, a simulation (B) module 222, a state information (B) update module 223, a notification message generation module 227, and a message transmission / reception module 225. 2 shows the state information (A) holding module 211 in the simulator component (A) 101 and the state information (B) holding module 221 in the simulator component (B) 102, but is not limited to this. Since it is sufficient for the simulator component (A) 101 to be able to manage the state information (A) 111, the state information (A) holding module 211 or the state information (A) 111 may be present outside the simulator component (A) 101. The same applies to the relationship between the simulator component (B) 102 and the state information (B) holding module 221. As shown in FIG. 2, a network 206 may be present for transmitting and receiving various messages between the simulator component (A) 101 and the simulator component (B) 102. For example, the network 206 may be a TCP / IP network, but is not limited thereto. If it is not necessary to use a network for transmitting and receiving various messages between the simulator component (A) 101 and the simulator component (B) 102 due to circumstances such as the simulator component (A) 101 and the simulator component (B) 102 being constructed or realized on the same computer, other hardware or software intercommunication means may be used instead of the network 206. Alternatively, a buffer that temporarily holds various messages between the simulator component (A) 101 and the simulator component (B) 102 may be provided, and then various messages may be transmitted and received via the buffer. As such a buffer, hardware such as a storage device such as a memory or a recording device such as a storage may be used, or a database or table implemented on a storage device or a recording device may be used.

[0019] The process flow between simulator components (inter-component interaction sequence) will be described with reference to FIGS. First, in order to realize a simulation of the industrial system 105 in the simulator component (A) 101, a simulation (A) module 212 may obtain state information (A) 111 from a state information (A) holding module 211 and perform simulation (A) execution 112. Then, in order to reflect the result of the simulation (A) execution 112 in the state information (A) 111, a state information (A) update module 213 may perform state information (A) update 113 for the state information (A) holding module 211. While the simulation of the industrial system 105 in the simulator component (A) 101 as described above is proceeding, there may be a situation where it is desired to request execution of a simulation by the simulator component (B) 102. For example, in such a situation, the command message generation module 214 may perform command message generation 114. When performing command message generation 114, the command message generation module 214 may obtain information such as state information (A) 111 from the state information (A) holding module 211 or a simulation result from the simulation (A) module 212, and generate a command message 103. Regarding the command message 103 generated by the command message generation module 214, the message transmission / reception module 215 may perform transmission 115 of the command message toward the network 206. The message transmission / reception module 225 in the simulator component (B) 102, which is the destination of the command message 103, may perform reception 126 of the command message from the network 206.

[0020] The simulation (B) module 222 in the simulator component (B) 102 may execute 122 a simulation (B) based on the command message 103 and the state information (B) 121 from the state information (B) holding module 221. Here, the target of the simulation performed by the simulation (B) module 222 and the target of the simulation performed by the simulation (A) module 212 are the same industrial system 105. The simulation performed by the simulation (B) module 222 and the simulation performed by the simulation (A) module 212 may differ from each other in level of detail (LoD), accuracy, or use of the simulation. In order to reflect the result or the like (e.g., intermediate progress or result) of the execution 122 of the simulation (B) in the state information (B) 121, the state information (B) update module 223 may perform update 123 of the state information (B) for the state information (B) holding module 221. In order to obtain a notification message 104 for notifying the simulator component (A) 101 that is the issuer of the command message 103 of the result or the like (e.g., intermediate progress or result) of the execution 122 of the simulation (B) or information related to the updated state information (B) 121, the notification message generation module 227 may perform generation 127 of a notification message. Regarding the notification message 104 generated by the notification message generation module 227, the message transmission / reception module 225 may perform transmission 128 of the notification message toward the network 206. The message transmission / reception module 215 in the simulator component (A) 101, which is the destination of the notification message 104, may perform reception 119 of the notification message by obtaining it from the network 206.

[0021] The state information (A) update module 213 in the simulator component (A) 101 may perform update 113 of the state information (A) for the state information (A) holding module 211 based on the notification message 104. Here, the notification message 104 has information related to the result (e.g., intermediate progress or result) of the execution 122 of the simulation (B) performed by the simulator component (B) 102 which is the issuer of the notification message 104, or the updated state information (B) 121. In other words, from the viewpoint of the simulator component (A) 101, the result (e.g., intermediate progress or result) of the execution 122 of the simulation (B) is obtained from the simulator component (B) 102 which is the destination of the request for the execution 122 of the simulation (B) by the command message 103.

[0022] As described above, the processing flow (inter-component interaction sequence) between simulator components is executed using the command message 103 and the notification message 104, so that when any one of the simulator components executes a simulation of the industrial system 105, it is possible to use the results (intermediate progress or results) of a simulation that any other one of the simulator components can execute, or updated status information accompanying the execution of the simulation. This makes it possible to eliminate or reduce duplication of work in constructing a model of the industrial system 105 between different simulator components.

[0023] FIG. 3 shows a variant in which any simulator component is capable of sending both command messages 103 and notification messages 104 . It should be noted that not all of the functional configurations shown in FIG. 3 are essential. 3 (compared to FIG. 2), the simulator component (A) 101 further includes a notification message generation module 317. Also, the simulator component (B) 102 further includes a command message generation module 324. FIG. 3 shows a simplified diagram of the interrelationships between the state information (A) holding module 211, the simulation (A) module 212, and the state information (A) update module 213, and the interrelationships between the state information (B) holding module 221, the simulation (B) module 222, and the state information (B) update module 223, but in reality they may be similar to those shown in FIG. 2. Any simulator component can be configured to be able to send both the command message 103 and the notification message 104. Therefore, mutual use of simulations between simulator components can be flexibly set. In Fig. 3, simulator component (A) 101 and simulator component (B) 102 each include a module with a similar name. Modules with a similar name have similar functions or roles in the simulator component to which the module belongs. However, even modules with a similar name may have different detailed internal configurations depending on the level of detail (LoD), accuracy, or use of the simulation realized by the simulator component to which the module belongs. In other words, a module may be localized to fit the simulator component to which the module belongs. 3, although the level of detail (LoD), accuracy, or purpose of the simulation to be executed differs between simulator component (A) 101 and simulator component (B) 102, they are similar in that they perform processing using command messages 103 having a defined data structure or notification messages 104 having a defined data structure. Therefore, between simulator component (A) 101 and simulator component (B) 102, modules with the same or similar names may have the same or similar functions for handling command messages 103 or notification messages 104. In other words, guidelines for implementing modules are determined in advance to a certain extent, and it is expected that the number of steps involved in implementing modules will be reduced. 3, although the level of detail (LoD), accuracy, or use of the simulation to be executed differs between simulator component (A) 101 and simulator component (B) 102, the lineup of types of modules provided in the simulator components is the same or similar. Therefore, the implementation guidelines of the internal configuration of the simulator components can be similar between simulator component (A) 101 and simulator component (B) 102. This can reduce the time required to consider the implementation guidelines of the internal configuration, and therefore it is expected that the number of steps involved in implementing the simulator components can be reduced.

[0024] 1.2. Data structure of messages between simulator components FIG. 4 illustrates the data structure of messages between simulator components in the functional configuration of an embodiment of the present disclosure. 4, the command message 103 may include an identifier 431 of a simulator component to which the command message 103 is addressed, an identifier 432 of a command, and a variable-length list 433. Although not shown, the command message 103 may also include an identifier of a simulator component from which the command message 103 is issued. The notification message 104 may include an identifier 441 of a simulator component to which the notification message 104 is addressed, an identifier 442 of an event, and a variable-length list 443. Although not shown, the notification message 104 may also include an identifier of a simulator component from which the notification message 104 is issued. By making the command message 103 or the notification message 104 have the data structure shown in FIG. 4, a highly flexible message expression format that is not dependent on the structure of the simulator component is realized. FIG. 5 shows an example of the internal structure of a variable-length list 433 in a command message 103 . FIG. 6 shows an example of the internal structure of the variable-length list 443 in the notification message 104. It should be noted that not all of the functional configurations shown in FIGS. 4 to 6 are essential.

[0025] A simulator component (simulator component (B) 102 in FIG. 4 ) that is the destination of the command message 103 may execute a simulation indicated by a command identifier 432 for the industrial system 105, using command parameters included in a variable-length list 433. In line with FIG. 4 , the simulator component (B) 102 may execute 122 the simulation (B) based on the type 422 of the simulation (B) indicated by the command identifier 432 and the parameters 423 of the simulation (B) included in the variable-length list 433. In order to reflect the results (e.g., progress or results) of the execution 122 of the simulation (B) in the state information (B) 121 that it manages, the simulator component (in FIG. 4, simulator component (B) 102) that is the destination of the command message 103 may update 123 the state information (B).

[0026] The simulator component (simulator component (A) 101 in FIG. 4) that is the destination of the notification message 104 may perform a process of updating the state information (state information (A) 111 in FIG. 4) that it manages based on the result, etc. (e.g., intermediate progress or result) of the simulation of the industrial system 105 that is indicated by the event identifier 442 and that is indicated by the parameters of the event included in the variable-length list 443 and that is executed by the simulator component (simulator component (B) 102 in FIG. 4) that is the issuer of the notification message 104. In terms of FIG. 4, the simulator component (A) 101 may perform update 113 of the state information (A) based on the type 412 of the simulation (B) indicated by the event identifier 442 and the parameters 413 of the result, etc. (e.g., intermediate progress or result) of the simulation (B) included in the variable-length list 443.

[0027] 5, the variable-length list 433 included in the data structure of the command message 103 may have, for example, one or more combinations of a processing operation subject identifier 511, a processing operation object identifier 512, a processing operation setting 513, and a processing operation timing 514. FIG. 5 shows an example having at least two such combinations (the second combination is shown as a processing operation subject identifier 521, a processing operation object identifier 522, a processing operation setting 523, and a processing operation timing 524). The processing action subject identifier 511 indicates the subject of the processing or action to be simulated. The processing action object identifier 512 indicates the object of the processing or action to be simulated. The processing action setting 513 defines some settings for the simulation. The processing action timing 514 sets the time or time period in the simulation where the processing or action is performed in the time flow. Note that none of the processing action subject identifier 511, the processing action object identifier 512, the processing action setting 513, and the processing action timing 514 are essential for the variable-length list 433. Furthermore, the variable-length list 433 may have information other than these.

[0028] 6, the variable-length list 443 included in the data structure of the notification message 104 may have, for example, one or more combinations of a processing operation subject identifier 611, a processing operation object identifier 612, measurement information 613, and error retry information 615. In FIG. 6, an example having at least two such combinations is shown (the second combination is shown as a processing operation subject identifier 621, a processing operation object identifier 622, measurement information 623, and error retry information 625). The processing operation subject identifier 611 indicates the subject of the processing or operation of the target for which the simulation was performed. The processing operation object identifier 612 indicates the object of the processing or operation of the target for which the simulation was performed. The measurement information 623 is some information measured when the simulation was performed. An example of the measurement information 623 may be the time or time period when the processing or operation was performed in the time flow in the simulation. The error retry information 625 is information regarding errors or retries when the simulation was performed (for example, information on whether an error occurred or information on whether a retry was performed or not). Note that none of the processing operation subject identifier 611, the processing operation object identifier 612, the measurement information 613, and the error retry information 615 are essential in the variable-length list 443. In addition, the variable-length list 443 may have information other than these.

[0029] Since the variable-length list 433 in the command message 103 has the internal structure shown in Fig. 5, when a simulation is requested between simulator components, the contents of the simulation can be appropriately specified. Alternatively, since the variable-length list 443 in the notification message 104 has the internal structure shown in Fig. 6, after a simulation is requested between simulator components, when the results of the simulation (e.g., progress or results) are notified between the simulator components, the contents of the results of the simulation can be appropriately specified.

[0030] 1-3. Relationship between the design stage of an industrial system and the embodiment of the present disclosure FIG. 7 illustrates the relationship between the design stage of an industrial system 105 and an embodiment of the present disclosure. When designing the industrial system 105, if simulations of the industrial system 105 are performed at both the upstream stage 701 and downstream stage 702 of the design, and the design of the industrial system 105 is proceeded while verifying the results of the simulations, etc., the design may be as shown in Figure 7. First, in an upstream design stage 701, a person who designs an industrial system 105 simulates the industrial system 105 using a simulator component (A) 101. To enable the simulation, a task is performed to construct a model of the industrial system 105 for the simulator component (A) 101. Note that if the level of detail (LoD) or accuracy of the simulation in the upstream design stage 701 can be coarse (low), the level of detail (LoD) or accuracy realized by the simulator component (A) 101 can also be coarse (low). Next, in the downstream design stage 702, a designer of the industrial system 105 uses both the simulator component (A) 101 and the simulator component (B) 102 to simulate the industrial system 105. In order to be able to perform the simulation, a task of constructing a model of the industrial system 105 for the simulator component (B) 102 is performed. Here, it is assumed that the simulator component (B) 102 will simulate the industrial system 105 while using the simulator component (A) 101. (Alternatively, it may be said that the simulator component (A) 101 is assumed to simulate the industrial system 105 while using the simulator component (B) 102.) Therefore, when constructing a model of the industrial system 105 for the simulator component (B) 102, it is possible to avoid or reduce duplicated development of the model (the duplicated portion with the model of the industrial system 105 constructed for the simulator component (A) 101 can be reduced in the development of the model). It should be noted that if the level of detail (LoD) or accuracy of the simulation in the downstream design stage 702 is fine (high), the level of detail (LoD) or accuracy achieved by the simulator component (B) 102 will also be fine (high). When the design of the industrial system 105 moves from the upstream stage 701 to the downstream stage 702, the internal structure of the simulator component (A) 101 may be modified so that the simulator component (A) 101 becomes the simulator component (A) 101 in the embodiment of the present disclosure described thus far. The modification of the internal structure of the simulator component (A) 101 may include, for example, a new addition of the command message generation module 214 and a modification of the state information (A) update module 213.

[0031] FIG. 7 explains the relationship between the design stage of the industrial system 105 and an embodiment of the present disclosure, but a method similar to that shown in FIG. 7 may be used when sequentially performing simulations for various applications in the design and analysis of the industrial system 105. For example, first, in order to simulate a first application, the simulator component (A) 101 in the upper half of FIG. 7 may be implemented, and a model of the industrial system 105 for the simulator component (A) 101 may be constructed. 7 may be implemented and a model of the industrial system 105 may be constructed for the simulator component (B) 102. The simulation of the second application may be realized by using both the simulator component (A) 101 and the simulator component (B) 102.

[0032] The industrial simulation system 100 in the present disclosure has the above-mentioned functional configuration, and therefore can provide the effects shown in the above-mentioned [Effects of the Invention]. In addition, the command message 103 and the notification message 104 in the present disclosure have the above-mentioned data structure, and therefore can provide the effects shown in the above-mentioned [Effects of the Invention].

[0033] 2. Computer architecture for implementing embodiments of the present disclosure FIG. 8 illustrates a computer architecture for implementing an embodiment of the present disclosure. To realize the industrial simulation system 100 or the individual simulator components 101-102, an information processing device (e.g., a CPU or processor, which may be one or more microprocessors) 801, a storage device (e.g., a memory) 802, a non-volatile recording medium or recording device (e.g., a non-volatile memory (e.g., a flash memory), a non-volatile disk device) 803, an external recording medium drive (e.g., a disk drive) 804, an input device (e.g., a mouse, a keyboard, an imaging device, a sensor, a touch panel, a pointing device) 806, a display or output device (e.g., a display, a printer, a speaker) 807, a communication device (e.g., a communication device for wired communication, a communication device for wireless communication, which may be a network interface device (NIC) that controls communication with other systems, devices, or servers according to a predetermined protocol) 808, and some or all of an external input / output port 809 may be interconnected by an interconnection unit (e.g., a bus, a crossbar switch) 810. The non-volatile recording medium or recording device 803 may record one or more of a program 820a (e.g., a program for realizing the functional configuration according to the present disclosure, or an industrial simulation program, a simulator component program), various databases 821 (databases are abbreviated as "DB" in the drawings), and various information 822. Instead of recording information such as the above-mentioned 820a, 821, or 822 in the non-volatile recording medium or recording device 803, the industrial simulation system 100 or the individual simulator components 101 and 102 may acquire (access) a part or all of the information such as the above-mentioned 820a, 821, or 822 from outside the system shown in FIG. 8. The external recording medium drive 804 can connect to an external recording medium (for example, a portable recording disk (DVD, etc.), an IC card, an SD card, a non-volatile memory (for example, a flash memory), a portable hard disk) 805. Note that a part or all of the information as shown in 820a, 821, or 822 above may be transferred and stored from this external recording medium 805 to a non-volatile recording medium or recording device 803 or the storage device 802. The external recording medium 805 may be used to record programs and data handled in the industrial simulation system 100 or the individual simulator components 101 and 102. The external recording medium drive 804 and the external recording medium 805 may be connected to the industrial simulation system 100 or the individual simulator components 101 and 102 via a network. Some or all of the information such as that shown in 820a, 821 or 822 above may be provided via the input device 806, the communication device 808 or the external input / output port 809 and recorded or stored in a non-volatile recording medium or recording device 803 or the memory device 802. In order for the architecture of FIG. 8 to function as the industrial simulation system 100 or the individual simulator components 101 and 102, or each unit (module that is a functional unit) or part of each unit in these systems or components (to execute one or a series of processes (steps)), a part or all of the above 820a, 821, or 822 (for example, program 820a) may be loaded into the storage device 802 (for example, from a non-volatile recording medium or recording device 803). The loaded program is indicated by 820b in FIG. 8. Then, the information processing device 801 may execute the program 820b (using various information present in the non-volatile recording medium or recording device 803, etc., as necessary). By executing the program 820b, the function of the industrial simulation system 100 or the individual simulator components 101 and 102, or each unit (module that is a functional unit) or part of each unit in these systems or components is realized (one or a series of processes (steps) is executed). At this time, various buffers 823 temporarily formed in the storage device 802 may also be used as appropriate.

[0034] 3. Application Examples of the Embodiments of the Present Disclosure In the following, (particularly in Figs. 10 to 18) a case will be described where the industrial system 105 to be simulated is a certain type of logistics system. Note that, although a certain type of logistics system and a mode of simulation for the logistics system will be described below, the logistics system may have different features from those described below.

[0035] 3.1 Application of the embodiment of the present disclosure to an industrial system performing multiple processes 9 shows a typical example of an industrial system 105 (e.g., a logistics system 901 or a production system 902) and the state information (A) 111 and the state information (B) 121 in an industrial simulation system 100 for simulating the industrial system 105. The industrial system 105 to be simulated may include the logistics system 901 or the production system 902, and conversely, the logistics system 901 or the production system 902 may include the industrial system 105 to be simulated.

[0036] 9 shows an industrial system 105 that is the target of the simulation. The industrial system 105 may be, for example, a logistics system 901 or a production system 902. The industrial system 105 (for example, a logistics system 901 or a production system 902) may execute a plurality of operations 961-969. In the case of the logistics system 901, an item is transported to a desired location at a desired timing through one or more operations. In the case of the production system 902, an action is performed on an item or material through one or more operations to obtain a material having a desired form (for example, a finished product). Each of the tasks 961 to 969 may be classified into one of the task groups operationally managed in the industrial system 105. Each of such groups may correspond to each of the process (X) 951, the process (Y) 952, and the process (Z) 953. In other words, each of the process (X) 951, the process (Y) 952, and the process (Z) 953 may consist of one or more tasks included in the corresponding group. The industrial system 105 (for example, the logistics system 901 or the production system 902) may include robots or material handling devices 971-976 for performing either a task or a process. Each of the robots or material handling devices 971-976 may be dedicated for a specific task or process, or may be used commonly for several tasks or processes. The material handling devices referred to here are work machines used at the site of logistics or production, and may be, for example, devices that handle goods, containers, and baskets at the site of logistics, and materials, work in progress, and finished products at the site of production. In the industrial system 105 (for example, the logistics system 901 or the production system 902), workers may be involved in the tasks or processes together with the robots or material handling devices 971-976 or instead of the robots or material handling devices 971-976.

[0037] The left half of Fig. 9 shows an industrial simulation system 100 that simulates an industrial system 105 (for example, a logistics system 901 or a production system 902). In particular, state information (A) 111 and state information (B) 121 are shown in the left half of Fig. 9, but functional configurations and the like other than these (i.e., the functional configurations and the like shown in Figs. 1 to 3) may be present in the industrial simulation system 100. The state information (A) 111 in the simulator component (A) 101 may include state information related to each of the processes executed by the industrial system 105. Similarly, the state information (B) 121 in the simulator component (B) 102 may include state information related to each of the processes executed by the industrial system 105. For example, if the industrial system 105 can execute each of a process (X) 951, a process (Y) 952, and a process (Z) 953, the state information (A) 111 may include process (X)-related state information (AX) 911 (for the process (X) 951), process (Y)-related state information (AY) 912 (for the process (Y) 952), and process (Z)-related state information (AZ) 913 (for the process (Z) 953). Similarly, the status information (B) 121 may have process (X)-related status information (BX) 921 (for process (X) 951), process (Y)-related status information (BY) 922 (for process (Y) 952), and process (Z)-related status information (BZ) 923 (for process (Z) 953). Note that the status information (A) 111 and the status information (B) 121 may also have information on the respective process configurations of the process (X) 951, the process (Y) 952, and the process (Z) 953 (for example, the contents of the work performed in the process). The command message 103 may instruct a simulation of a process executed by the industrial system 105 or a simulation of an operation included in the process. For example, the command message 103 may instruct a simulation of a process or an action by a robot, a material handling device, or an operator in the process or operation. The notification message 104 may indicate the results (e.g., intermediate progress or results) of a simulation executed by a simulator component (simulator component (B) 102 in FIG. 9) that is the issuer of the notification message 104. For example, the notification message 104 may indicate the results (e.g., intermediate progress or results) of a simulation of processing or actions by a robot, material handling equipment, or worker in a process or task.

[0038] An industrial simulation system 100 as shown in FIG. 9 can appropriately simulate a process or work executed by an industrial system 105 (for example, a logistics system 901 or a production system 902). 9, command messages 103 and notification messages 104 are used in common by multiple simulator components to control robots, material handling devices, or workers in a process or task in a simulation, or to notify the status of the robots, material handling devices, or workers in a simulation. This is expected to reduce the difficulty of implementing management of status information related to a process or task, or control of a process or task, in multiple simulator components.

[0039] 3-2. Application of the embodiment of the present disclosure to a logistics system that executes warehousing, stowage, and transportation Fig. 10 shows the configuration of a logistics system 901 in the case where the industrial system 105 to be simulated is a logistics system 901 that has a warehouse 1021, a stowage work area 1022, and a temporary storage area for loaded carts 1023, and executes a shipping process 1011, a stowage process 1012, and a transport process 1013. Fig. 10 also shows a group of simulator components that constitute an industrial simulation system 100 that simulates such a logistics system 901.

[0040] 3.2.1. Physical distribution system for executing shipping, stowing and transportation A logistics system 901 shown in FIG. 10 transports items stored in a warehouse 1021 to a system that performs a downstream process. There may be multiple types of items managed by the logistics system 901. In FIG. 10, each type of item is shown as "item (s)" and "item (t)". ​​The system that performs the downstream process to which the items are transported may be, for example, a system having a production line that performs production activities using the items as materials. There may be multiple such production lines. The logistics system 901 may perform operations to deliver an appropriate type of item, in an appropriate number, at an appropriate timing (time, time zone) to the system that performs the downstream process.

[0041] 3-2-1-1. Warehouse 1021 10 stores one or more items (s) and one or more items (t). The types of items are not limited to two, and may be three or more. An item is held in a container. A container may hold one or more items. In FIG. 10, one or more items held in one container are of the same type. In FIG. 10, a container (s-11) 1051 holds three items (s) 1031-1033, and a container (t-11) 1061 holds two items (t) 1041-1042. However, this is not limited thereto, and different types of items may be mixed in one container. In order to increase the degree of automation in the management of goods in the warehouse 1021 and the management of the shipping process 1011 in which goods or containers are shipped from the warehouse 1021, information on the type and number of goods held in each container present in the logistics system 901, not just in the warehouse 1021, may be grasped as status information of the logistics system 901. The outgoing time required 1080 may also be managed as status information related to the warehouse 1021. For example, depending on the arrangement of containers in the warehouse 1021 and the arrangement of a robot or material handling equipment that executes the outgoing process 1011, the time required to transport a container from the warehouse 1021 to a predetermined container position in the loading work area 1022 may vary depending on the time (time zone) or for each individual container. The outgoing time required 1080 may be managed in the actual logistics system 901. Alternatively, although the outgoing time required 1080 is not managed in the actual logistics system 901, the industrial simulation system 100 that performs a simulation of the logistics system 901 may manage the outgoing time required 1080 as status information.

[0042] 3-2-1-2. Outgoing Process 1011 The outgoing process 1011 involves transporting a container (holding one or more items) stored in a warehouse 1021 to a desired container location in a stowage area 1022. The container transport may be a fully automated operation performed by a robot or material handling equipment, or may involve some human involvement in the container transport.

[0043] 3-2-1-3. Loading Work Area 1022 A container removed from the warehouse 1021 is placed at a desired container position in the stowage work site 1022. In Fig. 10, a container (s-21) 1052 (holding one or more items (s)), a container (t-21) 1052 (holding one or more items (t)), a container (t-22) 1053 (holding one or more items (t)), and a container (s-22) 1053 (holding one or more items (s)) are placed at container positions on a straight line. Note that the placement of containers in the stowage work site 1022 is not limited to being on a straight line. The logistics system 901 (and the industrial simulation system 100) may manage information regarding which containers are placed at which container positions in the loading work area 1022 as status information. In addition to containers, the loading work site 1022 also contains cage cars before the loading step 1012 is completed. The cage cars are intended for loading one or more containers or the like into a so-called packed state. In FIG. 10, "empty cage car (1) 1071" and "empty cage car (2) 1072" are shown, but the number of cage cars before the loading step 1012 is completed is not limited to two. Furthermore, as cage cars before the loading step 1012 is completed, there may be cage cars on which some containers have already been loaded but on which additional containers can still be loaded. Furthermore, the object on which one or more containers are loaded may be in a form other than a cage car as long as it is suitable for transport by the transport step 1013 described below.

[0044] 3-2-1-4. Loading process 1012 and temporary storage area for loaded carts 1023 The stowage process 1012 includes the work of loading one or more containers, etc., present at the container position in the loading work area 1022 onto a cage car to prepare a package (loaded cage car) suitable for transportation by the transportation process described below. The work of loading containers onto a cage car may be a fully automated work performed by a robot or material handling equipment. Alternatively, the work of loading containers onto a cage car may involve a worker in some way. The loaded cage car may be temporarily stored in the loaded cage car temporary storage area 1023 (until the transport step 1013 described below is performed). FIG. 10 shows, as an example, a loaded cage car (3) 1073 and a loaded cage car (4) 1074 temporarily stored in the loaded cage car temporary storage area 1023. A container (s-31) 1054 (holding one or more items (s)) and a container (s-32) 1055 (holding one or more items (s)) are loaded in the loaded cage car (3) 1073. A container (t-31) 1064 (holding one or more items (t)) and a container (s-33) 1056 (holding one or more items (s)) are loaded in the loaded cage car (4) 1074. Fig. 10 shows a stowage pattern in which two containers are stacked one on top of the other on each loaded cage car. However, the number of containers to be loaded on one cage car and the stowage pattern are not limited to those shown in Fig. 10. In particular, when the shape and size of each container differ, a wide variety of stowage patterns are possible. The loading work area 1022 and the temporary storage area for loaded carts 1023 do not need to be distinguished spatially. The logistics system 901 (and the industrial simulation system 100) may manage information as status information regarding which (one or more) containers (how many of what type of items are loaded) are loaded on which loaded cart.

[0045] 3.2.1.5.Transportation process 1013 The transport process 1013 includes the task of transporting the loaded carts temporarily stored in the loaded cart temporary storage area 1023 to a desired position (e.g., a production line) in the system where the subsequent process will be performed. The task of transporting the loaded carts may be the task of transporting one loaded cart individually, or the task of transporting multiple loaded carts together. The task of transporting the loaded carts may be a fully automated task performed by a robot or material handling equipment. Alternatively, the task may involve a worker in some way. For example, if the system performing the downstream process is a production system having multiple production lines, a set of loaded carts to be transported together may be determined in the transport process 1013 so that materials and parts for materials (e.g., finished products) manufactured in the production line that is the destination of the transport process 1013 are transported together. Also, for example, if the system performing the downstream process is a system including trucks for transporting to customers, a set of loaded carts to be transported together may be determined in the transport process 1013 so that goods (containers) to be transported to the same customer are transported together. In addition, the timing at which one or more loaded carts are transported by the transport process 1013 may be a push-type timing determined by a certain amount of goods, etc. being temporarily placed in the loaded cart temporary storage area 1023, or it may be a pull-type timing determined by the arrival of an order for goods from a customer or a request for goods from a system that performs subsequent processes.

[0046] 3.2.2 Simulation of Logistics System 901 10, an industrial simulation system 100 that simulates a logistics system 901 may include a discrete event numerical calculation simulator 1001 and a discrete event three-dimensional (3D) calculation simulator 1002 as a simulator component (A) 101 and a simulator component (B) 102. Here, "discrete" may mean something that can be individually separated and understood (e.g., an item, a container, a cart, a robot, a material handling device, a worker). Also, here, an "event" may mean an occurrence of something that corresponds to the above "discrete" (e.g., a container being transported from one place to another).

[0047] 3.2.2.1. Division of roles between numerical calculation simulator and three-dimensional (3D) calculation simulator The discrete event numerical calculation simulator 1001 and the discrete event three-dimensional (3D) calculation simulator 1002 are for simulating the same logistics system 901, but may have the following division of roles. The discrete event three-dimensional (3D) computational simulator 1002 may handle the time evolution of items, containers, carts, robots, material handling equipment, workers, and the like in a three-dimensional space when simulating the logistics system 901. Here, the simulation of the logistics system 901 performed by the discrete event three-dimensional (3D) computational simulator 1002 may include a physical simulation based on the laws of physics such as mechanics. The discrete event numerical calculation simulator 1001, when simulating the logistics system 901, manages tasks (task management) within the logistics system 901 (other than three-dimensional space simulation), manages the positions and states of containers, carts, robots, material handling equipment, and workers in a two-dimensional space in which the logistics system 901 is treated as a plane, manages the types and numbers of items held in each container present at each location in the logistics system 901, manages the types and numbers of containers (held by) loaded in each cart, manages the logistics system The system may perform the following operations: management of orders for goods from customers to 901; management of requests for goods from systems performing subsequent processes; selection of goods, containers, and basket cars that are the objects of the outgoing process 1011, the stowage process 1012, and the transport process 1013 (including matching of basket cars with containers, determination of stowage patterns, and determination of how to group multiple basket cars); selection of robots, material handling equipment, and workers that are to carry out the outgoing process 1011, the stowage process 1012, and the transport process 1013; and determination of the timing of execution of the outgoing process 1011, the stowage process 1012, and the transport process 1013. With the above division of roles, a three-dimensional (D) simulation and a numerical calculation simulation for the same industrial system 105 can be executed in a coordinated manner.

[0048] For example, when task management in the logistics system 901 is examined first, the discrete event numerical calculation simulator 1001 may be implemented first. After that, in order to examine behavior in a three-dimensional space, the discrete event three-dimensional (3D) calculation simulator 1002 may be implemented. In many cases, the number of steps required to implement the discrete event three-dimensional (3D) calculation simulator 1002 is greater than the number of steps required to implement the discrete event numerical calculation simulator 1001. Therefore, by assuming that the discrete event three-dimensional (3D) computational simulator 1002 utilizes the status information (including status information related to each process) managed by the previously implemented discrete event numerical computation simulator 1001, a model previously constructed for the logistics system 901, and the function of executing a simulation possessed by the discrete event numerical computation simulator 1001, it is expected that the man-hours required for implementing the discrete event three-dimensional (3D) computational simulator 1002 and the man-hours required for constructing a model of the logistics system 901 for the discrete event three-dimensional (3D) computational simulator 1002 can be reduced. Conversely, in cases where a visual image of the site of the logistics system 901 is grasped in advance, such as when the layout of the site of the logistics system 901 is examined, the discrete event three-dimensional (3D) calculation simulator 1002 may be implemented in advance. After that, in order to conduct an examination taking into consideration matters that are difficult to include in the visual image of the site of the logistics system 901 (for example, management of work and processes (task management), and the types and numbers of items held by each container), the discrete event numerical calculation simulator 1001 may be implemented. Alternatively, the discrete event numerical computation simulator 1001 and the discrete event three-dimensional (3D) computation simulator 1002 may be implemented in parallel at the same time. The modules included in the discrete event numerical calculation simulator 1001 and the discrete event three-dimensional (3D) calculation simulator 1002, the process flow (inter-component cooperation sequence) to be realized, and the process steps to be executed have already been described with reference to Figures 1 and 2. Below, individual specific aspects associated with the industrial system 105 to be simulated being the logistics system 901 shown in Figure 10 will be mainly described.

[0049] 3.2.2.2. Simulation of Outgoing Process 1011 When the discrete event numerical calculation simulator 1001 and the discrete event three-dimensional (3D) calculation simulator 1002 simulate a series of operations when the logistics system 901 executes the shipping process 1011, for example, the following may be performed. First, the command message generation module 214 in the discrete event numerical calculation simulator 1001 (simulator component (A) 101) may generate a command message 103 for instructing a simulation of the outbound process 1011. The command message generation module 214 may generate the command message 103 based on the state information (A) 111 managed by the state information (A) holding module 211. Alternatively, the command message generation module 214 may generate the command message 103 according to information required in the simulation performed by the simulation (A) module 212 (for example, information indicating the result (intermediate progress or result) of the simulation in a three-dimensional space). Here, the command message 103 may be generated to request a three-dimensional simulation with a level of detail (LoD), accuracy, and use different from the simulation performed by the discrete event numerical calculation simulator 1001 (simulator component (A) 101).

[0050] Fig. 11 shows an example of a command message 103 for instructing a simulation of the outbound process 1011. As described in Fig. 4, the command message 103 may include an identifier 431 of a simulator component that is the destination of the command message 103, a command identifier 432, and a variable-length list 433. Although not shown, the command message 103 may also include an identifier of a simulator component that is the issuer of the command message 103 (in the case of Fig. 10, the identifier of the discrete event numerical calculation simulator 1001 (simulator component (A) 101)). The identifier 431 of the simulator component that is the destination of the command message 103 may be an identifier indicating the discrete event three-dimensional (3D) computational simulator 1002 (simulator component (B) 102) in the case of FIG. The command identifier 432 may be an identifier 1132 that instructs the execution of a simulation (B) of the outbound process 1011 in a three-dimensional (3D) space. The variable-length list 433 may include a sending subject identifier 1101 (corresponding to the processing operation subject identifier 511), a sending object identifier 1102 (corresponding to the processing operation object identifier 512), and a sending timing 1104 (corresponding to the processing operation timing 514). The sending subject identifier 1101 indicates the subject of the work included in the sending process 1011 (the sending robot (X-1) in FIG. 11). The sending object identifier 1102 indicates the object of the work included in the sending process 1011 (the container (s-11), container (t-11), and container (s-12) in FIG. 11). The sending timing 1104 indicates the time or information on the time when the work included in the sending process 1011 is performed in the time-space in the simulation (the time information on the start of the work in FIG. 11). 11, the variable-length list 433 includes information on the work performed by one retrieval robot, but is not limited to this. The variable-length list 433 may include information on the work performed by multiple retrieval robots. In that case, the variable-length list 433 may include multiple combinations of the retrieval entity identifier 1101, the retrieval object identifier 1102, and the retrieval timing 1104.

[0051] The simulation (B) module 222 in the discrete event three-dimensional (3D) calculation simulator 1002 (simulator component (B) 102) that has received the command message 103 may perform a simulation (B) in a three-dimensional space of the contents instructed by the command message 103. Here, since the identifier 432 of the command in the command message 103 is the identifier 1132 instructing the execution of a simulation (B) in a three-dimensional (3D) space of the shipping process 1011, a simulation of the shipping process 1011 in the three-dimensional space of the logistics system 901 is performed. When executing the simulation (B) in the three-dimensional space of the logistics system 901, the simulation (B) module 222 may refer to the state information (B) 121 managed by the state information (B) holding module 221 in addition to the contents of the instruction by the command message 103. 11, a three-dimensional (3D) simulation may be executed in which the outgoing robot (X-1), which is the subject of the outgoing process 1011, performs the task of outgoing the container (s-11), the container (t-11) or the container (s-12), which is the object of the outgoing process 1011, at the time or time period specified in the outgoing timing 1104, as specified by the variable-length list 433 in the command message 103. Also, the referenced state information (B) 121 may be information such as the coordinates of the container, the outgoing robot, etc. in three-dimensional space (which may also include information on the orientation of the container, the outgoing robot, etc., and information on the shape, size and weight of the container). The status information (B) update module 223 may update the status information (B) 121 managed by the status information (B) holding module 221 to reflect the results (progress or results) of the simulation (B) in the three-dimensional space. For example, the status information (B) 121 may be updated to reflect information such as the coordinates in the three-dimensional space of one or more containers unloaded by the unloading process 1011 (which may also include information on the orientation of the container and information on the shape, size, and weight of the container) after the three-dimensional (3D) simulation instructed by the command message 103 is executed. The notification message generation module 227 may generate a notification message 104 for notifying the discrete event numerical calculation simulator 1001 (simulator component (A) 101) of the results (intermediate progress or results) of the simulation (B) in three-dimensional space and some or all of the updated state information (B) 121.

[0052] Fig. 12 shows an example of a notification message 104 for notifying the result of a simulation of the outgoing process 1011, etc. As described in Fig. 4, the notification message 104 may include an identifier 441 of a simulator component that is the destination of the notification message 104, an event identifier 442, and a variable-length list 443. Although not shown, the notification message 104 may also include an identifier of a simulator component that is the issuer of the notification message 104 (in the case of Fig. 10, the identifier of the discrete event three-dimensional (3D) calculation simulator 1002 (the identifier of the simulator component (A) 102)). The identifier 441 of the simulator component that is the destination of the notification message 104 may be an identifier indicating the discrete event numerical calculation simulator 1001 (simulator component (A) 101) in the case of FIG. The event identifier 442 may be the identifier 1242 that notifies the completion of the simulation (B) of the shipping process 1011 in a three-dimensional (3D) space, or the like. The variable-length list 443 may include a shipping entity identifier 1201 (corresponding to the processing operation entity identifier 611), a shipping object identifier 1202 (corresponding to the processing operation object identifier 612), a shipping start time 1203 / shipping end time 1204 (corresponding to the measurement information 613), and error retry information 1205 (corresponding to the error retry information 615). The outgoing entity identifier 1201 indicates the entity of the work included in the outgoing process 1011 (in FIG. 12, outgoing robot (X-1)). The outgoing object identifier 1202 indicates the object of the work included in the outgoing process 1011 (in FIG. 11, container (s-11), container (t-11), container (s-12)). The outgoing object identifier 1202 may indicate the container position (within the stowage work area 1022) where the work object is placed by the outgoing process 1011 (FIG. 11 indicates that container (s-11) is placed at container position 1, container (t-11) is placed at container position 2, and container (s-12) is placed at container position 3). The outgoing start time 1203 and the outgoing end time 1204 indicate the start time and end time of the outgoing process 1011 in the time space in the simulation, measured by a simulation in a three-dimensional space. The notification message 104 may include information on the time required for the outgoing process 1011, measured by a simulation in a three-dimensional space, instead of the outgoing start time 1203 and the outgoing end time 1204. The discrete event numerical calculation simulator 1001 may also estimate the time required for the outgoing process 1011, but the discrete event three-dimensional (3D) calculation simulator 1002 may more accurately estimate the time required for the outgoing process 1011 by searching for a route (such as the movement of a container) in the work included in the outgoing process 1011. This point is the same in the simulation of the stowing process 1012 and the transportation process 1013 described later. The error retry information 1205 indicates whether or not an error occurred in the shipping process 1011 when a simulation of the logistics system 901 was performed in a three-dimensional space, and (if an error occurred) whether or not a retry of the work included in the shipping process 1011 was performed (or whether or not the retry was successful). 12, the variable-length list 443 includes information on the results (progress or results) of the work performed by one retrieval robot, but is not limited to this. The variable-length list 443 may include information on work performed by multiple retrieval robots. In that case, the variable-length list 443 may include multiple combinations of a retrieval entity identifier 1201, a retrieval object identifier 1202, a retrieval start time 1203, a retrieval end time 1204, and error retry information 1205.

[0053] The state information (A) update module 213 in the discrete event numerical calculation simulator 1001 (simulator component (A) 101) that has received the notification message 104 may update the state information (A) 111 managed by the state information (A) holding module 211 based on the contents of the notification message 104. Here, the state information (A) 111 may be updated so as to be consistent with the results (intermediate progress or results) of the simulation of the shipping process 1011 in the three-dimensional space of the logistics system 901 by the discrete event three-dimensional (3D) calculation simulator 1002.

[0054] In this way, the state information (A) 111 for the simulation performed by the discrete event numerical calculation simulator 1001 can be appropriately updated based on the results (intermediate progress or result) of the three-dimensional (3D) simulation, which has a different level of detail (LoD), accuracy, and purpose from the simulation performed by the discrete event numerical calculation simulator 1001 (simulator component (A) 101) and the updated state information (B) 121 regarding the three-dimensional (3D) simulation. Since the state information (A) 111 is appropriately updated and maintained (specifically, so as to be consistent with the results (intermediate progress or result) of the simulation of the shipping process 1011 in the three-dimensional space of the logistics system 901), the discrete event numerical calculation simulator 1001 can continue to appropriately execute the simulation of the logistics system 901, and the command message generation module 214 can continue to generate the appropriate command message 103 as the contents of the instruction for the three-dimensional (3D) simulation. Furthermore, by communicating between simulator components by transmitting and receiving various messages between the simulator components each having state information, the discrete event three-dimensional (3D) calculation simulator 1002 does not need a function (module) for determining which of the containers in the warehouse 1021 should be the object of the outgoing process 1011, and does not need to hold information on the type and number of items held in each container in the state information (B) 121. On the other hand, the discrete event numerical calculation simulator 1001 does not need a function (module) for performing a three-dimensional (3D) simulation of the outgoing process 1011, and does not need to hold information on the orientation, size, shape, weight, etc. of each container in three-dimensional space in the state information (A) 111. In other words, when the discrete event numerical calculation simulator 1001 and the discrete event three-dimensional (3D) calculation simulator 1002 are implemented in succession, the man-hours required for developing the later simulator and the man-hours required for constructing a model of the logistics system 901 can be kept low when implementing the later simulator (compared to the case where it is assumed that the later simulator will be operated alone). By communicating between simulator components by sending and receiving various messages between the simulator components, each of which has its own status information, waste due to duplication of modules (functions) and status information can be reduced, and therefore, in the industrial simulation system 100, it is possible to expect improved processing power (processing speed) and a reduction in the required data capacity of memory devices or recording devices.

[0055] 3.2.2.3. Simulation of loading process 1012 When the discrete event numerical calculation simulator 1001 and the discrete event three-dimensional (3D) calculation simulator 1002 simulate a series of operations when the logistics system 901 executes the stowage process 1012, for example, the following may be performed. First, the command message generation module 214 in the discrete event numerical calculation simulator 1001 (simulator component (A) 101) may generate a command message 103 for instructing a simulation of the stowage process 1012. Except for differences resulting from the fact that the target to be handled is the stowage process 1012 rather than the outbound process 1011 (for example, differences in processing and operation resulting from differences in the type of information used as the status information (A) 111), the command message generation module 214 may generate the command message 103 in a manner similar to that used for the simulation of the outbound process 1011. In addition, when the discrete event numerical calculation simulator 1001 (simulator component (A) 101) determines which container (group) is to be stowed on which cage car and in what stowage pattern, it may also take into consideration the time expected to be required for stowage.

[0056] Figure 13 shows a first example of the command message 103 for instructing a simulation of the stowage process 1012. The command message 103 shown in Figure 11 and the command message 103 shown in Figure 13 have roughly the same data structure. The following will mainly explain the differences between Figure 11 and Figure 13. The command identifier 432 shown in FIG. 13 may be an identifier 1332 that instructs execution of a simulation (B) of the stowage process 1012 in a three-dimensional (3D) space. The variable-length list 433 may include a loading subject identifier 1301 (corresponding to the processing operation subject identifier 511), a loading object identifier 1302 (corresponding to the processing operation object identifier 512), a loading pattern 1303 (corresponding to the processing operation setting 513), and a loading timing 1304 (corresponding to the processing operation timing 514). The loading subject identifier 1301, the loading object identifier 1302, and the loading timing 1304 have the same meanings as the outgoing subject identifier 1101, the outgoing object identifier 1102, and the outgoing timing 1104, except that the process associated with the subject / object / timing is the outgoing process 1012, not the outgoing process 1011. Note that, although only the identifiers of the containers are shown in the loading object identifier 1302 in FIG. 13, the loading object identifier 1302 may further include the identifiers of the cage cars to which these containers are loaded. The stowage pattern 1303 indicates the manner in which one or more containers identified by the stowage object identifier 1302 are loaded onto a cage car. A plurality of patterns may be determined in advance for how to fill the three-dimensional space for storing containers in one cage car with one or more containers (how to arrange one or more containers in the three-dimensional space for storing containers in one cage car). The identifier of the pattern may be set as the stowage pattern 1303. 11, the command message 103 in FIG. 13 may also include a plurality of combinations of a loading entity identifier 1301, a loading object identifier 1302, a loading pattern 1303, and a loading timing 1304.

[0057] Figure 14 shows a second example of the command message 103 for instructing a simulation of the stowage process 1012. The difference between the first example shown in Figure 13 and the second example shown in Figure 14 will be explained below. The command message 103 shown in FIG. 14 may have information on the number of stowage objects 1402 instead of the stowage object identifier 1302. The number of stowage objects 1402 indicates the number of containers to be stowed, which are objects for executing the stowage process 1012 in a simulation executed based on the command message 103. When the discrete event three-dimensional (3D) calculation simulator 1002 executes a simulation in a three-dimensional space based on the command message 103, the number of containers indicated by the number of stowage objects 1402 may be appropriately selected. For example, the containers may be selected in order of proximity to a position set as the origin of the container positions in the stowage work area 1022 (or in order from the top of the container positions). In this way, the parameters to be included in the variable-length list 433 can be flexibly determined.

[0058] The simulation (B) module 222, the status information (B) update module 223, and the notification message generation module 227 in the discrete event three-dimensional (3D) calculation simulator 1002 (simulator component (B) 102) that received the command message 103 may perform a simulation (B) in a three-dimensional space of the contents instructed by the command message 103, update the status information (B) 121, and generate the notification message 104. Except for the difference resulting from the fact that the target to be handled is the stowage process 1012 rather than the outbound process 1011 (for example, the difference in processing and operation resulting from the difference in the type of information used as the status information (B) 121), the above-mentioned three modules 222, 223, and 227 may perform processing in the same manner as that used for the outbound process 1011.

[0059] Figure 15 shows an example of a notification message 104 for notifying the results of a simulation of the stowage process 1012, etc. The notification message 104 shown in Figure 12 and the notification message 104 shown in Figure 15 have roughly the same data structure. The following will mainly explain the differences between Figure 12 and Figure 15. The event identifier 442 may be an identifier 1542 that notifies the completion of a simulation (B) of the stowage process 1012 in a three-dimensional (3D) space, or the like. The variable length list 443 may include a loading subject identifier 1501 (corresponding to the processing operation subject identifier 611), a loading object identifier 1502 (corresponding to the processing operation object identifier 612), a loading start time 1503 / loading end time 1504 (corresponding to the measurement information 613), and error retry information 1505 (corresponding to the error retry information 615). The loading subject identifier 1501, the loading object identifier 1502, the loading start time 1503, the loading end time 1504, and the error retry information 1505 have the same meanings as the shipping subject identifier 1201, the shipping object identifier 1202, the shipping start time 1203, the shipping end time 1204, and the error retry information 1205, except that the process associated with the subject / object / measurement information / error retry is the loading process 1012 instead of the shipping process 1011. However, the stowage object identifier 1502 may include the identifier of a cage car onto which a container, which is an object of the stowage process 1012, is stowed. Also, the error retry information 1505 for the stowage process 1012 may include, for example, error information indicating that the stowage robot was unable to recognize the container to be stowed, error information indicating that some kind of failure occurred in the work of the stowage robot stowage of the container in a simulation in three-dimensional space, retry information indicating whether or not a retry of the stowage process 1012 was performed in response to these errors, and information indicating the success or failure of the retry. The notification message 104 may include, instead of the loading start time 1503 and the loading end time 1504, information on the time required for the loading process 1012 measured by a simulation in a three-dimensional space. 12, the notification message 104 in FIG. 15 may include multiple combinations of a loading entity identifier 1501, a loading object identifier 1502, a loading start time 1503, a loading end time 1504, and error retry information 1505.

[0060] The state information (A) update module 213 in the discrete event numerical calculation simulator 1001 (simulator component (A) 101) that has received the notification message 104 may update the state information (A) 111 managed by the state information (A) retention module 211 based on the contents of the notification message 104. Except for the difference resulting from the fact that the target to be handled is the stowage process 1012 rather than the outbound process 1011 (for example, the difference in processing and operation resulting from the difference in the type of information used as the state information (A) 111), the state information (A) update module 213 may perform processing in the same manner as the method used for the outbound process 1011.

[0061] 3.2.2.4. Simulation of the transport process 1013 When the discrete event numerical calculation simulator 1001 and the discrete event three-dimensional (3D) calculation simulator 1002 simulate a series of operations when the logistics system 901 executes the transportation process 1013, for example, the following may be performed. First, the command message generation module 214 in the discrete event numerical calculation simulator 1001 (simulator component (A) 101) may generate a command message 103 for instructing a simulation of the transport process 1013. Except for differences resulting from the fact that the target to be handled is the transport process 1013 rather than the outbound process 1011 (for example, differences in processing and operation resulting from differences in the type of information used as the status information (A) 111), the command message generation module 214 may generate the command message 103 in the same manner as the method used for the outbound process 1011.

[0062] Fig. 16 shows a first example of the command message 103 for instructing a simulation of the transport process 1013. The command message 103 shown in Fig. 11 and the command message 103 shown in Fig. 16 have roughly the same data structure. The following will mainly explain the differences between Fig. 11 and Fig. 16. The command identifier 432 shown in FIG. 16 may be an identifier 1632 that instructs execution of a simulation (B) of the transport process 1013 in a three-dimensional (3D) space. The variable-length list 433 may include a transport subject identifier 1601 (corresponding to the processing operation subject identifier 511), a transport object identifier 1602 (corresponding to the processing operation object identifier 512), a transport destination identifier 1603 (corresponding to the processing operation setting 513), and a transport timing 1604 (corresponding to the processing operation timing 514). The transport subject identifier 1601, the transport object identifier 1602, and the transport timing 1604 have the same meanings as the outgoing subject identifier 1101, the outgoing object identifier 1102, and the outgoing timing 1104, except that the process associated with the subject-object-timing is the outgoing process 1103, not the outgoing process 1011. However, the transport object identifier 1602 may identify one or more carts. The destination identifier 1603 may identify a destination to which one or more carts identified by the transport object identifier 1602 are to be transported. For example, if there are multiple production lines as possible destinations for the basket cart to be transported from the logistics system 901, the destination identifier 1603 may identify the destination production line. Alternatively, the destination may be some area instead of a production line. Note that, although an example in which the subject of the transport process 1103 is a transporter is shown in FIG. 16, the subject of the transport process 1103 is not limited to this. For example, the subject of the transport process 1103 may be a robot or material handling equipment. 11, the command message 103 in FIG. 16 may also include a plurality of combinations of a transport entity identifier 1601, a transport object identifier 1602, a transport destination identifier 1603, and a transport timing 1604.

[0063] Fig. 17 shows a second example of the command message 103 for instructing a simulation of the transport process 1013. The difference between the first example shown in Fig. 16 and the second example shown in Fig. 17 will be described below. The command message 103 shown in FIG. 17 may have information on the number of transport objects 1702 instead of the transport object identifier 1602. The number of transport objects 1702 indicates the number of loaded carts to be transported together, which are objects for which the transport process 1013 is executed in a simulation executed based on the command message 103. When the discrete event three-dimensional (3D) calculation simulator 1002 executes a simulation in a three-dimensional space based on the command message 103, the number of loaded carts indicated by the number of transport objects 1702 may be appropriately selected. For example, the loaded carts may be selected in order of proximity to a position set as the origin of the cart positions in the temporary storage area 1023 for loaded carts. In this way, the parameters to be included in the variable-length list 433 can be flexibly determined.

[0064] The simulation (B) module 222, the state information (B) update module 223, and the notification message generation module 227 in the discrete event three-dimensional (3D) computational simulator 1002 (simulator component (B) 102) that received the command message 103 may perform a simulation (B) in a three-dimensional space of the contents instructed by the command message 103, update the state information (B) 121, and generate the notification message 104. Except for the difference resulting from the fact that the target to be handled is the transport process 1013 rather than the outgoing process 1011 (for example, the difference in processing and operation resulting from the difference in the type of information used as the state information (B) 121), the above-mentioned three modules 222, 223, and 227 may perform processing in the same manner as that used for the outgoing process 1011.

[0065] Fig. 18 shows an example of a notification message 104 for notifying the result of a simulation of the transportation process 1013, etc. The notification message 104 shown in Fig. 12 and the notification message 104 shown in Fig. 18 have roughly the same data structure. The following will mainly explain the differences between Fig. 12 and Fig. 18. The event identifier 442 may be an identifier 1842 that notifies the completion of a simulation (B) of the transport process 1013 in a three-dimensional (3D) space, or the like. The variable length list 443 may include a transport subject identifier 1801 (corresponding to the processing operation subject identifier 611), a transport object identifier 1802 (corresponding to the processing operation object identifier 612), a transport start time 1803 / transport end time 1804 (corresponding to the measurement information 613), and error retry information 1805 (corresponding to the error retry information 615). The transport subject identifier 1801, the transport object identifier 1802, the transport start time 1803, the transport end time 1804, and the error retry information 1805 have the same meanings as the delivery subject identifier 1201, the delivery object identifier 1202, the delivery start time 1203, the delivery end time 1204, and the error retry information 1205, except that the process associated with the subject / object / measurement information / error retry is the delivery process 1103, not the delivery process 1011. However, the transport entity identifier 1801 may include an identifier of the transporter (or an identifier of a robot or material handling equipment). The transport object identifier 1802 may also include an identifier of the destination of the transported loaded cart (e.g., an identifier of a production line). The notification message 104 may include information on the time required for the transport process 1103, measured by a simulation in a three-dimensional space, instead of the transport start time 1803 and the transport end time 1804. 12, the notification message 104 in FIG. 18 may include multiple combinations of a transport entity identifier 1801, a transport object identifier 1802, a transport start time 1803, a transport end time 1804, and error retry information 1805.

[0066] The state information (A) update module 213 in the discrete event numerical calculation simulator 1001 (simulator component (A) 101) that has received the notification message 104 may update the state information (A) 111 managed by the state information (A) holding module 211 based on the contents of the notification message 104. Except for the difference resulting from the fact that the target to be handled is the transport process 1013 rather than the shipping process 1011 (for example, the difference in processing and operation resulting from the difference in the type of information used as the state information (A) 111), the state information (A) update module 213 may perform processing in the same manner as the method used for the shipping process 1011.

[0067] 4.Other (variations) The present disclosure is not limited to the above-described embodiment, but includes various modifications. A part of the configuration or processing of the embodiment may be replaced with the configuration or processing of another conceivable embodiment. The configuration or processing of the embodiment may be added to the configuration or processing of another conceivable embodiment. For example, the present disclosure may have the following modified embodiments.

[0068] (1) An example where multiple simulator components are included in the same simulator 10 is an example in which each of the simulator component (A) 101 and the simulator component (B) 102 is a simulator. That is, in the embodiment shown in FIG 10, different simulators communicate with each other in the industrial simulation system 100. However, as shown in Fig. 19, the simulator component (A) 101 and the simulator component (B) 102 may be multiple simulator components in the same simulator. Fig. 19 shows that the industrial simulation system 100 includes a simulator 1900, and the simulator 1900 includes a discrete event numerical calculation simulator component 1901 and a discrete event three-dimensional (3D) calculation simulator component 1902. For example, the discrete event numerical calculation simulator component 1901 may play the role of the above-mentioned simulator component (A) 101, and the discrete event three-dimensional (3D) calculation simulator component 1902 may play the role of the above-mentioned simulator component (B) 102. It should be noted that combinations of types of simulator components other than those shown in Fig. 19 are also possible. Although the simulator component (A) 101 and the simulator component (B) 102 are common in that they cooperate with each other to simulate an industrial system 105, the embodiment shown in Fig. 10 and the modified example shown in Fig. 19 differ in the degree of mutual independence in the implementation of the components between the simulator component (A) 101 and the simulator component (B) 102. A person who implements the industrial simulation system 100 can select a desired mode from a wide range of options regarding the implementation of the simulator component (A) 101 and the simulator component (B) 102.

[0069] (2) Calling relationships between simulator components In the above description of the embodiment shown in Fig. 10, first, a request 2001 for simulation is made from the discrete event numerical calculation simulator 1001 to the discrete event three-dimensional (3D) calculation simulator 1002 by a command message 103, as shown in Fig. 20. Next, a notification 2002 of the results (e.g., progress or result) of the simulation (performed by the discrete event three-dimensional (3D) calculation simulator 1002) is made from the discrete event three-dimensional (3D) calculation simulator 1002 to the discrete event numerical calculation simulator 1001 by a notification message 104. In other words, the relationship was such that the discrete event numerical calculation simulator 1001 was the calling side, and the discrete event three-dimensional (3D) calculation simulator 1002 was the called side. However, in order for the simulator component (A) 101 and the simulator component (B) 102 to cooperate with each other to simulate the industrial system 105, the calling relationship between the simulator components may be arbitrary. Fig. 21 shows an example of a calling relationship between simulator components opposite to that in Fig. 20. As shown in Fig. 21, the relationship may be such that the discrete event three-dimensional (3D) calculation simulator 1002 is the calling side and the discrete event numerical calculation simulator 1001 is the called side. Accordingly, the contents of the command message 103 for a simulation request 2101 and the contents of the notification message 104 for notification 2102 of the results (e.g., progress or results) of the simulation (performed by the discrete event numerical calculation simulator 1001) may differ in some points from the contents of the command message 103 and the notification message 104 in Fig. 20. To realize the embodiment of Fig. 21, the discrete event numerical calculation simulator 1001 may include various modules included in the simulator component (B) 102 in Fig. 2, and the discrete event three-dimensional (3D) calculation simulator 1002 may include various modules included in the simulator component (A) 101 in Fig. 2. Alternatively, to realize the embodiment of Fig. 21, both the discrete event numerical calculation simulator 1001 and the discrete event three-dimensional (3D) calculation simulator 1002 may include various modules included in the simulator components shown in Fig. 3. Note that, although Figures 20 and 21 show a combination of a discrete event numerical calculation simulator 1001 and a discrete event three-dimensional (3D) calculation simulator 1002, the calling relationship between the simulator components shown in Figures 20 and 21 can be similarly realized in a combination of any type of simulator (or simulator component). As described above, a person who implements or uses the industrial simulation system 100 can appropriately determine the calling relationships between simulator components when simulating the industrial system 105. Therefore, when simulating the industrial system 105, the process flow and the like can be flexibly determined.

[0070] (3) Relationship between orders and various messages in the logistics system 9 and 10, the industrial simulation system 100 simulates a logistics system 901 (one example of an industrial system 105). The simulation of the logistics system 901 proceeds while transmitting and receiving command messages 103 and notification messages 104 between emulator components in the industrial simulation system 100. 22 conceptually shows, the content of the work included in any of the processes (e.g., process (X), process (Y), process (Z), etc., or a warehousing process, a stowing process, a transportation process, etc.) indicated by the command message 103 or the notification message 104 may reflect an order to the logistics system 901. An order to the logistics system 901 may be, for example, an order 2211 for an item from a customer 2201, or a request 2221 for an item from a system 2202 that performs a subsequent process. Here, the system 2202 that performs a subsequent process may be a destination to which an item 2230 is transported from the logistics system 901. Although FIG. 22 shows an example in which the simulation target is a logistics system 901, the simulation target may be another type of system. For example, the simulation target may be a production system 902. In the industrial simulation system 100 that performs a simulation of the production system 902, the contents of the work included in any of the processes (e.g., process (X), process (Y), process (Z), etc.) indicated by the command message 103 or the notification message 104 may reflect an order to the production system 902. The order to the production system 902 may be, for example, an order for materials (e.g., finished products) from the customer 2201, or a request for materials (e.g., work in progress or parts) from a system that performs a subsequent process. Here, the system that performs a subsequent process may be a destination to which work in progress or parts are transported from the production system 902. As described above, by including content reflecting orders to the industrial system 105 to be simulated in the command message 103 and the notification message 104, the industrial simulation system 100 can execute a simulation of the industrial system 105 while reflecting the interactions between the industrial system 105 and systems external to the industrial system 105.

[0071] (4) Retransmission of command message 12, 15, and 18 show examples in which error retry information is included in the notification message 104. Note that such error retry information may be included in the notification message 104 not only when the simulation target is the logistics system 901, but also in simulations of various systems belonging to the industrial system 105. Here, if the error retry information included in the notification message 104 indicates that the results (e.g., intermediate progress or results) of the simulation of the content instructed by the command message 103 are not desirable, the command message 103 may be resent. FIG. 23 shows an example of retransmission of the command message 103. First, the simulator component (A) 101 transmits a command message 103 to the simulator component (B) 102 to instruct a simulation of desired contents. Assume that the simulator component (B) 102, which has received the command message 103, performs a simulation of the industrial system 105, and as a result, some error occurs (due to circumstances such as the error not being resolved even after retrying the simulation), and the state intended by the command message 103 is not achieved (for example, loading of a container onto a cart fails in the loading process 1012). In this case, the simulator component (B) 102 may transmit a notification message 2304 to the simulator component (A) 101, including, in the error retry information, a content indicating that "an error occurred, and the error was not resolved, so the desired state was not achieved." The simulator component (A) 101, which has received the notification message 2304, may retransmit the command message so that the state information of the simulation of the industrial system 105 becomes a desired state. 23 shows the resent command message as a "command message (resent) 2303". The command message (resent) 2303 may have the same content as the command message 103. Alternatively, in order to prevent an error from reoccurring in the simulation, the command message (resent) 2303 may have some content that has been changed from the command message 103. If the simulator component (B) 102 that received the command message (resent) 2303 executes a simulation of the industrial system 105 and no error occurs in the simulation, the simulator component (B) 102 may transmit to the simulator component (A) 101 a notification message 104 including content indicating that "no error occurred" in the error retry information. As described above, if the error retry information contained in the notification message 104 is utilized, the industrial simulation system 100 can appropriately retry the simulation of the industrial system 105 according to the contents indicated in the command message 103, thereby continuing the simulation of the industrial system 105 while realizing a desired state in the simulation.

[0072] (5) Example of using messages between modules in a simulator component In the above embodiment, command messages 103 and notification messages 104 are sent and received between simulator components. In addition, command messages 103 and notification messages 104 may be exchanged between one module and another module within one simulator component (represented as command messages 2403 and notification messages 2404 in FIG. 24). FIG. 24 shows an example in which a command message 103 or a notification message 104 is transmitted and received between a certain module and another module in one simulator component. In addition to the various modules included in the simulator component (A) 101 shown in FIG. 2, the simulator component (A) 101 shown in FIG. 24 may also include an extended function module 2499. In the simulator component (A) 101 shown in FIG. 24, the command message generation module 214 may generate a command message 2403 and transmit the command message 2403 to the extended function module 2499. The extended function module 2499 may perform processing based on the contents indicated by the received command message 2403, create a notification message 2404 based on the processing result, etc., and transmit the notification message 2404 to the state information (A) update module 213. The state information (A) update module 213 may update the state information (A) 111 managed by the state information (A) retention module 211 based on the received notification message 2404. The extended function module 2499 may, for example, execute an extended function part of the simulation of the industrial system 105 realized by the simulator component (A) 101. Alternatively, the extended function module 2499 may realize some extended function other than the simulation of the industrial system 105. The extended function module 2499 may be implemented in the simulator component (A) 101 later than other modules. Each of the command message 2403 and the notification message 2404 may be the same or similar data structure as the command message 103 and the notification message 104, respectively. In the above modified example, command messages for requesting a simulation or processing, and notification messages for notifying results of a simulation or processing (e.g., progress or results) can be used between modules in one simulator component. Therefore, the method used for implementing functions related to requests for simulation or processing can be unified, and it is expected that the number of steps required for implementing the industrial simulation system 100 and the simulator component can be reduced. In addition, when an extended function module 2499 is additionally implemented in the simulator component, it is possible to assume the use of command messages and notification messages whose data structures are determined in advance, so that it is expected that the number of steps required for additionally implementing the extended function module 2499 can be reduced.

[0073] (6) Example of a message when simulating a production system In the embodiment described above, the simulation target is a logistics system 901, and examples of the subjects of the work included in each process are robots, material handling equipment, and workers, and examples of the objects of the work included in each process are goods, containers, and basket cars. However, the type of the system to be simulated may be other, the subject of the simulated process, work, processing, or behavior may be other than those described above, and the object of the simulated process, work, processing, or behavior may be other than those described above. Depending on the simulation subject, the subject being simulated, or the object being simulated, the form of the command message 103 and the notification message 104 may be determined. FIG. 25 shows an example in which the simulation target is a production system 902, and the objects of the process, work, processing, and behavior to be simulated are materials at the production site. Here, the materials at the production site refer to materials (raw materials, parts, etc.), intermediate products (work in progress), and final products (finished products, products, etc.) in each process of the production system 902. In the simulation of the production system 902, as shown in the right half of FIG. 25, material identifiers 2521 to 2526 may be associated with the materials 2511 to 2516, respectively. (Note that similar material identifiers may be used when the actual production system 902 is operated.) The command message 103 used in the industrial simulation system 100 may include a command material identifier 2503. The notification message 104 may include a notification material identifier 2504. The command material identifier 2503 and the notification material identifier 2504 indicate which material in the simulation of the production system 902 the command message 103 and the notification message 104 respectively relate to. By including a material identifier in the command message 103 or the notification message 104, the accuracy of the simulation including the inventory management of raw materials, parts, etc. in the production system 902 can be improved. Here, if the material identifier included in the command message 103 or the notification message 104 is made independent of the form of the simulator component, it is possible to reduce the need to redesign the contents of the command message 103 or the notification message 104 even if the form of the simulator component is changed or a new simulator component is added. Incidentally, even when the simulation target is a logistics system 901, if the goods, containers, and basket cars at the logistics site are treated as a certain type of material, it is possible to handle them in the same way as in Fig. 25. By including a material identifier in the command message 103 or the notification message 104, it is possible to improve the accuracy of the simulation, including the inventory management of goods, in the logistics system 901.

[0074] (7) Who decides loading patterns? In the above embodiment, the stowage pattern for loading one or more containers onto one car in the stowage process 1012 is determined by the discrete event numerical calculation simulator 1001. The command message 103 includes information on the stowage pattern 1303. Alternatively, the discrete event three-dimensional (3D) calculation simulator 1002 may determine the loading pattern. In this case, the command message 103 transmitted and received from the discrete event numerical calculation simulator 1001 to the discrete event three-dimensional (3D) calculation simulator 1002 may not include information on the loading pattern 1303. Alternatively, the discrete event three-dimensional (3D) calculation simulator 1002 may be able to determine to perform a loading pattern different from the loading pattern indicated by the information on the loading pattern 1303 included in the received command message 103. In this way, the entity that determines the loading pattern can be determined according to the balance between the decision-making capabilities of the discrete event numerical calculation simulator 1001 and the discrete event three-dimensional (3D) calculation simulator 1002.

[0075] (8) Systems subject to discrete event numerical calculations and discrete event three-dimensional (3D) calculations In the above description of the embodiment, the logistics system 901 has been mainly taken up as a target for performing a simulation by cooperation between the discrete event numerical calculation simulator 1001 and the discrete event three-dimensional (3D) calculation simulator 1002 . Targets for simulation using the cooperation between the discrete event numerical calculation simulator 1001 and the discrete event three-dimensional (3D) calculation simulator 1002 include not only a logistics system 901 but also a production system 902, a supply chain system, a system involving people flow, and a system involving queues. In this way, it is expected that various systems can be targeted for simulation by cooperation between the discrete event numerical calculation simulator 1001 and the discrete event three-dimensional (3D) calculation simulator 1002 .

[0076] (9) Combination of simulator component types In the above, the combination of the discrete event numerical calculation simulator (component) and the discrete event three-dimensional (3D) calculation simulator (component) has mainly been described. However, the combination of types of simulator components to which the present disclosure can be applied is not limited to this. For example, a combination of a (first type) discrete event numerical calculation simulator (component) and a (second type) discrete event numerical calculation simulator (component), a combination of a (first type) discrete event three-dimensional (3D) calculation simulator (component) and a (second type) discrete event three-dimensional (3D) calculation simulator (component), and a combination of a fluid simulator (component) and another type of simulator (component) may be envisioned. The subject of a simulation using the fluid simulator (component) may be a process industry system (e.g., a system including a task of filling a container with liquid). In this case, for example, the fluid simulator (component) may be used for the task of filling a container with liquid in a three-dimensional space, while the numerical calculation simulator (component) may be used for numerical management of the container and liquid, and for estimating and managing the work time (work time zone, work time). Alternatively, a simulation target using a fluid simulator (component) may be a system including a ship at sea. In this case, the fluid simulator (component) may simulate the behavior of the ship taking into account wind and ocean currents, while another type of simulator (component) may manage the properties of the ship. As described above, the present disclosure can be applied to various combinations of simulator component types.

[0077] (10) Simulator Component (C) and later The above mainly describes the interaction between the two simulator components. However, the present disclosure can be applied to the cooperation of three or more simulator components. Here, when the cooperation between the simulator component (A) 101 and the simulator component (B) 102 is established first, and the simulator component (C) is implemented later, it is highly likely that the command message 103 and the notification message 104 already implemented can be used for the simulator component (C) without modification or with only minor modifications. In this way, it is expected that the amount of work required to implement the integration of three or more simulator components will be reduced.

[0078] The technical matters described in each of the embodiments of the present disclosure and the modified examples of the embodiments described above can be combined as appropriate as long as no technical contradiction occurs.

Claims

1. 1. An industrial simulation system, comprising: the industrial simulation system is for simulating an industrial system and includes a plurality of simulator components; Any one of the simulator components manages state information for a simulation of the industrial system, generates a command message based on the state information managed by the simulator component, and sends the command message to another one of the simulator components; An industrial simulation system in which the other one of the simulator components manages status information for a simulation of the industrial system, executes a simulation of the industrial system based on the command message received from the one of the simulator components, updates the status information it manages, generates a notification message corresponding to the simulation, and sends the notification message to the one of the simulator components.

2. 2. The industrial simulation system of claim 1, An industrial simulation system, wherein any one of the simulator components updates the state information it manages based on the notification message received from any other one of the simulator components.

3. 2. The industrial simulation system of claim 1, the command message includes an identifier of the simulator component that is the destination of the command message, an identifier of a command, and a variable-length list; The variable length list includes parameters for the command.

4. 4. The industrial simulation system of claim 3, An industrial simulation system in which the simulator component that is the destination of the command message executes a simulation indicated by the command identifier in the command message with respect to the industrial system using the parameters included in the variable-length list in the command message, and updates the status information that it manages.

5. 2. The industrial simulation system of claim 1, the notification message includes an identifier of the simulator component that is the destination of the notification message, an identifier of an event, and a variable-length list; The variable length list includes parameters of the event.

6. 6. The industrial simulation system according to claim 5, An industrial simulation system in which the simulator component that is the destination of the notification message updates the status information that it manages based on the progress or results of the simulation of the industrial system performed by the simulator component that issued the notification message, as indicated by the event identifier in the notification message, and as indicated by the parameters included in the variable-length list in the notification message.

7. 2. The industrial simulation system of claim 1, The industrial simulation system includes, as the simulator components, a discrete event numerical calculation simulator and a discrete event three-dimensional (3D) calculation simulator.

8. 2. The industrial simulation system of claim 1, The industrial simulation system includes, as the simulator component, a discrete event numerical calculation simulator component and a discrete event three-dimensional (3D) calculation simulator component; The industrial simulation system, wherein the discrete event numerical computation simulator component and the discrete event three-dimensional (3D) computation simulator component are both simulator components included in a single simulator.

9. 2. The industrial simulation system of claim 1, The industrial system performs a plurality of processes, Each of the steps is composed of one or more operations resulting from division of the entire operation in the industrial system into operationally managed chunks; the status information includes status information associated with at least one of the steps; the command message is for instructing a simulation of the work included in at least one of the processes; An industrial simulation system, wherein the notification message indicates an intermediate progress or result of the simulation executed by the simulator component that is the issuer of the notification message.

10. 10. The industrial simulation system of claim 9, An industrial simulation system, wherein the command message is for instructing a simulation of work by a robot or material handling equipment in any of the processes.

11. 10. The industrial simulation system of claim 9, An industrial simulation system, wherein the notification message indicates the progress or results of a simulation of work by a robot or material handling equipment in any of the processes.

12. 2. The industrial simulation system of claim 1, The industrial system to be simulated includes a logistics system or a production system, or the industrial system is a part of a logistics system or a production system, or the industrial system is a logistics system or a production system, An industrial simulation system, wherein the command message or the notification message includes an identifier of a logistics site or a production site of a material handled in the logistics system or the production system.

13. 2. The industrial simulation system of claim 1, The industrial system to be simulated includes a logistics system or a production system, or the industrial system is a part of a logistics system or a production system, or the industrial system is a logistics system or a production system, An industrial simulation system, wherein the command message or the notification message reflects an order received by the logistics system or the production system.

14. 1. An industrial simulation program comprising: the industrial simulation program is for causing a computer to function as one or more simulator components among a plurality of simulator components for simulating an industrial system; Any one of the simulator components manages state information for a simulation of the industrial system, generates a command message based on the state information managed by the simulator component, and sends the command message to another one of the simulator components; An industrial simulation program, wherein the other one of the simulator components manages status information for a simulation of the industrial system, executes a simulation of the industrial system based on the command message received from the other one of the simulator components, updates the status information managed by the other one of the simulator components, generates a notification message corresponding to the simulation, and sends the notification message to the other one of the simulator components.

15. A data structure of a message, the message is transmitted between simulator components in an industrial simulation system for simulating an industrial system; the message is a command message or a notification message, If the message is a command message, the data structure of the message includes an identifier of the simulator component to which the message is addressed, an identifier of a command, and a variable-length list, the variable-length list including parameters of the command; When the message is the command message, the data structure of the message is used in a process in which the destination simulator component executes a simulation indicated by the identifier of the command with respect to the industrial system by using the parameters included in the variable-length list, and updates state information for the simulation of the industrial system that is managed by the destination simulator component itself; If the message is the notification message, the data structure of the message includes an identifier of the simulator component to which the message is addressed, an identifier of an event, and a variable-length list, the variable-length list including parameters of the event; When the message is a notification message, the data structure of the message is a data structure of a message used by the destination simulator component for updating status information for the simulation of the industrial system, which the destination simulator component manages itself, based on the progress or results of the simulation of the industrial system indicated by the event identifier executed by the simulator component that issued the notification message, which is indicated by the parameters included in the variable-length list.

Citation Information

Patent Citations

  • Task plan optimizing device and task plan optimizing method

    JP2018139041A