IP Library Granted Patent US 12699818
Granted Patent B2
US 12699818 · App. 17/823,155 · Granted Aug 4, 2026

Parallel emulation for controls testing

Inventor: Bernard Brooks (Workingham, GB)
Assignee: ROCKWELL AUTOMATION TECHNOLOGIES, INC.
G06F30/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12699818
App. No.
17/823,155
Granted
Aug 4, 2026
Kind
B2
Abstract

A control design and testing system simplifies the execution of parallelized control testing simulators using emulation techniques. The system is capable of emulating large and complex industrial systems using a combination of selective model partitioning, space parallel simulation, and co-simulation. According to this approach, a digital model of the industrial automation system is partitioned into sub-models such that inter-model logical relationships between the sub-models comprise only logical relationships that can tolerate a temporal error equal to or less than a duration, or timestep, of a co-simulation cycle. The sub-models are deployed to separate processing spaces, and the system uses co-simulation to execute a parallel emulation of the sub-models.

Claims (59)

1 . A system for emulating industrial automation systems, comprising:

a memory that stores executable components;

a processor, operatively coupled to the memory, that executes the executable components, the executable components comprising:

a partitioning component configured to partition a digital model of an industrial automation system into sub-models;

a simulation component configured to perform a parallel emulation of the sub-models on respective processing spaces using co-simulation;

a node interface component configured to aggregate graphical data from the sub-models and simulation data generated by the processing spaces to yield unified presentation data; and

a user interface component configured to

render, on a client device, an animated graphical representation of the industrial automation system based on the unified presentation data, and

receive, during a current timestep of the parallel emulation, command input via interaction with the animated graphical representation, the command input representing a simulated user interaction with the industrial automation system,

wherein the simulation component is further configured to hold the command input in memory until emulations of the sub-models have advanced to an end of the current timestep, and to synchronize the command input to one or more of the sub-models in response to determining that all of the processing spaces have advanced the emulations of the sub-models to the end of the current timestep.

2 . The system of claim 1 , wherein the partitioning component is configured to partition the digital model based on sub-model designation data that defines a partitioning of the digital model.

3 . The system of claim 2 , wherein the user interface component is further configured to render a graphical representation of the digital model and to receive the sub-model designation data via manual interaction with the graphical representation.

4 . The system of claim 3 , wherein the sub-model designation data further defines, for each sub-model of the sub-models, an identity of a processing space, of the respective processing spaces, to which the sub-model is to be deployed.

5 . The system of claim 2 , wherein the partitioning component is configured to generate the sub-model designation data based on an analysis of the digital model and a defined partitioning criterion.

6 . The system of claim 5 , wherein the defined partitioning criterion specifies that the digital model is to be partitioned such that any simulated events that will be communicated between the sub-models in connection with the parallel emulation are tolerant of temporal errors equal to or less than a defined timestep of the co-simulation.

7 . The system of claim 1 , wherein the executable components further comprise a model deployment component configured to deploy the sub-models to the respective processing spaces.

8 . The system of claim 1 , wherein the processing spaces execute emulations of the sub-models independently of one another in cycles defined by timesteps, including the current timestep, and

for a current cycle of the cycles, the simulation component

instructs the processing spaces to advance the emulations of the sub-models by a duration defined by the current timestep,

in response to determining that all of the processing spaces have advanced the emulations by the duration defined by the current timestep, synchronizes the command input to the one or more of the sub-models and synchronizes at least one simulated event generated by a first of the sub-models to a second of the sub-models, and

instructs the processing spaces to restart the emulations of the sub-models for a next timestep.

9 . The system of claim 1 , wherein the processing spaces comprise separate hardware machines that reside on a common network, separate central processing units, or separate virtual machines that execute on a cloud platform.

10 . A method for emulating industrial automation systems, comprising:

delineating, by a system comprising a processor, a digital model of an industrial automation system into sub-models;

performing, by the system, a parallel emulation of the sub-models on respective separate processing spaces using co-simulation;

aggregating, by the system, graphical data obtained from the sub-models and simulation data generated by the separate processing spaces to yield unified presentation data;

rendering, by the system on a client device, an animated graphical representation of the industrial automation system based on the unified presentation data;

receiving, by the system during a current cycle of the parallel emulation defined by a timestep, command input via interaction with the animated graphical representation, wherein the command input represents a simulated user interaction with the industrial automation system;

in response to determining that emulations of the sub-models have not all advanced to an end of the current timestep, holding, by the system, the command input in memory without synchronizing the command input to the sub-models; and

in response to determining that all of the separate processing spaces have advanced the emulations of the sub-models to the end of the current timestep, synchronizing, by the system, the command input to one or more of the sub-models.

11 . The method of claim 10 , wherein the delineating comprises delineating the digital model in accordance with sub-model designation data that defines a division of the digital model.

12 . The method of claim 11 , further comprising

rendering, by the system, a graphical representation of the digital model; and

receiving, by the system the sub-model designation data via manual interaction with the graphical representation.

13 . The method of claim 12 , wherein the sub-model designation data further defines, for each sub-model of the sub-models, an identity of a processing space, of the respective separate processing spaces, to which the sub-model is to be deployed.

14 . The method of claim 11 , wherein the delineating comprises generating the sub-model designation data based on an analysis of the digital model and a defined partitioning criterion.

15 . The method of claim 10 , further comprising deploying, by the system, the sub-models to the respective separate processing spaces.

16 . The method of claim 10 , wherein the delineating comprises:

analyzing the digital model to identify logical relationships between modeled objects representing components of the industrial automation system;

determining a subset of the logical relationships that are tolerant of temporal errors equal to or less than a defined timestep of the co-simulation; and

delineating the digital model such that logical relationships between the sub-models comprise only logical relationships from the subset of the logical relationships.

17 . The method of claim 10 , wherein the performing of the parallel emulation comprises:

executing, by the processing spaces, respective emulations of the sub-models independently of one another in cycles, including the current cycle, defined by timesteps, and

for the current cycle:

advancing, by the processing spaces, the respective emulations of the sub-models by a duration defined by the current timestep,

in response to determining that all of the processing spaces have advanced the respective emulations by the duration defined by the current timestep, synchronizing at least one simulated event generated by a first of the sub-models to a second of the sub-models, and restarting the respective emulations of the sub-models for a next timestep.

18 . The method of claim 10 , wherein the separate processing spaces comprise separate hardware machines that reside on a common network, separate central processing units, or separate virtual machines that execute on a cloud platform.

19 . A non-transitory computer-readable medium having stored thereon instructions that, in response to execution, cause a system comprising a processor to perform operations, the operations comprising:

dividing a digital model of an industrial automation system into sub-models;

performing a parallel emulation of the sub-models on respective separate processing spaces using co-simulation;

aggregating graphical data obtained from the sub-models and simulation data generated by the separate processing spaces to yield unified presentation data;

rendering, on a client device, an animated graphical representation of the industrial automation system based on the unified presentation data;

receiving, during a current cycle of the parallel emulation defined by a timestep, command input via interaction with the animated graphical representation, the command input representing a simulated user interaction with the industrial automation system;

in response to determining that emulations of the sub-models have not all advanced to an end of the current timestep, holding the command input in memory without synchronizing the command input to the sub-models; and

in response to determining that all of the separate processing spaces have advanced the emulations of the sub-models to the end of the current timestep, synchronizing the command input to one or more of the sub-models.

20 . The non-transitory computer-readable medium of claim 19 , wherein the dividing comprises:

analyzing the digital model to identify logical relationships between modeled objects representing components of the industrial automation system;

determining a subset of the logical relationships that are tolerant of temporal errors equal to or less than a duration of a cycle of the co-simulation; and

dividing the digital model such that inter-model logical relationships between the sub-models comprise only logical relationships from the subset of the logical relationships.