CN113039613B - Method and system for synchronizing a first simulation system and a second simulation system - Google Patents
Method and system for synchronizing a first simulation system and a second simulation system Download PDFInfo
- Publication number
- CN113039613B CN113039613B CN201880099182.9A CN201880099182A CN113039613B CN 113039613 B CN113039613 B CN 113039613B CN 201880099182 A CN201880099182 A CN 201880099182A CN 113039613 B CN113039613 B CN 113039613B
- Authority
- CN
- China
- Prior art keywords
- simulation system
- simulation
- virtual
- scale factor
- speed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 170
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000011156 evaluation Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 19
- 238000012545 processing Methods 0.000 description 38
- 230000006870 function Effects 0.000 description 20
- 238000004519 manufacturing process Methods 0.000 description 11
- 238000003860 storage Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 5
- 238000011960 computer-aided design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/056—Programming the PLC
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B17/00—Systems involving the use of models or simulators of said systems
- G05B17/02—Systems involving the use of models or simulators of said systems electric
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/05—Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G05B19/052—Linking several PLC's
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13063—Synchronization between modules
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13174—Pc, computer connected to plc to simulate machine
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/13—Plc programming
- G05B2219/13176—Functionality of a complex controlled systems, composed of sub-systems
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/10—Plc systems
- G05B2219/15—Plc structure of the system
- G05B2219/15126—Calculate duration of cycle
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/02—CAD in a network environment, e.g. collaborative CAD or distributed simulation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
The invention discloses a kind ofMethods and systems for synchronizing a first simulation system (PLCSIM) and a second simulation system (Process simulation), each operating in a free-running operation, exchanging data to run the simulation systems; comprising the following steps: a) Enabling a first simulation system (PLCSIM) to run periodically at a substantially linear speed, wherein the first simulation system is configured to periodically run at a substantially linear speed by repeatedly setting a scale factor (s n ) To determine the speed; b) Enabling a second simulation system (process simulation) to run periodically at different speeds; c) Executing the first simulation system and the second simulation system, wherein the second simulation system requests a virtual timestamp from the first simulation system at the end of the period; d) Calculating a virtual duration Δt based on the requested virtual timestamp from the first simulation system nfs And calculating a virtual duration Δt based on the virtual timestamp after the period of the second simulation system is completed nss The method comprises the steps of carrying out a first treatment on the surface of the e) By the latest scale factor s n Multiplied by delta t nss /Δt nfs To calculate an update s of the scale factor n+1 The method comprises the steps of carrying out a first treatment on the surface of the And f) applying the updated scale factor s n+1 To determine the speed of the first simulation system during the next cycle of the second simulation system.
Description
The present disclosure relates generally to computer-aided design (CAD), computer-aided manufacturing (CAM), computer-aided engineering (CAE), visualization, simulation and manufacturing systems, product data management (product data management, PDM) systems, product lifecycle management (product lifecycle management, PLM) systems, and the like (collectively referred to herein as product systems) for creating, using, and managing data for products and other items.
Background
In today's automated and engineering systems for designing and producing products, simulation of the design and manufacturing process can greatly facilitate efficient design and production of the product. Especially inA large number of software products are available in the market, which create a digital twinning of the product during its entire life cycle.
With respect to simulation systems, a wide variety of industrial simulation systems are available. Some systems allow for simulating the production process of a product, others simulate the product logic controller functions during the production process. In particular, simulation systems that simulate the production process of a product, such as the casting of a metal piece, etc., typically simulate the evolution of a future production process. For example, the simulation system generates a video stream for the next 100ms of the production process. These 100ms are time spans on a virtual time scale. However, calculations for these 100ms may need to be greater or less than 100ms on a practical time scale. In other words, such a simulation system observes how much time effectively passes on the actual time scale per 100ms slot on the virtual time scale. This results in a plot of virtual time versus actual time in the form of a step function.
On the other hand, the PLC simulation system (Programmable Logic Control System ) operates in linear steps, resulting in a linear bar of virtual time versus actual time in the graph.
When executing two different simulation systems exchanging data to provide information to the graphical user interface, the problem is the lack of synchronization because the two simulation systems have different virtual time systems. This may cause some timeouts during execution of the simulation system, which may create partial jerky motion (jerky motion) for the virtual production process of the product to be displayed.
To solve this problem, there is a synchronization mechanism that involves two simulation systems entering a frozen state periodically. In the frozen state, execution of the virtual time system and the simulation system is suspended. During the freeze state, the faster simulation system may wait for the slower simulation system to catch up in time. If one of these simulation systems is also visualizing the components (e.g., rendering objects), entering the freeze mode unfortunately causes harsh movements of the components. It is difficult for a user to work with a frequently frozen simulation system.
It is therefore an object of the present invention to provide a method and a system for synchronizing a first simulation system and a second simulation system which avoid the disadvantages of the conventional frozen state in order to synchronize the execution of the two simulation systems.
According to the invention, this object is achieved by a method for synchronizing a first simulation system (PLCSIM) and a second simulation system (Process Stimulate, process simulation), each operating in free-running operation, so as to exchange data to run the simulation systems; the method comprises the following steps:
a) Enabling a first simulation system (PLCSIM) to run at a substantially linear speed over an operational period, wherein the simulation system is configured to perform the simulation by setting a scaling factor (s n ) A constant to determine the speed;
b) Enabling a second simulation system (process simulation) to run with an operation period, wherein a speed within the operation period may vary with the operation period;
c) Executing the first simulation system and the second simulation system, wherein the second simulation system requests a virtual timestamp from the first simulation system at the end of the operation period;
d) Calculating a virtual duration Δt based on the requested virtual timestamp from the first simulation system nfs And calculating a virtual duration Δt based on the virtual timestamp after the completion of the operation cycle of the second simulation system nss ;
e) By the latest scale factor s n Multiplied by delta t nss /Δt nfs To calculate an update s of the scale factor n+1 The method comprises the steps of carrying out a first treatment on the surface of the And
f) Applying the updated scale factor s n+1 To determine a speed of the first simulation system during at least a next operating cycle of the second simulation system.
Furthermore, according to the invention, this object is achieved by a system for synchronizing a first simulation system (PLCSIM) and a second simulation system (process simulation), each operating in a free-running operation, so as to exchange data to run the simulation systems; the system comprises:
a) A first simulation system (PLCSIM) capable of running at a substantially linear speed in operational cycles, wherein the first simulation system (PLCSIM) is configured to perform at least one of the operational cycles by setting a scaling factor (s n ) A constant to determine the speed;
b) A second simulation system (process simulation) capable of running in an operation cycle, wherein the speed within the operation cycle can be varied;
c) An execution engine for executing the first simulation system and the second simulation system, wherein the second simulation system requests a virtual timestamp from the first simulation system at the end of the operation period;
d) An evaluation unit capable of calculating a virtual hold based on the requested virtual timestamp from the first simulation systemDuration Δt nfs And calculating a virtual duration Δt based on the virtual timestamp after the completion of the operation cycle of the second simulation system nss ;
e) An evaluation unit which is also capable of passing the latest scale factor s n Multiplied by delta t nss /Δt nfs To calculate an update s of the scale factor n+1 The method comprises the steps of carrying out a first treatment on the surface of the And
f) An execution engine that is also capable of applying the updated scale factor s n+1 To determine a speed of the first simulation system during at least a next operating cycle of the second simulation system.
Furthermore, according to the invention, the object is achieved by a non-transitory computer readable medium encoded with executable instructions that, when executed, cause at least one processor to perform a method for synchronizing a first simulation system and a second simulation system according to the independent method claim.
These measures allow to synchronize the two simulation systems during execution of the simulation systems by adjusting the speed of the simulation systems executing at linear speed. Thus, any mismatch in the timing of the two simulation systems is corrected during an operational cycle of the simulation system that is not running at a constant speed during the operational cycle.
Another example may include an article of manufacture or an apparatus that comprises a processor, computer, component, controller, device, module, and/or unit based on at least one piece of hardware, software, and/or firmware configured to perform a function corresponding to the described method.
The foregoing has outlined rather broadly the features of the present disclosure so that those skilled in the art may better understand the detailed description that follows.
Additional features and advantages of the disclosure will be described hereinafter which form the subject of the claims. Those skilled in the art will appreciate that they can readily use the disclosed conception and specific embodiment as a basis for modifying or designing other structures for carrying out the same purposes of the present disclosure. Those skilled in the art will also realize that such equivalent constructions do not depart from the spirit and scope of the disclosure in its broadest form.
Furthermore, before the following detailed description is made, it is to be understood that various definitions for certain words and phrases are provided throughout this document, and that those of ordinary skill in the art will understand that such definitions apply to many, if not most, cases of prior and future uses of such defined words and phrases. While some terms may include various embodiments, the appended claims may expressly limit these terms to specific embodiments.
Drawings
FIG. 1 illustrates a functional block diagram of an example system that facilitates synchronization of two simulation systems.
FIG. 2 illustrates a block diagram of a data processing system in which embodiments may be implemented.
FIG. 3 illustrates a flow chart of an example method that facilitates synchronization of two simulation systems.
Fig. 4 shows a graph indicating the effect of the method for synchronization of two simulation systems.
Detailed Description
Various techniques related to a method and system for synchronizing two simulation systems will now be described with reference to the drawings, wherein like reference numerals refer to like elements throughout. The drawings discussed below, and the various embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged device. It should be understood that functions described as being performed by certain system elements may be performed by a plurality of elements. Similarly, for example, one element may be configured to perform functions described as being performed by multiple elements. Numerous innovative teachings of the present application will be described with reference to exemplary non-limiting embodiments.
With reference to FIG. 1, an example data processing system 100 is illustrated, the example data processing system 100 being useful in performing one or more of the implementations described herein. The system 100 may include a combination 110 or portion thereof of a first simulation system 106 (in accordance with executable instructions of a software program) and a second simulation system 108 (in accordance with executable instructions of a software program) configured to execute the various processes and functions described herein by executing at least one processor 102 (e.g., microprocessor/CPU) from a memory 104.
Such memory 104 may correspond to internal or external volatile memory (e.g., main memory, CPU cache, and/or RAM) included in and/or operatively connected to the processor. Such memory 104 may also correspond to non-volatile memory (e.g., flash memory, SSD, hard drive, or other storage device or non-transitory computer readable medium) operatively connected to the processor.
The described data processing system 100 may include at least one input device 112 and at least one display device 114 operatively connected to a processor. The input device may include, for example, a mouse, keyboard, touch screen, or other type of input device capable of providing user input to the processor. The display device may include, for example, an LCD or AMOLED display screen, a monitor, or any other type of display device capable of displaying output from the processor. For example, processor 102, memory 104, software instructions 106, input device 112, and display device 114 may be included as part of a data processing system corresponding to a PC, workstation, server, notebook computer, tablet, mobile phone, or any other type of computing system or any combination thereof.
Data processing system 100 also may include one or more data stores 116. The processor 102 may be configured to manage, retrieve, generate, use, modify, and store data and/or other information described herein from/in the data store 116. Examples of data stores may include databases (e.g., oracle, microsoft SQLServer), file systems, hard drives, SSDs, memory cards, and/or any other type of device or system that stores non-volatile data.
In an example embodiment, the first simulation system 106 and the second simulation system 108 may include one or more PLM software applications, which may be adapted to perform one or more of the processes and functions described herein. PLM software may include Computer Aided Design (CAD), computer Aided Manufacturing (CAM), and Computer Aided Engineering (CAE) software. The first simulation system 106 may be, for example, a virtual PLC system, and the second simulation system 108 may be a process simulation system.
Examples of such PLM software applications may include teamcnter software, tecnomatix process planner (Tecnomatix Process Planner), easy Plan, manufactured by siemens product lifecycle management software company of Plano, texas. However, it should be understood that other product systems that manage, retrieve, generate, use, modify, simulate, and/or store product data may be used to perform the processes and functions described herein.
In an example embodiment, the 3D model may include an entity/surface model of the object corresponding to data specifying a mathematical representation of the 3D volume/surface of the object. Such 3D model data may be drawn by a user using CAD software and/or may be accessed from data store 116 and/or files (e.g., in a CAD format such as JT or STEP or other format for storing geometric curves defining the shape of the part). In addition, it should also be appreciated that 3D model data may be generated from 3D scans of existing physical parts.
FIG. 2 illustrates a block diagram of a data processing system 300 (e.g., a computer system) in which embodiments may be implemented, such as the previously described system 100, and/or other systems configured or otherwise operated on by computer/processor executable instructions, circuitry, or to perform the functions and processes described herein. The depicted data processing system includes at least one processor 302 (e.g., CPU), which processor 302 may be connected to one or more bridges/controllers/buses 304 (e.g., north bridge, south bridge).
One of the buses 304 may include, for example, one or more I/O buses, such as a PCI Express bus. In addition, connected to the various buses in the depicted example may include a main memory 506 (RAM) and a graphics controller 308. Graphics controller 308 may be connected to one or more display devices 510 (e.g., an LCD or AMOLED display screen, a monitor, a VR headset, and/or a projector). It should also be noted that the processor 302 may include a CPU cache memory. Further, in some embodiments, one or more controllers (e.g., graphics cards, south bridges) may be integrated with the CPU (on the same chip or die). Examples of CPU architectures include IA-32, x86-64, and ARM processor architectures.
Other peripheral devices connected to the one or more buses may include a communication controller 312 (ethernet controller, wiFi controller, cellular controller) operable to connect to a Local Area Network (LAN), wide Area Network (WAN), cellular network, and/or other wired or wireless network 314 or communication equipment.
Other components connected to the various buses may include one or more I/O controllers 316, such as a USB controller, a bluetooth controller, and/or a dedicated audio controller (connected to speakers and/or microphones). It should also be appreciated that various peripheral devices may be connected (via various ports and connections) to the I/O controller, including: input devices 318 (e.g., keyboard, mouse, pointer, touch screen, touch pad, drawing pad, trackball, buttons, keypad, game controller, gamepad, camera, microphone, scanner, motion sensing devices that capture motion gestures), output devices 320 (e.g., printer, speaker), or any other type of device operable to provide input to or receive output from a data processing system.
Additionally, it should be appreciated that many devices, referred to as input devices or output devices, may provide input as well as receive output in communication with the data processing system. For example, the processor 302 may be integrated in a housing (e.g., a tablet computer) that includes a touch screen that serves as both an input device and a display device. Further, it should be understood that some input devices (e.g., laptop computers) may include a number of different types of input devices (e.g., touch screens, touch pads, and keyboards). Additionally, it should be appreciated that other peripheral hardware 322 connected to I/O controller 516 may include any type of device, machine, or component configured to communicate with a data processing system.
Additional components connected to the various buses may include one or more storage controllers 324 (e.g., SATA). The storage controller may be connected to a storage device 326, such as one or more storage drives and/or any associated removable media, which may be any suitable non-transitory machine-usable or machine-readable storage medium. Examples include nonvolatile devices, volatile devices, read-only devices, writeable devices, ROM, EPROM, tape storage, hard disk drives, solid-state drives (SSDs), flash memory, optical disk drives (CD, DVD, blu-ray), and other known optical, electrical, or magnetic storage device drives and/or computer media. Also in some examples, a storage device, such as an SSD, may be directly connected to I/O bus 304, such as a PCI Express bus.
A data processing system according to embodiments of the present disclosure may include an operating system 328, software/firmware 330, and a data store 332 (which may be stored on storage device 326 and/or memory 306). Such an operating system may employ a command line interface (command line interface, CLI) shell and/or a graphical user interface (graphical user interface, GUI) shell. The GUI shell allows multiple display windows to be presented simultaneously in a graphical user interface, where each display window provides an interface for a different application or a different instance of the same application. A cursor or pointer in the graphical user interface may be manipulated by a user through a pointing device such as a mouse or touch screen. The position of the cursor/pointer may be changed and/or an event such as clicking a mouse button or touching the touch screen may be generated to activate the desired response. Examples of operating systems that may be used in the data processing system may include Microsoft Windows, linux, UNIX, iOS and Android operating systems. Additionally, examples of data stores include data files, data tables, relational databases (e.g., oracle, microsoft SQL Server), database servers, or any other structure and/or device capable of storing data that may be retrieved by a processor.
Communication controller 312 may be connected to a network 314 (which may or may not be part of data processing system 300), which network 314 may be any local, wide area, remote, private, and/or public data processing system network or combination of networks as known to those skilled in the art, including the Internet. Data processing system 300 may communicate with one or more other data processing systems, such as server 334 (which may correspond, in combination, to a larger data processing system) via network 314. For example, a larger data processing system may correspond to multiple smaller data processing systems implemented as part of a distributed system in which processors associated with several smaller data processing systems may communicate over one or more network connections and may collectively perform tasks described as being performed by a single larger data processing system. Thus, it should be appreciated that when referring to a data processing system, such a system may be implemented across several data processing systems organized in a distributed system in communication with each other via a network.
It should also be understood that the term "controller" refers to any device, system, or part thereof that controls at least one operation, whether such device is implemented in hardware, firmware, software, or any combination thereof. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. The processor and memory described may be included in a controller. Further, the controller may correspond to the described data processing system or any other hardware circuitry operable to control at least one operation.
Additionally, it should be appreciated that the data processing system may include a virtual machine in a virtual machine architecture or cloud environment. For example, processor 302 and associated components may correspond to a combination of one or more virtual machine processors of a virtual machine operating in one or more physical processors of a physical data processing system. Examples of virtual machine architectures include VMware ESCi, microsoft Hyper-V, xen, and KVM.
Further, it should be noted that the processor described herein may correspond to a remote processor located in a data processing system, e.g., a server remote from the display device and input device described herein. In such examples, the described display device and input device may be included in a client data processing system (which may have its own processor) that communicates with a server (which includes a remote processor) over a wired or wireless network (which may include the internet). In some implementations, such a client data processing system may execute, for example, a remote desktop application or may correspond to a portal (portal) device that performs a remote desktop protocol with a server to send input from an input device to the server and receive visual information from the server for display by a display device. Examples of such remote desktop protocols include the RDP and RFB protocols of PCoIP, microsoft of teradic. In another example, such a client data processing system may execute a web browser or a thin client application. Input from the user may be transmitted from the web browser or thin client application for evaluation on the server, presentation by the server, and the image (or series of images) sent back to the client data processing system for display by the web browser or thin client application. Further, in some examples, the remote processor described herein may correspond to a combination of virtual processors of a virtual machine executing in a physical processor of a server.
Those of ordinary skill in the art will appreciate that the hardware depicted for a data processing system may vary with the particular implementation. For example, the data processing system 300 in this example may correspond to a controller, a computer, a workstation, a server, a PC, a notebook computer, a tablet, a mobile phone, and/or any other type of device/system operable to process data and perform the functions and features described herein associated with the operation of the data processing system, computer, processor, software component, and/or controller discussed herein. The depicted examples are provided for purposes of explanation only and are not meant to imply architectural limitations with respect to the present disclosure.
Now, fig. 3 shows the workflow of a method for synchronizing the two simulation systems 106 and 108. The first simulation system and the second simulation system (VPLC, process simulation) operate in a free-running mode. During this operation, they exchange data to run the simulation system and provide the data to display device 114. With respect to method steps, step 1 enables the first simulation system 106 to run at a substantially linear speed in operational cycles, wherein the first simulation system is configured to perform the simulation by setting a scaling factor (s n ) A constant determines the speed.
Step 2 enables the second simulation system 108 (here a 3D simulation tool) to run in an operational cycle, wherein the speed within the operational cycle may vary for the operational cycle.
In step 3, the first simulation system 106 and the second simulation system 108 are executed, wherein the second simulation system 108 requests a virtual timestamp from the first simulation system 106 at the end of the operation period.
In step 4, based on the requested virtual timestamp from the first simulation system, the virtual duration Δt is also calculated using the previous virtual timestamp from the first simulation system 106 nfs . Based on the virtual timestamp after completion of the operational cycle of the second simulation system 108, a virtual duration Δt for the operational cycle is also calculated nss 。
In step 5, the latest scale factor s is used n Multiplied by delta t nfs /Δt nss Calculating an update s of the scale factor n+1 。
In step 6, the updated scale factor s is applied n+1 To determine the speed of the first simulation system 106 during the next operating cycle of the second simulation system 108. This process is also shown in FIG. 4, where FIG. 4 shows the actual time t for executing the two simulation systems 106, 108 r And virtual time t v Graph of characteristics. As mentioned previously, the second simulation system 108 shows a step functionDigital features because after each time span (e.g., 100 ms) of an operational cycle on a virtual time scale, a shorter or longer time may have elapsed on an actual time scale. This produces a step function of the graph for the second simulation system 108 in FIG. 4, producing a constant Δy height of the step, but a different Δx width of the step. To cope with the delay (Deltax>Δy) or acceleration (Δx<Δy), after an execution period (e.g., 100ms virtual time), the second simulation system 108 queries the first simulation system for a virtual timestamp. If the virtual stamp of the first simulation system (106) is greater than the timestamp of the second simulation system (108) (the first simulation system is in front of the second simulation system 108), the scale factor of the next cycle of the first simulation system 106 is reduced to enable the second simulation system to catch up. If the virtual stamp of the first simulation system (106) is less than the timestamp of the second simulation system (108) (the second simulation system 108 is in front of the first simulation system 106), the scale factor of the next cycle of the first simulation system 106 is increased to enable the first simulation system 106 to catch up. Thus, a constant synchronization of the first simulation system and the second simulation system is achieved at the granularity of the virtual cycle time of the second simulation system (108).
In other words, if, for example, the first simulation system 106 is advanced in time compared to the second simulation system 108, the method will slow down the first simulation system 106 because of s n+1 Less than s n . On the other hand, if the first simulation system 106 is temporally lagging, the second simulation system 108 will determine s n+1 Greater than s n To accelerate the first simulation system.
This approach enables the two simulation systems 106, 108 to be synchronized without freezing the operation of the simulation systems. Thus, the harsh representation on the display device 114 is eliminated.
Those skilled in the art will recognize that the complete structure and operation of all data processing systems suitable for use with the present disclosure are not depicted or described herein for simplicity and clarity. Rather, only those data processing systems that are unique to the present disclosure or that are necessary for an understanding of the present disclosure are depicted and described. The remaining construction and operation of data processing system 300 may conform to any of a variety of current implementations and practices known in the art.
As used herein, the terms "component" and "system" are intended to encompass hardware, software, or a combination of hardware and software. Thus, for example, a system or component may be a process, a process executing on a processor, or a processor. Additionally, a component or system may be located on a single device or distributed across several devices.
Further, it is to be understood that the words or phrases used herein should be construed broadly unless otherwise specifically limited in some examples. For example, the terms "include" and "comprise" and their derivatives are intended to be non-limiting inclusive. The singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. Furthermore, the term "and/or (and/or)" as used herein refers to and includes any and all possible combinations of one or more of the associated listed items. The term "or" is inclusive, meaning and/or (and/or), unless the context clearly dictates otherwise. The phrases "associated with … …" and "associated therewith," as well as derivatives thereof, may mean including, being included within … …, interconnected with … …, contained within … …, connected to or connected with … …, coupled to or coupled with … …, communicable with … …, cooperating with … …, interleaved, juxtaposed, proximate, coupled to or combined with … …, having properties of … …, and the like.
Furthermore, although the terms "first," "second," "third," and the like may be used herein to connote various elements, information, functions or acts, the elements, information, functions or acts should not be limited by the terms. Rather, these numerical adjectives are used to distinguish one element, information, function or act from another. For example, a first element, information, function, or act may be referred to as a second element, information, function, or act, and similarly, a second element, information, function, or act may be referred to as a first element, information, function, or act, without departing from the scope of the disclosure.
In addition, unless the context clearly indicates otherwise, the term "adjacent to … …" may mean: an element is relatively close to but not in contact with another element; or the element may be in contact with other parts. Furthermore, unless explicitly stated otherwise, the phrase "based on" is intended to mean "based, at least in part, on".
Although exemplary embodiments of the present disclosure have been described in detail, those skilled in the art will understand that various changes, substitutions, variations and alterations herein disclosed can be made without departing from the spirit and scope of the disclosure in its broadest form.
No description in this application should be construed as implying that any particular element, step, act, or function is a basic element that must be included in the scope of the claims: the scope of patented subject matter is defined only by the allowed claims.
Furthermore, unless the exact word "means for … …" is followed by a word, none of the claims are intended to recite an apparatus plus a function claim structure.
Claims (3)
1. A method for synchronizing a first simulation system and a second simulation system, each simulation system operating in a free-running operation, exchanging data to run the simulation systems; the method comprises the following steps:
a) Enabling the first simulation system to run at a substantially linear speed in operational cycles, wherein the first simulation system is configured to operate at a substantially linear speed by setting a scaling factor s over at least one operational cycle n A constant to determine the speed;
b) Enabling the second simulation system to run with an operational cycle, wherein a speed within the operational cycle is variable;
c) Executing the first simulation system and the second simulation system, wherein the second simulation system requests a virtual timestamp from the first simulation system at the end of an operational cycle;
d) Calculating a virtual duration Δt based on the requested virtual timestamp from the first simulation system nfs And calculating a virtual duration Δt based on the virtual timestamp after the operation cycle of the second simulation system is completed nss ;
e) By the latest scale factor s n Multiplied by delta t nss /Δt nfs To calculate an update s of the scale factor n+1 The method comprises the steps of carrying out a first treatment on the surface of the And
f) Applying the updated scale factor s n+1 To determine a speed of the first simulation system during at least a next operating cycle of the second simulation system.
2. A system for synchronizing a first simulation system and a second simulation system, each simulation system operating in a free-running operation, exchanging data to run the simulation systems; the system comprises:
a) The first simulation system is capable of running at a substantially linear speed over an operational period, wherein the first simulation system is capable of operating at a substantially linear speed over an operational period by setting a scale factor s in at least one operational period n A constant to determine the speed;
b) The second simulation system is operable with an operational cycle, wherein a speed within the operational cycle is variable;
c) An execution engine for executing the first simulation system and the second simulation system, wherein the second simulation system requests a virtual timestamp from the first simulation system at the end of an operation period;
d) An evaluation unit capable of calculating a virtual duration Δt based on the requested virtual timestamp from the first simulation system nfs And calculating a virtual duration Δt based on the virtual timestamp after the operation cycle of the second simulation system is completed nss ;
e) The evaluation unit is also capable of passing the latest scale factor s n Multiplied by delta t nss /Δt nfs To calculate an update s of the scale factor n+1 The method comprises the steps of carrying out a first treatment on the surface of the And
f) The execution engine is further capable of applying the updated scale factor s n+1 To determine a speed of the first simulation system during at least a next operating cycle of the second simulation system.
3. A non-transitory computer readable medium encoded with executable instructions that, when executed, cause at least one processor to perform the method for synchronizing a first simulation system and a second simulation system of claim 1.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2018/001211 WO2020089664A1 (en) | 2018-10-29 | 2018-10-29 | A method and a system for synchronizing a first and a second simulation system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113039613A CN113039613A (en) | 2021-06-25 |
CN113039613B true CN113039613B (en) | 2024-03-29 |
Family
ID=70463558
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880099182.9A Active CN113039613B (en) | 2018-10-29 | 2018-10-29 | Method and system for synchronizing a first simulation system and a second simulation system |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220004159A1 (en) |
EP (1) | EP3874521A4 (en) |
CN (1) | CN113039613B (en) |
WO (1) | WO2020089664A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112351618A (en) * | 2020-11-10 | 2021-02-09 | 河南工业职业技术学院 | Electric automatization control cabinet display device |
CN112989627B (en) * | 2021-04-16 | 2021-08-13 | 成都赢瑞科技有限公司 | Multidisciplinary joint simulation system and method based on virtual time |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102867081A (en) * | 2012-08-23 | 2013-01-09 | 西南交通大学 | Coupling control method for multi-field collaborative simulation computation |
CN104678778A (en) * | 2013-11-08 | 2015-06-03 | 洛克威尔自动控制技术股份有限公司 | Time synchronization of signal transmission intervals for simulating a machine in industrial automation |
WO2018054465A1 (en) * | 2016-09-22 | 2018-03-29 | Siemens Aktiengesellschaft | Method and devices for the synchronised simulation and emulation of automated production systems |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7564809B1 (en) * | 2004-05-06 | 2009-07-21 | Cornell Research Foundation, Inc. | Event-synchronization protocol for parallel simulation of large-scale wireless networks |
US8543367B1 (en) * | 2006-02-16 | 2013-09-24 | Synopsys, Inc. | Simulation with dynamic run-time accuracy adjustment |
US8069021B2 (en) * | 2007-09-28 | 2011-11-29 | Rockwell Automation Technologies, Inc. | Distributed simulation and synchronization |
US20090089029A1 (en) * | 2007-09-28 | 2009-04-02 | Rockwell Automation Technologies, Inc. | Enhanced execution speed to improve simulation performance |
JP5528294B2 (en) * | 2010-10-20 | 2014-06-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Simulation control method, system and program |
KR20140098602A (en) * | 2013-01-31 | 2014-08-08 | 한국전자통신연구원 | System and method for performing distributed simulation |
WO2015166563A1 (en) * | 2014-04-30 | 2015-11-05 | 三菱電機株式会社 | Simulation system, programmable controller, simulation device, and engineering tool |
US20180189431A1 (en) * | 2017-12-18 | 2018-07-05 | Hosni I. Adra | Dynamic simulation models constantly adapting to the changes of complex systems |
-
2018
- 2018-10-29 WO PCT/IB2018/001211 patent/WO2020089664A1/en unknown
- 2018-10-29 EP EP18938993.5A patent/EP3874521A4/en active Pending
- 2018-10-29 CN CN201880099182.9A patent/CN113039613B/en active Active
- 2018-10-29 US US17/289,842 patent/US20220004159A1/en active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102867081A (en) * | 2012-08-23 | 2013-01-09 | 西南交通大学 | Coupling control method for multi-field collaborative simulation computation |
CN104678778A (en) * | 2013-11-08 | 2015-06-03 | 洛克威尔自动控制技术股份有限公司 | Time synchronization of signal transmission intervals for simulating a machine in industrial automation |
WO2018054465A1 (en) * | 2016-09-22 | 2018-03-29 | Siemens Aktiengesellschaft | Method and devices for the synchronised simulation and emulation of automated production systems |
Non-Patent Citations (1)
Title |
---|
分布式虚拟现实仿真系统的时间同步研究;金星 等;《信息与控制》;第37卷(第4期);第391-395页 * |
Also Published As
Publication number | Publication date |
---|---|
WO2020089664A1 (en) | 2020-05-07 |
EP3874521A1 (en) | 2021-09-08 |
CN113039613A (en) | 2021-06-25 |
US20220004159A1 (en) | 2022-01-06 |
EP3874521A4 (en) | 2022-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190188346A1 (en) | System and method for modeling characteristics of a melt pool that forms during an additive manufacturing process | |
CN110168546B (en) | System and method for adaptive domain reduction for thermo-structural simulation of additive manufacturing processes | |
CN110268402B (en) | Systems and methods for providing bead size variation during additive manufacturing to improve geometric accuracy of deposited layers | |
CN110050270B (en) | System and method for visual traceability for product requirements | |
US20190339670A1 (en) | System and method for lattice structure design for additive manufacturing | |
CN113039613B (en) | Method and system for synchronizing a first simulation system and a second simulation system | |
JP6538879B2 (en) | System and method for generating annotations | |
WO2018160163A1 (en) | System and method for determining grasping positions for two-handed grasps of industrial objects | |
EP3443490A1 (en) | System and method for finite element analysis of parts having variable spatial density graded regions produced via 3d printers | |
JP2022527454A (en) | Systems and methods for predicting overheating for additive manufacturing using simulation | |
US10780642B2 (en) | System and method for computing surfaces in a multi-layer part | |
EP3217302A1 (en) | System and method for solving and enforcing associative constraints | |
US11232237B2 (en) | System and method for perception-based selection of features in a geometric model of a part | |
CN107636681B (en) | Drawing object inference system and method | |
CN115576473B (en) | Waveform display method, computer device, and storage medium | |
US20230274042A1 (en) | Engineering a physical system involving enhanced consistency of engineering-related information | |
CN110199280A (en) | For including the method and system for the multiple view CAD that edit operation is propagated across view when ensuring constraint consistency | |
TW201508614A (en) | Method and device for displaying layout information of user interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |