# US 9,829,881 B2 · Supervisory process control and manufacturing information system application having an extensible component model

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,829,881 B2
- Document ID: US9829881B2
- Status: Granted
- Kind: B2
- Application number: 14/520,073
- Filed: 2014-10-21
- Published: 2015-02-05
- Granted: 2017-11-28
- Earliest claimed: 2001-06-22
- Assignees: Schneider Electric Software, LLC
- Applicants: Invensys Systems, Inc.
- Inventors: Robert M. Resnick; James P. McIntyre; Laurence G. LeBlanc; Timothy Sowell, Sr.; Brian Erickson; Pankaj H. Mody
- Web page: https://patentgrep.com/patent/US9829881B2

## CPC

- G05B 19/4063: Monitoring general control system (G05B19/4062 takes precedence)
- G05B 15/02: electric
- G05B 19/4155: characterised by program execution, i.e. part program or machine function execution, e.g. selection of a program
- G05B 23/0213: {Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols}
- G06F 8/36: Software reuse
- G06F 8/60: Software deployment
- G05B 2219/34425: Same microprocessor for programming and for machine control
- G05B 2219/34427: Diagnostic, monitoring incorporated in controller
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A template-based supervisory process control and manufacturing information application development facility is disclosed that includes a number of time-saving application development tools that significantly enhance design productivity and allow re-using of previously developed application building blocks. The development facility includes an application object template library that stores a set of previously defined application object templates. The template library is accessed by developers through a configuration utility that facilitates specifying instances of the set of previously defined application object templates to be included in an application. Thereafter, application objects are instantiated from the selected ones of the set of previously defined application object templates in a build of the specified application.

## Claims

### Claim 1

A configuration and execution facility for specifying a deployment model for supervisory process control and manufacturing information applications for associating application objects to particular physical computing devices and providing a view of the distribution of the objects upon the physical computing devices, the configuration and execution facility comprising:
a processor;
a memory storage device coupled to the processor;
an engine object, stored on the memory storage device, wherein the engine object executes upon one of the physical computing devices;
a plurality of application objects, stored on the memory storage device, wherein each of the plurality of application objects is associated with the engine object;
a scheduler object, stored on the memory storage device, wherein the scheduler object is associated with the engine object;
processor-executable instructions, stored on the memory storage device, comprising instructions for:
registering, by the engine object, the plurality of application objects with the scheduler object;
determining, by the engine object, an execution schedule of the application objects;
communicating, by the engine object, the determined execution schedule to the scheduler object;
maintaining, by the scheduler object, a list of registered objects;
executing, by the scheduler object, the determined execution schedule of the application objects.

### Claim 2 (depends on 1)

The configuration and execution facility of claim 1, wherein the processor-executable instructions further comprise instructions for tracking, by the scheduler object, statistics pertaining to the execution schedule of the application objects.

### Claim 3 (depends on 2)

The configuration and execution facility of claim 2, wherein the tracked statistics comprise at least one of the time taken to execute each object per cycle, the time taken to complete housekeeping operations, idle time during a cycle, and time taken to process an input message.

### Claim 4 (depends on 2)

The configuration and execution facility of claim 2, wherein the processor-executable instructions further comprise instructions for resetting, by the scheduler object, the tracked statistics pertaining to the execution schedule of the application objects.

### Claim 5 (depends on 1)

The configuration and execution facility of claim 1, wherein the plurality of application objects comprise application interfaces by which the scheduler object may access the application objects to initiate an execution of the objects.

### Claim 6 (depends on 1)

The configuration and execution facility of claim 1, wherein the processor-executable instructions further comprise instructions for unregistering, by the engine object, one of the plurality of application objects with the scheduler object, wherein the one application object of the plurality of application objects has previously been registered with the scheduler object.

### Claim 7

A configuration and execution processor-executable method for specifying a deployment model for supervisory process control and manufacturing information applications for associating application objects to particular physical computing devices and providing a view of the distribution of the objects upon the physical computing devices, the configuration and execution method comprising processor-executable instructions for:
storing, on a memory storage device, an engine object, a plurality of application objects, and a scheduler object, wherein each of the plurality of application objects is associated with the engine object and the scheduler object is associated with the engine object;
executing, on a physical computing device, the engine object, the plurality of application objects, and the scheduler object, the executing comprising:
registering, by the engine object, the plurality of application objects with the scheduler object;
determining, by the engine object, an execution schedule of the application objects;
communicating, by the engine object, the determined execution schedule to the scheduler object;
maintaining, by the scheduler object, a list of registered objects;
executing, by the scheduler object, the determined execution schedule of the application objects.

### Claim 8 (depends on 7)

The configuration and execution method of claim 7, wherein the executing further comprises tracking, by the scheduler object, statistics pertaining to the execution schedule of the application objects.

### Claim 9 (depends on 8)

The configuration and execution method of claim 8, wherein the tracked statistics comprise at least one of the time taken to execute each object per cycle, the time taken to complete housekeeping operations, idle time during a cycle, and time taken to process an input message.

### Claim 10 (depends on 8)

The configuration and execution method of claim 8, wherein the executing further comprises resetting, by the scheduler object, the tracked statistics pertaining to the execution schedule of the application objects.

### Claim 11 (depends on 7)

The configuration and execution method of claim 7, wherein the plurality of application objects comprise application interfaces by which the scheduler object may access the application objects to initiate an execution of the objects.

### Claim 12 (depends on 7)

The configuration and execution method of claim 7, wherein the executing further comprises unregistering, by the engine object, one of the plurality of application objects with the scheduler object, wherein the one application object of the plurality of application objects has previously been registered with the scheduler object.

### Claim 13

A non-transitory computer-readable medium for specifying a deployment model for supervisory process control and manufacturing information applications for associating application objects to particular physical computing devices and providing a view of the distribution of the objects upon the physical computing devices, comprising instructions stored thereon that, when executed on a processor, perform the steps of:
storing, on a memory storage device, an engine object, a plurality of application objects, and a scheduler object, wherein each of the plurality of application objects is associated with the engine object and the scheduler object is associated with the engine object;
executing, on a physical computing device, the engine object, the plurality of application objects, and the scheduler object, the executing comprising:
registering, by the engine object, the plurality of application objects with the scheduler object;
determining, by the engine object, an execution schedule of the application objects;
communicating, by the engine object, the determined execution schedule to the scheduler object;
maintaining, by the scheduler object, a list of registered objects;
executing, by the scheduler object, the determined execution schedule of the application objects.

### Claim 14 (depends on 13)

The computer-readable medium of claim 13, wherein the executing further comprises tracking, by the scheduler object, statistics pertaining to the execution schedule of the application objects.

### Claim 15 (depends on 14)

The computer-readable medium of claim 14, wherein the tracked statistics comprise at least one of the time taken to execute each object per cycle, the time taken to complete housekeeping operations, idle time during a cycle, and time taken to process an input message.

### Claim 16 (depends on 14)

The computer-readable medium of claim 14, wherein the executing further comprises resetting, by the scheduler object, the tracked statistics pertaining to the execution schedule of the application objects.

### Claim 17 (depends on 13)

The computer-readable medium of claim 13, wherein the plurality of application objects comprise application interfaces by which the scheduler object may access the application objects to initiate an execution of the objects.

### Claim 18 (depends on 13)

The computer-readable medium of claim 13, wherein the executing further comprises unregistering, by the engine object, one of the plurality of application objects with the scheduler object, wherein the one application object of the plurality of application objects has previously been registered with the scheduler object.
