Non-transitory computer readable medium, collaborative simulation method, and collaborative simulation device
In the collaborative simulation development of on-vehicle ECUs, the dual communication paths of shared memory and FMI standard connection bridges are solved, and the problems of increased connection lines and improved development work hours caused by the data exchange mechanism in collaborative simulation are achieved, and a more efficient collaborative simulation environment construction and execution are achieved.
Patent Information
- Application Number
- CN202411728200.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-12-13
- Filing Date
- 2024-11-28
- Publication Date
- 2025-06-13
AI Technical Summary
In the development of on-board ECUs, a mechanism is needed for collaborative simulation to exchange simulation models, resulting in an increase in the partitioning of communication protocol frames, thereby increasing the number of connection lines and development man-time.
By using two communication paths in a collaborative simulation device: one path transmits data through a shared memory and the other path transmits information related to the shared memory address through a connection bridge that complies with the FMI standard, thereby reducing the amount of data and the number of connection lines.
Reduces the number of data connection lines in the FMI-compliant connection bridge, reduces the development work time for building a collaborative simulation environment, and shortens the execution time of collaborative simulation.
Smart Images

Figure CN120144388A_ABST
Abstract
Description
[0001] Cross - Reference to Related Applications
[0002] The disclosure of Japanese Patent Application No. 2023-210173, including the specification, drawings, and abstract, filed on December 13, 2023, is incorporated herein by reference in its entirety. Technical Field
[0003] The present disclosure relates to, for example, a non-transitory computer-readable medium storing a program, a co-simulation method, and a co-simulation device. Background Art
[0004] The number of installed in-vehicle electronic control units (ECUs) has been increasing year by year, and the increase in development man-hours and the increase in development cycles have become problems. In the development of in-vehicle ECUs, a method of performing verification through computer simulation has been noted for early detection of problems such as design defects and performance deficiencies and for reducing rework.
[0005] The disclosed technologies are listed below.
[0006] [Patent Document 1] Japanese Unexamined Patent Application Publication No. 2023-012395
[0007] In the development of in-vehicle ECUs using computer simulation, co-simulation is performed in which multiple different simulation tools are connected to simultaneously execute multiple simulation processes. Patent Document 1 discloses a virtual development environment device as an example of a co-simulation device that performs such co-simulation. The CAE tool performs simulation by using a model-in-the-loop simulation (MILS) model. The virtual ECU simulation tool performs simulation by using a virtual device model of the ECU to be developed. Summary of the Invention
[0008] When performing co-simulation, a mechanism (connection bridge) for exchanging simulation models between different tools is required. For example, as the connection bridge, a functional model interface (FMI) standard that can connect simulation models without depending on the tool can be adopted. In a connection bridge conforming to the FMI standard, frames of a communication protocol (communication data) are divided into segments of a size defined by the FMI standard, and the divided frames are connected through socket communication. In the case where a frame of a communication protocol is large, the number of divisions of the frame increases accordingly. When the number of divisions of the frame increases, it is necessary to prepare many connection lines to transmit data, and the development man-hours of the connection bridge increase.
[0009] Other problems and novel features will be apparent from the description of the present specification and the drawings.
[0010] A non-transitory computer-readable medium according to an embodiment stores a program for causing a co-simulation device to execute a co-simulation method. The co-simulation device includes a first simulator, a second simulator, a first communication path, and a second communication path. The first simulator stores first data in a first shared memory via the first communication path. Additionally, the first simulator divides information related to a first address of the first shared memory storing the first data into segments of a size defined by the FMI standard, and transmits the information to the second simulator via the second communication path. Using the first address, the second simulator reads the first data stored in the first shared memory via the first communication path.
[0011] According to an embodiment, between the first simulator and the second simulator, data used in co-simulation is transmitted and received via the first shared memory using the first communication path, and information related to the address of the first shared memory is transmitted and received via a connection bridge conforming to the FMI standard using the second communication path. Therefore, the amount of data transmitted using the communication path via the connection bridge conforming to the FMI standard can be reduced. That is, since the number of data connection lines in the connection bridge conforming to the FMI standard can be reduced, an increase in the development man-hours for constructing a co-simulation environment can be suppressed. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] Figure 1 is a block diagram illustrating an example of the configuration of a co-simulation device according to a first embodiment.
[0013] Figure 2 is a block diagram illustrating an example of the hardware configuration of a co-simulation device according to a first embodiment.
[0014] Figure 3 is a timing diagram illustrating an example of the processing of a co-simulation device according to a first embodiment.
[0015] Figure 4 is a block diagram illustrating an example of the configuration of a modified co-simulation device according to a first embodiment.
[0016] Figure 5 is a block diagram illustrating an example of the configuration of a co-simulation device according to a second embodiment.
[0017] Figure 6 is a timing diagram illustrating an example of the processing of a co-simulation device according to a second embodiment. DETAILED DESCRIPTION
[0018] The present disclosure will be described with reference to several exemplary embodiments. It is to be understood that these embodiments are described for illustrative purposes only and will assist those skilled in the art in understanding and implementing the present disclosure without imposing a limitation on the scope of the present disclosure. The disclosure described herein is implemented in various ways different from the methods described below.
[0019] In the following description and claims, unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains.
[0020] Hereinafter, embodiments of the present disclosure will be described with reference to the drawings. Each drawing is merely an example for describing one or more embodiments. Each drawing is not associated with only one particular embodiment, but may be associated with one or more other embodiments. Those skilled in the art will understand that various features or steps described with reference to any one of the drawings may be combined with the features or steps shown in one or more other drawings, for example, to create embodiments not explicitly shown or described. Not all features or steps shown in any one of the drawings for describing exemplary embodiments are necessarily required, and some features or steps may be omitted. The order of the steps described in any drawing may be appropriately changed.
[0021] (First Embodiment)
[0022] Reference will be made to Figure 1 describe an example of the configuration of the co-simulation device 1 according to the first embodiment. Figure 1 is a block diagram illustrating an example of the configuration of the co-simulation device 1 according to the first embodiment. The co-simulation device 1 has a first simulator 11, a second simulator 12, and a first shared memory 13.
[0023] The first simulator 11 and the second simulator 12 are implemented by a single computer. Each of the first simulator 11 and the second simulator 12 can be implemented as different processes (instances of each program) operating on a single computer.
[0024] For example, the first simulator 11 may instruct the second simulator 12 to perform a specific simulation and execute a simulation using the results of the simulation. In this case, for example, the first simulator 11 may perform a simulation based on an instruction from an operator of the co-simulation device 1 and input the data generated by the simulation to the second simulator 12. Then, the second simulator 12 may simulate the processing of a specific in-vehicle device based on the data generated by the first simulator 11 and input the data as the simulation result to the first simulator 11. Note that the first simulator 11 may be referred to as the main simulator, and the second simulator 12 may be referred to as the slave simulator, etc.
[0025] The first simulator 11 and the second simulator 12 can be simulators using different methods and are intended for different development stages. Thus, for example, simulators using different methods can be operated in cooperation.
[0026] In this case, the first simulator 11 can be, for example, an execution environment of MILS, and the second simulator 12 can be, for example, an execution environment of simulator-based processor-in-the-loop simulation (SPILS), software-in-the-loop simulation (SILS), or hardware-in-the-loop simulation (HILS).
[0027] Note that MILS can be, for example, a method for performing simulation by connecting an ECU model and a plant model (e.g., a control target such as an engine or a motor). SPILS can be, for example, a simulation method for verifying the actual code (software) of a microcontroller using a model (virtual microcomputer) of the target processor (microcontroller). SILS can be, for example, a method for performing simulation by connecting a controller model described in a programming language (such as the C language) and a plant model. HILS can be, for example, a method for performing simulation by connecting an ECU of an actual machine and a plant model.
[0028] In addition, the first simulator 11 can be, for example, an execution environment of SILS, and the second simulator 12 can be, for example, an execution environment of processor-in-the-loop simulation (PILS). Note that PILS can be, for example, a simulation using the processor (microcontroller) to be implemented.
[0029] The first shared memory 13 is an area in the memory of a computer that can be accessed by multiple processes. Data stored in the first shared memory 13 can be transferred between processes using, for example, an application programming interface (API) provided by an operating system (OS) or the like.
[0030] The co-simulation device 1 according to the first embodiment can perform co-simulation by transmitting and receiving data between the first simulator 11 and the second simulator 12 using two communication paths (the first communication path and the second communication path). The first communication path is a communication path connecting the first simulator 11 and the second simulator 12 via the first shared memory 13. Data communication between the first simulator 11 and the second simulator 12 using the first communication path is performed by one simulator writing data to be transmitted to the other simulator into the first shared memory 13 and the other simulator reading the data written into the shared memory.
[0031] On the other hand, the second communication path is a communication path that connects the first simulator 11 and the second simulator 12 through socket communication. The data communication between the first simulator 11 and the second simulator 12 using the second communication path is performed by injecting data into the socket by one simulator and receiving the data via the socket by the other simulator. The data transmitted using the second communication path is converted into the data defined in the FMI standard and then transmitted. As described above, the second communication path is a communication path via a connection bridge conforming to the FMI standard.
[0032] The first memory access control unit 111 and the second memory access control module 121 write the data used in the co-simulation into the first shared memory 13 or read the data from the first shared memory 13. The above-mentioned first communication path is a communication path that connects the first simulator 11 and the second simulator 12 via the first shared memory 13. That is, the communication path connecting the first memory access control unit 111 and the second memory access control unit 121 via the first shared memory 13 corresponds to the first communication path.
[0033] The first simulation execution unit 112 and the second simulation execution unit 122 are implemented by different simulation tools and perform different simulations. In the co-simulation device 1, since the co-simulation in which the first simulator 11 and the second simulator 12 operate in cooperation is performed, the first simulator 11 and the second simulator 12 transmit and receive the data used in the co-simulation.
[0034] Specifically, the first simulation execution unit 112 of the first simulator 11 receives data from the second simulator 12 via the first shared memory 13 and performs a simulation using the data. In addition, the first simulation execution unit 112 generates data by performing a simulation and stores the generated data in the first shared memory 13 via the first memory access control unit 111 so that the data can be used in the simulation performed by the second simulator 12.
[0035] The second simulation execution unit 122 of the second simulator 12 receives data from the first simulator 11 via the first shared memory 13 and performs a simulation by using the data. In addition, the second simulation execution unit 122 generates data by performing a simulation and stores the generated data in the first shared memory 13 via the second memory access control unit 121 so that the data can be used in the simulation performed by the first simulator 11.
[0036] The first address notification unit 113 and the second address notification unit 123 transmit and receive a notification including information related to the address (memory address) of the first shared memory 13 that stores data used in the co-simulation. As described above, the transfer of data used in the co-simulation between the first simulator 11 and the second simulator 12 is achieved by storing the data in the first shared memory 13 on the first communication path. At this time, the receiving-side simulator cannot appropriately read data from the first shared memory 13 unless the receiving-side simulator knows the location of the first shared memory 13 that stores the data to be transferred. Therefore, the transmitting-side simulator transfers information related to the address of the first shared memory 13 that stores the data to be transferred to the receiving-side simulator.
[0037] The second communication path that connects the first simulator 11 and the second simulator 12 through socket communication corresponds to the communication path between the first address notification unit 113 and the second address notification unit 123. When transmitting and receiving information related to the address of the first shared memory 13 using the second communication path, the transmitting-side address notification unit divides the information related to the address into segments of a size defined by the FMI standard, and transfers the divided information segments related to the address to the receiving-side address notification unit through socket communication. The receiving-side address notification unit receives the information related to the address (the information is divided into segments of a size defined by the FMI standard) through socket communication, combines the divided information segments related to the address, and restores the information related to the address of the first shared memory 13. The simulator including the receiving-side address notification unit can obtain the data stored in the first shared memory 13 by using the restored information related to the address.
[0038] Note that the transmitting-side address notification unit obtains the information related to the address of the first shared memory 13 to be transmitted from the simulation execution unit of the transmitting-side simulator, but can also obtain this information from the memory access control unit of the transmitting-side simulator. In addition, the receiving-side address notification unit outputs the restored information related to the address of the first shared memory 13 to the simulation execution unit of the receiving-side simulator, but can also output this information to the memory access control unit of the receiving-side simulator.
[0039] Figure 2 is a block diagram illustrating an example of the hardware configuration of the co-simulation device 1 according to the first embodiment. In Figure 2 the example, the co-simulation device 1 includes a computer that includes a processor 101, a memory 102, and a communication interface 103. The memory 102 stores at least a part of a program 104. The communication interface 103 includes an interface necessary for communicating with other network elements.
[0040] When the program 104 is executed through the cooperation of the processor 101 and the memory 102, at least a part of the processing of the first embodiment is executed by the co-simulation device 1. For example, Figure 1 the first simulator 11 and the second simulator 12 illustrated in Figure 1 can be implemented by the processor 101 reading and executing one or more programs stored in the memory 102. The memory 102 can be of any type. As a non-limiting example, the memory 102 can be a non-transitory computer-readable storage medium. The memory 102 can also be implemented by using any suitable data storage technology (such as semiconductor-based memory devices, magnetic memory devices, optical memory devices, fixed memory, and removable memory). Although only one memory 102 is illustrated in the co-simulation device 1, there may be some physically different memory modules in the co-simulation device 1. The processor 101 can be of any type. As a non-limiting example, the processor 101 can include one or more processors among a microprocessor, a digital signal processor (DSP), and a processor based on a multi-core processor architecture.
[0041] The program includes a set of commands (or software code) for causing a computer to execute one or more functions described in the first embodiment when read by the computer. The program can be stored in a non-transitory computer-readable medium or a tangible storage medium. By way of example and not limitation, the computer-readable medium or the tangible storage medium includes random access memory (RAM), read-only memory (ROM), flash memory, solid-state drive (SSD), or other memory technologies, compact disc (CD)-ROM, digital versatile disc (DVD), Blu-ray (registered trademark) disc, or other optical disc storage devices, magnetic tape cartridges, magnetic tapes, magnetic disk storage devices, or other magnetic storage devices. The program can be transmitted on a transitory computer-readable medium or a communication medium. By way of example and not limitation, the transitory computer-readable or communication medium can include electrical, optical, acoustic, or other forms of propagated signals.
[0042] Next, reference will be made to Figure 3 describe the processing of the co-simulation device 1 according to the first embodiment. Figure 3 is a timing diagram illustrating an example of the processing of the co-simulation device 1 according to the first embodiment. Note that Figure 3 illustrates the processing in which the second simulator 12 executes a simulation by using the data provided from the first simulator 11 in the co-simulation in which the first simulator 11 and the second simulator 12 operate in cooperation.
[0043] First, in step S101, the first memory access control unit 111 of the first simulator 11 stores first data in the first shared memory 13, and the first data is data in a format according to a specific communication standard. Here, the first data may be, for example, data generated by simulation of the first simulation execution unit 112 of the first simulator 11.
[0044] The format according to a specific communication standard may be, for example, a frame format determined in the communication between the first simulator 11 and the second simulator 12. For example, in this format, it may be defined what data is included in each byte of the frame. In addition, the specific communication standard may include, for example, Controller Area Network (CAN), Ethernet (registered trademark), CAN with Flexible Data Rate (CAN FD), and FlexRay (registered trademark). Therefore, for example, data (such as a CAN frame or an Ethernet frame) is stored in the first shared memory 13.
[0045] Subsequently, the first address notification unit 113 of the first simulator 11 obtains information related to the first address of the first shared memory 13 storing the first data from the first simulation execution unit 112. The first address notification unit 113 divides the information related to the first address of the first shared memory 13 into segments of a size defined by the FMI standard. The first address notification unit 113 transmits a first notification to the second address notification unit 123 of the second simulator 12, and the first notification includes the divided information segments related to the first address of the first shared memory 13 (step S102). Here, for example, the information related to the first address may be the head address of the first data in the first shared memory 13.
[0046] As described above, the communication path between the first address notification unit 113 and the second address notification unit 123 is a second communication path via a connection bridge conforming to the FMI standard. The first address notification unit 113 transmits the first notification to the second address notification unit 123 through socket communication, and socket communication is a method for inter - process communication by using the second communication path via a connection bridge conforming to the FMI standard.
[0047] In addition to the information related to the first address, the first notification further includes first communication standard information indicating the specific communication standard that the first data conforms to. However, when the communication standard of the first data is predetermined between the first simulator 11 and the second simulator 12, it is not necessary to include the first communication standard information in the first notification. When the first communication standard information is included in the first notification, similar to the information related to the first address, the first address notification unit 113 divides the first communication standard information into segments of a size defined by the FMI standard, and includes the divided first communication standard information segments in the first notification.
[0048] Subsequently, the second address notification unit 123 of the second simulator 12 receives the first notification through socket communication. The second address notification unit 123 combines the information related to the first address (divided into segments of a size defined by the FMI standard) included in the first notification and the first communication standard information, and restores the information related to the first address and the first communication standard information. The second address notification unit 123 outputs the restored information related to the first address and the first communication standard information to the second simulation execution unit 122.
[0049] Subsequently, the second simulation execution unit 122 of the second simulator 12 receives the information related to the first address and the first communication standard information from the second address notification unit 123. The second simulation execution unit 122 determines the communication standard of the first data based on the first communication standard information. Therefore, the second simulation execution unit 122 grasps the format according to the communication standard of the first data, that is, the data format of the communication frame related to the first data. The second simulation execution unit 122 outputs the information related to the first address and the information about the format according to the communication standard of the first data to the second memory access control unit 121.
[0050] Subsequently, the second memory access control unit 121 of the second simulator 12 receives the information related to the first address and the information about the format according to the communication standard of the first data from the second simulation execution unit 122. The second memory access control unit 121 reads the first data from the first shared memory 13 based on the information related to the first address and the information about the format according to the communication standard of the first data (step S103). For example, when the information related to the first address includes the head address of the first data and the information about the format according to the communication standard of the first data includes the information related to the size of the first data, the second memory access control unit 121 can read the data corresponding to the size of the first data from the head address of the first data from the first shared memory 13. In this way, the second simulator 12 obtains the first data from the first simulator 11 through the first communication path including the first shared memory 13. In addition, the second memory access control unit 121 outputs the read first data to the second simulation execution unit 122.
[0051] Subsequently, the second simulation execution unit 122 of the second simulator 12 performs simulation based on the first data (step S104). The second simulation execution unit 122 generates second data conforming to a specific communication standard as the simulation result. Here, the communication standard of the second data may be the same as the communication standard to which the first data conforms. The second simulation execution unit 122 outputs the generated second data to the second memory access control unit 121.
[0052] Subsequently, the second memory access control unit 121 of the second simulator 12 stores second data in the first shared memory 13 in a format according to a specific communication standard (step S105). Thus, for example, frame data of responses to CAN frames, Ethernet frames, etc. transmitted from the first simulator 11 is stored in the first shared memory 13.
[0053] Subsequently, the second address notification unit 123 of the second simulator 12 obtains information related to the second address of the first shared memory 13 storing the second data from the second simulation execution unit 122. The second address notification unit 123 divides the information related to the second address of the first shared memory 13 into segments of a size defined by the FMI standard, and transmits a second notification to the first address notification unit 113 of the first simulator 11, the second notification including the divided information segments related to the second address of the first shared memory 13 (step S106). The transmission of the second notification from the second address notification unit 123 to the first address notification unit 113 is performed by using socket communication via a second communication path of a connection bridge conforming to the FMI standard.
[0054] In addition to the information related to the second address, the second notification also includes second communication standard information indicating the specific communication standard to which the second data conforms. Similar to the information related to the second address, the second address notification unit 123 also divides the second communication standard information into segments of a size defined by the FMI standard, and includes the divided second communication standard information segments in the second notification.
[0055] Subsequently, the first address notification unit 113 of the first simulator 11 receives the second notification through socket communication. The first address notification unit 113 combines the information related to the second address (divided into segments of a size defined by the FMI standard) included in the second notification and the second communication standard information, and restores the information related to the second address and the second communication standard information. The first address notification unit 113 outputs the restored information related to the second address and the second communication standard information to the first simulation execution unit 112.
[0056] Subsequently, the first simulation execution unit 112 of the first simulator 11 receives the information related to the second address and the second communication standard information from the first address notification unit 113. The first simulation execution unit 112 determines the communication standard of the second data based on the second communication standard information. Thus, the first simulation execution unit 112 grasps the format according to the communication standard of the second data, that is, the data format of the communication frame related to the second data. The first simulation execution unit 112 outputs the information related to the second address and the information about the format according to the communication standard of the second data to the first memory access control unit 111.
[0057] Subsequently, the first memory access control unit 111 of the first simulator 11 receives information related to the second address and information about the format according to the communication standard of the second data from the first simulation execution unit 112. The first memory access control unit 111 reads the second data from the first shared memory 13 based on the information related to the second address and the information about the format according to the communication standard of the second data (step S107). For example, in the case where the information related to the second address includes the head address of the second data and the information about the format according to the communication standard of the second data includes information related to the size of the second data, the first memory access control unit 111 can read data corresponding to the size of the second data from the head address of the second data from the first shared memory 13. In this way, the first simulator 11 obtains the second data from the second simulator 12 by using the second communication path including the first shared memory 13.
[0058] The first memory access control unit 111 outputs the read second data to the first simulation execution unit 112. The second data can be used for the simulation by the first simulation execution unit 112.
[0059] According to the first embodiment, data is transmitted and received between the first simulator 11 and the second simulator 12 by using both the first communication path and the second communication path. First, the transmission and reception of data used in the co-simulation are performed by using the first communication path via the first shared memory 13. In the transmission and reception of data via the first shared memory 13, it is not necessary to perform data conversion processing for coping with the FMI standard restrictions, and therefore, it is not necessary to develop a connection bridge conforming to the FMI standard.
[0060] On the other hand, in the first embodiment, it is necessary to share information related to the address of the first shared memory 13 that stores the data to be transmitted and received between the first simulator 11 and the second simulator 12. The information related to the address of the first shared memory 13 is transmitted and received by using the second communication path. Since frames restricted by the FMI standard are used in the transmission and reception of data using the second communication path, it is necessary to develop a connection bridge conforming to the FMI standard in the second communication path. However, since the amount of information related to the address of the first shared memory 13 is smaller than the amount of data transmitted and received via the first shared memory 13, the number of divisions of the information related to the address divided into the sizes defined according to the FMI standard is reduced. That is, since the number of data connection lines in the connection bridge conforming to the FMI standard can be reduced, the development man-hours for constructing the connection bridge conforming to the FMI standard in the second communication path can be reduced.
[0061] Specifically, when transmitting and receiving data (frames) between the first simulator 11 and the second simulator 12 via a connection bridge compliant with the FMI standard, when a frame is large, the number of divided parts of the frame increases. When the number of divided parts increases, the number of data connection lines for transmitting and receiving the data increases in proportion to the number of divided parts, and the development man-hours of the connection bridge compliant with the FMI standard also increase. However, according to the first embodiment, since the data transmitted and received via the connection bridge compliant with the FMI standard is information of the address of the first shared memory 13, it is possible to prevent the development man-hours of the connection bridge compliant with the FMI standard from increasing depending on the size of a frame.
[0062] In addition, in the case of dividing and transmitting and receiving frames of a communication protocol between the first simulator 11 and the second simulator 12, socket communication is repeatedly executed for the number of divided parts. Therefore, the number of socket communications increases as the number of divided parts of the frame increases. Since socket communication is implemented in the kernel space, task switching takes time. That is, as the number of divided parts of the frame increases, the number of socket communications also increases, and thus, the execution time of co-simulation also increases. However, according to the first embodiment, since the data transmitted and received via the connection bridge compliant with the FMI standard is information of the address of the first shared memory 13, it is possible to reduce the number of divided parts and shorten the execution time of co-simulation.
[0063] (Modification of the First Embodiment)
[0064] Next, a modification of the first embodiment will be described. In the above first embodiment, the transmitting-side simulator transmits communication standard information for specifying the communication standard of the data stored in the first shared memory 13 to the receiving-side simulator, and the receiving-side simulator determines the communication standard of the data stored in the first shared memory 13 based on the communication standard information. On the other hand, in the modification of the first embodiment, the transmission of information related to the address of the first shared memory 13 storing the data is performed through dedicated communication paths distinguished for each communication standard, so that the receiving-side simulator determines the communication standard of the data stored in the first shared memory 13.
[0065] Figure 4 is a block diagram illustrating an example of the configuration of the co-simulation apparatus 1a according to the modification of the first embodiment. In the modification according to the first embodiment Figure 4 in, components having the same functions as those in the first embodiment Figure 1 are denoted by the same reference numerals, and their descriptions will be omitted.
[0066] As Figure 4 illustrated, the co-simulation apparatus 1a includes a first simulator 11a, a second simulator 12a, and a first shared memory 13. Except for Figure 1In addition to the configuration of the first simulator 11 illustrated in [description], the first simulator 11a further includes a third address notification unit 114. Additionally, the first simulation execution unit 112 is changed to a first simulation execution unit 112a. The first simulation execution unit 112a is connected to the third address notification unit 114.
[0067] In addition to Figure 1 the configuration of the second simulator 12 illustrated in [description], the second simulator 12a further includes a fourth address notification unit 124. The second simulation execution unit 122 is changed to a second simulation execution unit 122a. The second simulation execution unit 122a is connected to the fourth address notification unit 124. The third address notification unit 114 and the fourth address notification unit 124 are connected to each other via a connection bridge conforming to the FMI standard via a third communication path.
[0068] The third address notification unit 114 and the fourth address notification unit 124 transmit and receive notifications including information related to the address of the first shared memory 13 that stores data used in the co-simulation. The functions of the third address notification unit 114 and the fourth address notification unit 124 are the same as those of the first address notification unit 113 and the second address notification unit 123 because information related to the address of the first shared memory 13 is transmitted and received. However, in the modified co-simulation device 1a according to the first embodiment, the address notification units for transmitting and receiving information related to the address of the first shared memory 13 are different for each communication standard of the data stored in the first shared memory 13.
[0069] In the case where the first address notification unit 113 and the second address notification unit 123 transmit and receive information related to the address of the first shared memory 13 that stores data in the format according to the first communication standard via the second communication path, the third address notification unit 114 and the fourth address notification unit 124 transmit and receive information related to the address of the first shared memory 13 that stores data in the format according to the second communication standard (different from the first communication standard) via the third communication path. As described above, in the modified co-simulation device 1a according to the first embodiment, dedicated communication paths according to the communication standards of the data stored in the first shared memory 13 are provided to transmit and receive information related to the address of the first shared memory 13. Therefore, the receiving-side simulator can determine the communication standard related to the data stored in the first shared memory 13 based on the communication path through which information related to the address of the first shared memory 13 has been received.
[0070] Next, the processing of the modified co-simulation device 1a according to the first embodiment will be described. The first memory access control unit 111 stores first data, which is data in a format according to the first communication standard, in the first shared memory 13. For example, the first communication standard is CAN. In addition, the first memory access control unit 111 stores third data, which is data in a format according to the second communication standard, in the first shared memory 13. For example, the second communication standard is Ethernet.
[0071] Subsequently, the first address notification unit 113 obtains information related to the first address of the first shared memory 13 storing the first data from the first simulation execution unit 112a. The first address notification unit 113 divides the information related to the first address of the first shared memory 13 into segments of a size defined by the FMI standard, and transmits a first notification including the divided information segments related to the first address of the first shared memory 13 to the second address notification unit 123 via a second communication path. At this time, the first notification does not include first communication standard information indicating the first communication standard to which the first data conforms.
[0072] The third address notification unit 114 obtains information related to the third address of the first shared memory 13 storing the third data from the first simulation execution unit 112a. The third address notification unit 114 divides the information related to the third address of the first shared memory 13 into segments of a size defined by the FMI standard, and transmits a third notification including the divided information segments related to the third address of the first shared memory 13 to the fourth address notification unit 124 via a third communication path. At this time, the third notification does not include third communication standard information indicating the second communication standard to which the third data conforms.
[0073] Subsequently, the second address notification unit 123 receives the first notification through socket communication. The second address notification unit 123 combines the information related to the first address included in the first notification (the information is divided into segments of a size defined by the FMI standard), and restores the information related to the first address. The second address notification unit 123 outputs the restored information related to the first address to the second simulation execution unit 122a.
[0074] The fourth address notification unit 124 receives the third notification through socket communication. The fourth address notification unit 124 combines the information related to the third address included in the third notification (the information is divided into segments of a size defined by the FMI standard), and restores the information related to the third address. The fourth address notification unit 124 outputs the restored information related to the third address to the second simulation execution unit 122a.
[0075] Subsequently, the second simulation execution unit 122a receives information related to the first address from the second address notification unit 123. Based on the first notification received from the second address notification unit 123 via the first communication path, which includes information related to the first address, the second simulation execution unit 122a determines that the first data is data in the format according to the first communication standard. The second simulation execution unit 122a outputs the information related to the first address and the information about the format of the first communication standard according to the first data to the second memory access control unit 121.
[0076] The second simulation execution unit 122a also receives information related to the third address from the fourth address notification unit 124. Based on the third notification received from the fourth address notification unit 124 via the third communication path, which includes information related to the third address, the second simulation execution unit 122a determines that the third data is data in the format according to the second communication standard. The second simulation execution unit 122a outputs the information related to the third address and the information about the format of the second communication standard according to the third data to the second memory access control unit 121.
[0077] Subsequently, the second memory access control unit 121 receives the information related to the first address and the information about the format of the first communication standard according to the first data from the second simulation execution unit 122a. Based on the information related to the first address and the information about the format of the first communication standard according to the first data, the second memory access control unit 121 reads the first data from the first shared memory 13.
[0078] In addition, the second memory access control unit 121 receives the information related to the third address and the information about the format of the second communication standard according to the third data from the second simulation execution unit 122a. Based on the information related to the third address and the information about the format of the second communication standard according to the third data, the second memory access control unit 121 reads the third data from the first shared memory 13.
[0079] In this way, the second simulator 12a obtains the first data and the third data from the first simulator 11a through the first communication path including the first shared memory 13. The second memory access control unit 121 outputs the read first data and third data to the second simulation execution unit 122a. The second simulation execution unit 122a performs simulation based on the first data and the third data.
[0080] According to a modification of the first embodiment, by using socket communication via different communication paths according to the communication standard of the data transmitted and received via the first shared memory 13, information related to the address of the first shared memory 13 is transmitted and received. In other words, in the modification of the first embodiment, a socket communication port according to a specific communication standard is used to transmit and receive information related to the address of the first shared memory 13. Based on the communication path through which information related to the address of the first shared memory 13 has been received, the simulator on the receiving side can determine the communication standard related to the data stored in the first shared memory 13. Therefore, the simulator on the transmitting side does not need to transmit communication standard information for determining the communication standard of the data stored in the first shared memory 13 to the simulator on the receiving side.
[0081] (Second Embodiment)
[0082] Next, the second embodiment will be described. In the first embodiment, a co-simulation apparatus that co-performs co-simulation with two simulators implemented by a single computer has been described. On the other hand, in the second embodiment, a co-simulation apparatus that co-performs co-simulation with simulators implemented by different computers will be described.
[0083] will be referred to Figure 5 to describe an example of the configuration of the co-simulation apparatus 2 according to the second embodiment. Figure 5 is a block diagram illustrating an example of the configuration of the co-simulation apparatus 2 according to the second embodiment. In the Figure 5 according to the second embodiment, components having the same functions as those in the Figure 1 according to the first embodiment are denoted by the same reference numerals, and their descriptions will be omitted.
[0084] As Figure 5 illustrated, the co-simulation apparatus 2 according to the second embodiment includes a first simulator 11b, a second simulator 12, a third simulator 21, a first shared memory 13, a second shared memory 14, a third shared memory 22, a first transmission unit 15, and a second transmission unit 23. In addition, the co-simulation apparatus 2 includes a plurality of computers. In the Figure 5 example, the co-simulation apparatus 2 includes a first computer 10 and a second computer 20. The hardware configuration of each of the first computer 10 and the second computer 20 may be similar to the Figure 2 hardware configuration illustrated.
[0085] The first computer 10 includes a first simulator 11b, a second simulator 12, a first shared memory 13, a second shared memory 14, and a first transmission unit 15. The first simulator 11b, the second simulator 12, and the first transmission unit 15 are implemented by the first computer 10. For example, the first simulator 11b, the second simulator 12, and the first transmission unit 15 can be implemented through the cooperation of one or more programs installed in the first computer 10 with the hardware of the processor and memory of the first computer 10. The first simulator 11b is connected to the second simulator 12, the first shared memory 13, the second shared memory 14, and the first transmission unit 15. The first shared memory 13 is connected to the second simulator 12. The second shared memory 14 is connected to the first transmission unit 15.
[0086] The second computer 20 includes a third simulator 21, a third shared memory 22, and a second transmission unit 23. The third simulator 21 and the second transmission unit 23 are implemented by the second computer 20. For example, the third simulator 21 and the second transmission unit 23 can be implemented through the cooperation of one or more programs installed in the second computer 20 with the hardware of the processor and memory of the second computer 20. The third simulator 21 is connected to the third shared memory 22 and the second transmission unit 23. The second transmission unit 23 is connected to the third shared memory 22 and the first transmission unit 15.
[0087] The second shared memory 14 is an area in the memory of the first computer 10 that can be accessed by multiple processes. The data stored in the second shared memory 14 can be transferred between processes by using, for example, an API provided by the OS or the like.
[0088] The third shared memory 22 is an area in the memory of the second computer 20 that can be accessed by multiple processes. The data stored in the third shared memory 22 can be transferred between processes by using, for example, an API provided by the OS or the like.
[0089] As Figure 5 illustrated, in addition to Figure 1 the configuration of the first simulator 11 illustrated, the first simulator 11b further includes a fifth address notification unit 115. In addition, the first memory access control unit 111 is changed to the first memory access control unit 111b, and the first simulation execution unit 112 is changed to the first simulation execution unit 112b. The first memory access control unit 111b is connected to the second shared memory 14. The fifth address notification unit 115 is connected to the first simulation execution unit 112b and the first transmission unit 15.
[0090] The third simulator 21 includes a third memory access control unit 211, a third simulation execution unit 212, and a sixth address notification unit 213. The third memory access control unit 211 is connected to the third shared memory 22 and the third simulation execution unit 212. The sixth address notification unit 213 is connected to the third simulation execution unit 212 and the second transmission unit 23.
[0091] The first memory access control unit 111b and the first transmission unit 15 write data used in the co-simulation to or read the data from the second shared memory 14. The first simulator 11b and the first transmission unit 15 can transmit data via the second shared memory 14. The communication path connecting the first memory access control unit 111b of the first simulator 11b and the first transmission unit 15 via the second shared memory 14 corresponds to the fourth communication path.
[0092] The third memory access control unit 211 and the second transmission unit 23 write data used in the co-simulation to or read the data from the third shared memory 22. The third simulator 21 and the second transmission unit 23 can transmit data via the third shared memory 22. The communication path connecting the third memory access control unit 211 of the third simulator 21 and the second transmission unit 23 via the third shared memory 22 corresponds to the fifth communication path.
[0093] The first simulation execution unit 112b and the third simulation execution unit 212 are implemented by different simulation tools and perform different simulations. Since the co-simulation in which the first simulator 11b and the third simulator 21 operate in cooperation is executed in the co-simulation device 2, the first simulator 11b and the third simulator 21 transmit and receive data used in the simulation.
[0094] Specifically, the first simulation execution unit 112b of the first simulator 11b receives data from the third simulator 21 via the third shared memory 22, the second transmission unit 23, the first transmission unit 15, and the second shared memory 14, and uses the data to perform the simulation. In addition, the first simulation execution unit 112b generates data by performing the simulation and stores the generated data in the second shared memory 14 via the first memory access control unit 111b so that the data can be used in the simulation performed by the third simulator 21.
[0095] The third simulation execution unit 212 of the third simulator 21 receives data from the first simulator 11b via the second shared memory 14, the first transmission unit 15, the second transmission unit 23, and the third shared memory 22, and performs a simulation using the data. In addition, the third simulation execution unit 212 generates data by performing a simulation, and stores the generated data in the third shared memory 22 via the third memory access control unit 211 so that the data can be used in the simulation performed by the first simulator 11b.
[0096] The fifth address notification unit 115 and the first transmission unit 15 transmit and receive a notification including information related to the address (memory address) of the second shared memory 14 that stores data used in the co-simulation. The communication path connecting the fifth address notification unit 115 and the first transmission unit 15 of the first simulator 11b through socket communication corresponds to the sixth communication path via a connection bridge conforming to the FMI standard.
[0097] In the case of transmitting and receiving information related to the address of the second shared memory 14 by using the sixth communication path, the fifth address notification unit 115 or the first transmission unit 15 on the transmission side divides the information related to the address into segments of a size defined by the FMI standard, and transmits the divided information segments related to the address to the fifth address notification unit 115 or the first transmission unit 15 on the receiving side through socket communication. The fifth address notification unit 115 or the first transmission unit 15 on the receiving side receives the information related to the address (the information is divided into segments of a size defined by the FMI standard) through socket communication, combines the divided information segments related to the address, and restores the information related to the address of the second shared memory 14. The first simulator 11b including the fifth address notification unit 115 or the first transmission unit 15 on the receiving side can obtain the data stored in the second shared memory 14 by using the restored information related to the address.
[0098] The sixth address notification unit 213 and the second transmission unit 23 transmit and receive a notification including information related to the address (memory address) of the third shared memory 22 that stores data used in the co-simulation. The communication path connecting the sixth address notification unit 213 and the second transmission unit 23 of the third simulator 21 through socket communication corresponds to the seventh communication path via a connection bridge conforming to the FMI standard.
[0099] In the case of transmitting and receiving information related to the address of the third shared memory 22 by using the seventh communication path, the sixth address notification unit 213 or the second transmission unit 23 on the transmission side divides the information related to the address into segments of a size defined by the FMI standard, and transmits the divided information segments related to the address to the sixth address notification unit 213 or the second transmission unit 23 on the receiving side through socket communication. The sixth address notification unit 213 or the second transmission unit 23 on the receiving side receives the information related to the address (the information is divided into segments of a size defined by the FMI standard) through socket communication, combines the divided information segments related to the address, and restores the information related to the address of the third shared memory 22. The third simulator 21 including the sixth address notification unit 213 or the second transmission unit 23 on the receiving side can obtain the data stored in the third shared memory 22 by using the restored information related to the address.
[0100] In addition, the first transmission unit 15 and the second transmission unit 23 transmit and receive data used in co-simulation through socket communication. The communication path connecting the first transmission unit 15 and the second transmission unit 23 through socket communication corresponds to the eighth communication path via a connection bridge conforming to the FMI standard.
[0101] The first transmission unit 15 divides the data read from the second shared memory 14 into segments of a size defined by the FMI standard, and transmits the divided data segments to the second transmission unit 23 through socket communication. The second transmission unit 23 receives the data (the data is divided into segments of a size defined by the FMI standard) through socket communication, and restores the data by combining the divided data segments. The second transmission unit 23 stores the restored data in the third shared memory 22.
[0102] The second transmission unit 23 divides the data read from the third shared memory 22 into segments of a size defined by the FMI standard, and transmits the divided data segments to the first transmission unit 15 through socket communication. The first transmission unit 15 receives the data (the data is divided into segments of a size defined by the FMI standard) through socket communication, and restores the data by combining the divided data segments. The first transmission unit 15 stores the restored data in the second shared memory 14.
[0103] Next, reference will be made to Figure 6 Describe the processing of the co-simulation apparatus 2 according to the second embodiment. Figure 6 is a timing chart illustrating an example of the processing of the co-simulation apparatus 2 according to the second embodiment. Note that Figure 6The figure illustrates the process in which the third simulator 21 performs simulation by using the data provided from the first simulator 11b in co-simulation, where the first simulator 11b implemented by the first computer 10 and the third simulator 21 implemented by the second computer 20 operate in cooperation in co-simulation.
[0104] First, in step S201, the first memory access control unit 111b of the first simulator 11b stores the fourth data in the second shared memory 14, and the fourth data is data in a format according to a specific communication standard. Here, the fourth data may be, for example, data obtained by the simulation of the first simulation execution unit 112b of the first simulator 11b.
[0105] Subsequently, the fifth address notification unit 115 of the first simulator 11b obtains information related to the fourth address of the second shared memory 14 storing the fourth data from the first simulation execution unit 112b. The fifth address notification unit 115 divides the information related to the fourth address of the second shared memory 14 into segments of a size defined by the FMI standard, and transmits the fourth notification to the first transmission unit 15, and the fourth notification includes the divided information segments related to the fourth address of the second shared memory 14 (step S202). As described above, the communication path between the fifth address notification unit 115 and the first transmission unit 15 is the sixth communication path via a connection bridge conforming to the FMI standard. That is, the fifth address notification unit 115 transmits the fourth notification to the first transmission unit 15 through socket communication, and socket communication is a method for inter-process communication using the sixth communication path via a connection bridge conforming to the FMI standard.
[0106] In addition to the information related to the fourth address, the fourth notification further includes fourth communication standard information indicating the specific communication standard that the fourth data conforms to. Similar to the information related to the fourth address, the fifth address notification unit 115 also divides the fourth communication standard information into segments of a size defined by the FMI standard, and includes the divided fourth communication standard information segments in the fourth notification.
[0107] Subsequently, the first transmission unit 15 receives the fourth notification through socket communication. The first transmission unit 15 combines the information related to the fourth address (which is divided into segments of a size defined by the FMI standard) included in the fourth notification and the fourth communication standard information, and restores the information related to the fourth address and the fourth communication standard information. The first transmission unit 15 determines the communication standard of the fourth data based on the restored fourth communication standard information, and grasps the information about the format according to the communication standard of the fourth data. Based on the information related to the fourth address and the information about the format according to the communication standard of the fourth data, the first transmission unit 15 reads the fourth data from the second shared memory 14 (step S203). In this way, the first transmission unit 15 obtains the fourth data from the first simulator 11b through the fourth communication path including the second shared memory 14.
[0108] Subsequently, the first transmission unit 15 divides the fourth data and the fourth communication standard information into segments of a size defined by the FMI standard, and transmits the divided fourth data and fourth communication standard information to the second transmission unit 23 through socket communication via the eighth communication path via a connection bridge conforming to the FMI standard (step S204).
[0109] Subsequently, the second transmission unit 23 receives the divided fourth data and fourth communication standard information through socket communication. The second transmission unit 23 combines the fourth data and the fourth communication standard information that are divided into segments of a size defined by the FMI standard to restore the fourth data and the fourth communication standard information. The second transmission unit 23 stores the restored fourth data in the third shared memory 22 (step S205).
[0110] In addition, the second transmission unit 23 divides the information related to the fifth address of the third shared memory 22 storing the fourth data into segments of a size defined by the FMI standard, and transmits a fifth notification to the sixth address notification unit 213 of the third simulator 21. The fifth notification includes the divided information segments related to the fifth address of the third shared memory 22 (step S206). As described above, the communication path between the second transmission unit 23 and the sixth address notification unit 213 is the seventh communication path via a connection bridge conforming to the FMI standard. That is, the second transmission unit 23 transmits the fifth notification to the sixth address notification unit 213 through socket communication, and socket communication is a method for inter - process communication using the seventh communication path via a connection bridge conforming to the FMI standard.
[0111] In addition to the information related to the fifth address, the fifth notification also includes the fourth communication standard information. Similar to the information related to the fifth address, the second transmission unit 23 also divides the fourth communication standard information into segments of a size defined by the FMI standard, and includes the divided fourth communication standard information segments in the fifth notification.
[0112] Subsequently, the sixth address notification unit 213 of the third simulator 21 receives a fifth notification through socket communication. The sixth address notification unit 213 combines the information related to the fifth address (which is divided into segments of a size defined by the FMI standard) included in the fifth notification and the fourth communication standard information, and restores the information related to the fifth address and the fourth communication standard information. The sixth address notification unit 213 outputs the restored information related to the fifth address and the fourth communication standard information to the third simulation execution unit 212.
[0113] Subsequently, the third simulation execution unit 212 of the third simulator 21 receives the information related to the fifth address and the fourth communication standard information from the sixth address notification unit 213. The third simulation execution unit 212 determines the communication standard of the fourth data based on the fourth communication standard information. Therefore, the third simulation execution unit 212 grasps the information about the format according to the communication standard of the fourth data. The third simulation execution unit 212 outputs the information related to the fifth address and the information about the format according to the communication standard of the fourth data to the third memory access control unit 211.
[0114] Subsequently, the third memory access control unit 211 of the third simulator 21 receives the information related to the fifth address and the information about the format according to the communication standard of the fourth data from the third simulation execution unit 212. The third memory access control unit 211 reads the fourth data from the third shared memory 22 based on the information related to the fourth address and the information about the format according to the communication standard of the fourth data (step S207). In this way, the third simulator 21 obtains the fourth data from the second transmission unit 23 through the fifth communication path including the third shared memory 22. In addition, the third memory access control unit 211 outputs the read fourth data to the third simulation execution unit 212.
[0115] Subsequently, the third simulation execution unit 212 of the third simulator 21 performs a simulation based on the fourth data (step S208). The third simulation execution unit 212 generates fifth data conforming to a specific communication standard as the simulation result. Here, the communication standard of the fifth data may be the same as the communication standard to which the fourth data conforms.
[0116] When the first simulator 11b performs a simulation by using the fifth data, the third simulator 21 transmits the fifth data to the first simulator 11b via the third shared memory 22, the second transmission unit 23, the first transmission unit 15, and the second shared memory 14. The path for transmitting data from the third simulator 21 to the first simulator 11b is opposite to the path for transmitting data from the first simulator 11b to the third simulator 21. However, since a similar method can be used as the data transmission method, its description will be omitted.
[0117] According to the second embodiment, data is transmitted and received between the first simulator 11b implemented by the first computer 10 and the third simulator 21 implemented by the second computer 20 via the first transmission unit 15 and the second transmission unit 23. Therefore, even when multiple simulators span multiple computers, co-simulation in which multiple simulators cooperate as in the first embodiment can be executed.
[0118] In the first computer 10, the first simulator 11b and the first transmission unit 15 transmit and receive data by using both the fourth communication path and the sixth communication path. In the second computer 20, the third simulator 21 and the second transmission unit 23 transmit and receive data by using both the fifth communication path and the seventh communication path. In the fourth communication path including the second shared memory 14 and the fifth communication path including the third shared memory 22, it is not necessary to develop a connection bridge conforming to the FMI standard.
[0119] On the other hand, in the sixth communication path and the seventh communication path, it is necessary to develop a connection bridge conforming to the FMI standard. However, since the information related to the addresses of the second shared memory 14 and the third shared memory 22 is smaller than the data transmitted and received via the second shared memory 14 and the third shared memory 22, the development man-hours for the connection bridge conforming to the FMI standard in the sixth communication path and the seventh communication path are small. In addition, since the amount of data transmitted and received via the connection bridge conforming to the FMI standard can be suppressed, the execution time of the co-simulation can be shortened. As described above, the co-simulation device 2 according to the second embodiment can obtain the same effect as the co-simulation device according to the first embodiment.
[0120] In the second embodiment, it has been described that the first computer 10 includes the first shared memory 13 and the second shared memory 14, but the first computer 10 may include only the first shared memory 13. In this case, the first transmission unit 15 is connected to the first shared memory 13. That is, the fourth communication path is a path connecting from the first memory access control unit 111b to the first transmission unit 15 via the first shared memory 13.
[0121] In the second embodiment, an example of determining the communication standard of the fourth data based on the fourth communication standard information has been described. However, similar to the modification of the first embodiment, the communication standard of the fourth data can be determined by using different communication paths according to the communication standard of the data to be transmitted and received. In this case, since socket communication ports according to a specific communication standard are used for the transmission and reception of data in each of the sixth to eighth communication paths, it is not necessary to transmit and receive the fourth communication standard information.
[0122] In the first embodiment and the modification of the first embodiment, a co-simulation apparatus 1 and 1a including two simulators are illustrated, and in the second embodiment, a co-simulation apparatus 2 including three simulators is illustrated. However, the number of simulators is not limited to the illustrated number. For example, in the co-simulation apparatus 2 according to the second embodiment, three or more simulators may be included on the first computer 10 side, and two or more simulators may be included on the second computer 20 side. Since the present disclosure can be applied to data transmission and reception between simulators, the more the number of simulators, the more remarkable the effects achieved by the present disclosure.
[0123] Although the present disclosure has been described with reference to the embodiments, the present disclosure is not limited to the above-described embodiments. Within the scope of the present disclosure, various modifications understandable to those skilled in the art can be made to the configuration and details of the present disclosure. Each embodiment can be appropriately combined with another embodiment.
Claims
1. A non-transitory computer-readable medium storing a program for causing a collaborative simulation apparatus to perform a collaborative simulation method, the collaborative simulation apparatus comprising a first simulator, a second simulator different from the first simulator, a first communication path for transmitting and receiving data between the first simulator and the second simulator via a shared memory, and a second communication path for transmitting and receiving data between the first simulator and the second simulator through socket communication, the collaborative simulation method comprising: By the first simulator, storing first data in a format according to a specific communication standard in the shared memory via the first communication path, dividing information related to a first address of the shared memory storing the first data into segments of a size defined by the Functional Model Interface FMI standard, and transmitting a first notification to the second simulator via the second communication path, the first notification including the partitioned information segment associated with the first address of the shared memory; as well as By the second simulator, receiving the first notification via the second communication path, combining the divided pieces of information associated with the first address included in the first notification to restore the information associated with the first address, and The first data stored in the shared memory is read via the first communication path by using the restored information associated with the first address.
2. The non-transitory computer readable medium of claim 1, The collaborative simulation method further comprises: By the second simulator, by performing simulation based on the read first data to generate second data in the format according to the specific communication standard, storing the generated second data in the shared memory via the first communication path, dividing information related to a second address of the shared memory storing the second data into segments of the size defined by the FMI standard, and transmitting a second notification to the first simulator via the second communication path, the second notification including the divided information segment associated with the second address of the shared memory; as well as By the first simulator, receiving the second notification via the second communication path, combining the divided pieces of information associated with the second address included in the second notification to restore the information associated with the second address, and The second data stored in the shared memory is read via the first communication path by using the restored information associated with the second address.
3. The non-transitory computer readable medium of claim 1, The collaborative simulation method further comprises: By the first simulator, dividing the communication standard information indicating the specific communication standard into segments of the size defined by the FMI standard, and including the divided communication standard information fragments in the first notification; as well as By the second simulator, combining the divided communication standard information fragments included in the first notification to restore the communication standard information, and Based on the restored communication standard information, a communication standard of the first data is determined.
4. The non-transitory computer readable medium of claim 1, wherein the specific communication standard is a first communication standard, and The collaborative simulation apparatus further includes a third communication path for transmitting and receiving data through socket communication, and the collaborative simulation method further includes: By the first simulator, storing third data in a format according to a second communication standard in the shared memory via the first communication path, the second communication standard being different from the first communication standard, dividing information related to a third address of the shared memory storing the third data into segments of the size defined by the FMI standard, and transmitting a third notification to the second simulator via the third communication path, the third notification including the divided information fragment associated with the third address of the shared memory; and By the second simulator, receiving the third notification via the third communication path, combining the divided pieces of information associated with the third address included in the third notification to restore the information associated with the third address, and The third data stored in the shared memory is read via the first communication path by using the restored information associated with the third address.
5. The non-transitory computer readable medium of claim 4, The collaborative simulation method further comprises: By the second simulator, determining, based on receipt of the first notification via the second communication path, that the first data is data in the format according to the first communication standard, and Based on receipt of the third notification via the third communication path, it is determined that the third data is data in the format according to the second communication standard.
6. The non-transitory computer readable medium of claim 1, The specific communication standard is any one of a Controller Area Network (CAN), Ethernet, CAN with Flexible Data Rate, and FlexRay.
7. The non-transitory computer readable medium of claim 1, wherein the first simulator is an execution environment for a model-in-the-loop simulation MILS, and The second simulator is an execution environment based on a simulator-based processor-in-the-loop simulation (SPILS) or software-in-the-loop simulation (SILS).
8. The non-transitory computer readable medium of claim 1, wherein the first simulator is a software-in-the-loop simulation of the SILS execution environment, and The second simulator is an execution environment of processor-in-the-loop simulation PILS.
9. The non-transitory computer readable medium of claim 1, The first simulator and the second simulator are implemented by a single computer.
10. The non-transitory computer readable medium of claim 1, wherein the shared memory is a first shared memory, and The collaborative simulation device further includes a third simulator, a first transmission unit, a second transmission unit, a fourth communication path for transmitting and receiving data between the first simulator and the first transmission unit via a second shared memory, a fifth communication path for transmitting and receiving data between the third simulator and the second transmission unit via a third shared memory, a sixth communication path for transmitting and receiving data between the first simulator and the first transmission unit through socket communication, a seventh communication path for transmitting and receiving data between the third simulator and the second transmission unit through socket communication, and an eighth communication path for transmitting and receiving data between the first transmission unit and the second transmission unit through socket communication, and the collaborative simulation method further includes: By the first simulator, storing fourth data in a format according to a specific communication standard in the second shared memory via the fourth communication path, dividing information related to a fourth address of the second shared memory storing the fourth data into segments of the size defined by the FMI standard, and transmitting a fourth notification to the first transmission unit via the sixth communication path, the fourth notification including the divided information fragments associated with the fourth address of the second shared memory; By the first transmission unit, receiving the fourth notification via the sixth communication path, combining the divided information fragments related to the fourth address included in the fourth notification to restore the information related to the fourth address, reading the fourth data stored in the second shared memory via the fourth communication path by using the restored information associated with the fourth address, dividing the read fourth data into the sizes defined by the FMI standard, and transmitting the divided fourth data segments to the second transmission unit via the eighth communication path; By the second transmission unit, receiving the divided fourth data segments via the eighth communication path, combining the divided fourth data fragments to restore the fourth data, storing the restored fourth data in the third shared memory via the fifth communication path, dividing information related to a fifth address of the third shared memory storing the fourth data into segments of the size defined by the FMI standard, and transmitting a fifth notification to the third simulator via the seventh communication path, the fifth notification including information of the partition associated with the fifth address of the third shared memory; as well as By the third simulator, receiving the fifth notification via the seventh communication path, combining the divided pieces of information associated with the fifth address included in the fifth notification to restore the information associated with the fifth address, and The fourth data stored in the third shared memory is read via the fifth communication path by using the restored information associated with the fifth address.
11. The non-transitory computer readable medium of claim 10, The collaborative simulation device comprises a first computer and a second computer, wherein the first simulator and the second simulator are implemented by the first computer, and The third simulator is implemented by the second computer.
12. A collaborative simulation method executed in a collaborative simulation device, the collaborative simulation device comprising a first simulator, a second simulator different from the first simulator, a first communication path for transmitting and receiving data between the first simulator and the second simulator via a shared memory, and a second communication path for transmitting and receiving data between the first simulator and the second simulator through socket communication, the collaborative simulation method comprising: By the first simulator, storing first data in a format according to a specific communication standard in the shared memory via the first communication path, dividing information related to a first address of the shared memory storing the first data into segments of a size defined by the FMI standard, and transmitting a first notification to the second simulator via the second communication path, the first notification including the partitioned information segment associated with the first address of the shared memory; as well as By the second simulator, receiving the first notification via the second communication path, combining the divided pieces of information associated with the first address included in the first notification to restore the information associated with the first address, and The first data stored in the shared memory is read via the first communication path by using the restored information associated with the first address.
13. The collaborative simulation method according to claim 12, further comprising: By the second simulator, by performing simulation based on the read first data to generate second data in the format according to the specific communication standard, storing the generated second data in the shared memory via the first communication path, dividing information related to a second address of the shared memory storing the second data into segments of the size defined by the FMI standard, and transmitting a second notification to the first simulator via the second communication path, the second notification including the divided information segment associated with the second address of the shared memory; as well as By the first simulator, receiving the second notification via the second communication path, combining the divided pieces of information associated with the second address included in the second notification to restore the information associated with the second address, and The second data stored in the shared memory is read via the first communication path by using the restored information associated with the second address.
14. The collaborative simulation method according to claim 12, further comprising: By the first simulator, dividing the communication standard information indicating the specific communication standard into segments of the size defined by the FMI standard, and including the divided communication standard information fragments in the first notification; as well as By the second simulator, combining the divided communication standard information fragments included in the first notification to restore the communication standard information, and Based on the restored communication standard information, a communication standard of the first data is determined.
15. The collaborative simulation method according to claim 12, wherein the specific communication standard is a first communication standard, and The collaborative simulation apparatus further includes a third communication path for transmitting and receiving data through socket communication, and the collaborative simulation method further includes: By the first simulator, storing third data in a format according to a second communication standard in the shared memory via the first communication path, the second communication standard being different from the first communication standard, dividing information related to a third address of the shared memory storing the third data into segments of the size defined by the FMI standard, and transmitting a third notification to the second simulator via the third communication path, the third notification including the divided information fragment associated with the third address of the shared memory; and By the second simulator, receiving the third notification via the third communication path, combining the divided pieces of information associated with the third address included in the third notification to restore the information associated with the third address, and The third data stored in the shared memory is read via the first communication path by using the restored information associated with the third address.
16. The collaborative simulation method according to claim 15, further comprising: By the second simulator, determining, based on receipt of the first notification via the second communication path, that the first data is data in the format according to the first communication standard, and Based on receipt of the third notification via the third communication path, it is determined that the third data is data in the format according to the second communication standard.
17. A collaborative simulation device, comprising: First Simulator; a second simulator, different from the first simulator; Shared memory; a first communication path for transmitting and receiving data between the first simulator and the second simulator via the shared memory; as well as a second communication path for transmitting and receiving data between the first simulator and the second simulator through socket communication, The first simulator storing first data in a format according to a specific communication standard in the shared memory via the first communication path, dividing information related to a first address of the shared memory storing the first data into segments of a size defined by the FMI standard, and transmitting a first notification to the second simulator via the second communication path, the first notification including the divided information fragment associated with the first address of the shared memory, and The second simulator receiving the first notification via the second communication path, combining the divided pieces of information associated with the first address included in the first notification to restore the information associated with the first address, and The first data stored in the shared memory is read via the first communication path by using the restored information associated with the first address.
18. The collaborative simulation device according to claim 17, The second simulator by performing simulation based on the read first data to generate second data in the format according to the specific communication standard, storing the generated second data in the shared memory via the first communication path, dividing information related to a second address of the shared memory storing the second data into segments of the size defined by the FMI standard, and transmitting a second notification to the first simulator via the second communication path, the second notification including the divided information fragment associated with the second address of the shared memory, and The first simulator receiving the second notification via the second communication path, combining the divided pieces of information associated with the second address included in the second notification to restore the information associated with the second address, and The second data stored in the shared memory is read via the first communication path by using the restored information associated with the second address.
19. The collaborative simulation device according to claim 17, wherein the first simulator, dividing the communication standard information indicating the specific communication standard into segments of the size defined by the FMI standard, and including the divided communication standard information fragments in the first notification, and The second simulator, combining the divided communication standard information fragments included in the first notification to restore the communication standard information, and Based on the restored communication standard information, a communication standard of the first data is determined.
20. The collaborative simulation device according to claim 17, wherein the specific communication standard is a first communication standard, wherein the collaborative simulation device further comprises a third communication path for transmitting and receiving data via socket communication, wherein the first simulator, storing third data in a format according to a second communication standard in the shared memory via the first communication path, the second communication standard being different from the first communication standard, dividing information related to a third address of the shared memory storing the third data into segments of the size defined by the FMI standard, and transmitting a third notification to the second simulator via the third communication path, the third notification including the divided information fragment associated with the third address of the shared memory, and The second simulator, receiving the third notification via the third communication path, combining the divided pieces of information related to the third address included in the third notification to restore the information related to the third address, reading the third data stored in the shared memory via the first communication path by using the restored information associated with the third address, determining, based on receipt of the first notification via the second communication path, that the first data is data in the format according to the first communication standard, and Based on receipt of the third notification via the third communication path, it is determined that the third data is data in the format according to the second communication standard.
Citation Information
Patent Citations
Virtual developmental environment apparatus, method, and recording medium
JP2023012395A