IP Library › Granted Patent US 12,461,500
Granted Patent B2
US 12,461,500 · App. 18/060,031 · Granted Nov 4, 2025

Automation program controller allocation

Inventors: Anthony Carrara (Strongsville, OH); Lorenzo P. Majewski (Waukesha, WI); Christopher E. Stanek (Willoughby, OH)
Assignee: ROCKWELL AUTOMATION TECHNOLOGIES, INC.
G05B19/056G05B19/054
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 12,461,500
App. No.
18/060,031
Granted
Nov 4, 2025
Kind
B2
Abstract

An industrial integrated development environment (IDE) supports decoupled development of industrial control programs without requiring the programs to be initially bound to a specific industrial controller. The IDE system allows industrial control programs to be defined as smart objects within an industrial control project. These smart objects can be created without an initial binding to an industrial controller, and can subsequently be assigned to selected industrial controllers after development of the control programs is complete, or while program development is in progress. A smart object can be reused and deployed to multiple industrial controllers, providing a simple means to implement common control functionality on multiple different automation systems. To allow for deployment of smart objects to selected controllers, the IDE system supports creation of a control project having a one-to-many relationship with industrial controllers, such that multiple controllers can be defined within a single project.

Claims (67)

1 . A system, comprising:

a memory that stores executable components; and

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

a user interface component configured to render a project development interface and to receive, via interaction with the project development interface, programming input that defines an industrial control program as part of an industrial control project, wherein the industrial control program is initially unassigned to an industrial controller;

a project generation component configured to, in response to receipt, via interaction with the project development interface, of an instruction to assign a portion of the industrial control program to a controller definition representing an industrial controller, define, as part of the industrial control project, a binding between the portion of the industrial control program and the controller definition; and

a project deployment component configured to, in response to receipt of an instruction to export executable content associated with the controller definition, export, based on the binding, the portion of the industrial control program in a format capable of execution on the industrial controller represented by the controller definition,

wherein

the portion of the industrial control program is a selected subset of control routines of the industrial control program less than an entirety of the control routines,

exporting of the portion of the industrial control program to the industrial controller configures the industrial controller to monitor and control an automation system in accordance with the selected subset of the control routines, and

the binding configures the industrial control project to assign a copy of the portion of the industrial control program to the industrial controller represented by the controller definition.

2 . The system of claim 1 , wherein the user interface component is configured to render a list of controller definitions, including the controller definition, that are defined as part of the industrial control project, and to receive a selection of the controller definition to which the portion of the industrial control program is to be assigned via interaction with the list.

3 . The system of claim 1 , wherein the controller definition defines at least one of a type of the industrial controller, an I/O configuration of the industrial controller, a vendor of the industrial controller, a model number of the industrial controller, functionality supported by the industrial, a processing capacity of the industrial controller, or an amount of storage capacity supported by the industrial controller.

4 . The system of claim 1 , wherein

the controller definition is a first controller definition,

the portion is a first portion of the industrial control program, and

the project generation component is further configured to, in response to receipt, via interaction with the project development interface, of an instruction to assign a second portion of the industrial control program to a second controller definition, define, as part of the industrial control project, a binding between the second portion of the industrial control program and the second controller definition,

wherein the second portion of the industrial control program is different than the first portion.

5 . The system of claim 1 , wherein the project generation component is configured to

create a smart object definition that represents the industrial control program based on the programming input, and

in response to receipt of the instruction to assign the portion of the industrial control program to the controller definition, bind an instance of an aspect of the smart object definition corresponding to the portion of the industrial control program to the controller definition.

6 . The system of claim 5 , wherein the user interface component is further configured to

render a navigation tree that comprises browsable smart object nodes representing smart object definitions, including the smart object definition, that are defined for the industrial control project, and

receive the instruction to assign the portion of the industrial control program to the controller definition via interaction with the navigation tree.

7 . The system of claim 5 , wherein the smart object definition and instance of the aspect of the smart object definition comprise the industrial control program and associated data tag definitions.

8 . The system of claim 1 , wherein the industrial control program is at least one of a ladder logic program, a sequential function chart, structured text, a function block diagram, or an industrial domain-specific language.

9 . A method, comprising:

receiving, by a system comprising a processor via interaction with a project development interface, programming input that defines an industrial control program as part of an industrial control project, wherein the industrial control program is initially unallocated to an industrial controller;

in response to receiving, via interaction with the project development interface, an instruction to allocate a subset of the industrial control program to a controller definition corresponding to an industrial controller, binding, by the system, the subset of the industrial control program to the controller definition; and

in response to receiving an instruction to export executable content associated with the controller definition, exporting, by the system based on the binding, the subset of the industrial control program in a format capable of execution on the industrial controller represented by the controller definition,

wherein

the subset of the industrial control program is a selected subset of control routines of the industrial control program less than an entirety of the control routines,

the binding configures the industrial control project to allocate a copy of the subset of the industrial control program to the industrial controller represented by the controller definition, and

the exporting configures the industrial controller to monitor and control an automation system in accordance with the selected subset of the control routines.

10 . The method of claim 9 , wherein the receiving of the instruction to allocate the subset of the industrial control program to the controller definition comprises:

rendering a list of controller definitions, including the controller definition, that are defined as part of the industrial control project, and

receiving a selection of the controller definition to which the subset of the industrial control program is to be allocated via interaction with the list.

11 . The method of claim 9 , wherein the controller definition defines at least one of a type of the industrial controller, an I/O configuration of the industrial controller, a vendor of the industrial controller, a model number of the industrial controller, functionality supported by the industrial, a processing capacity of the industrial controller, or an amount of storage capacity supported by the industrial controller.

12 . The method of claim 10 , wherein

the controller definition is a first controller definition,

the subset is a first subset of the industrial control program, and

the method further comprises:

in response to receiving, via interaction with the project development interface, an instruction to allocate a second subset of the industrial control program to a second controller definition, binding, by the system, the second subset of the industrial control program and the second controller definition,

wherein the second subset of the industrial control program is different than the first subset.

13 . The method of claim 9 , further comprising:

creating, by the system, a smart object definition that represents the industrial control program based on the programming input, and

in response to the receiving of the instruction to allocate the subset of the industrial control program to the controller definition, binding, by the system, an instance of an aspect of the smart object definition representing the subset of the industrial control program to the controller definition.

14 . The method of claim 13 , wherein the receiving of the instruction to allocate the subset of the industrial control program comprises:

displaying a navigation tree that comprises browsable smart object nodes representing smart object definitions, including the smart object definition, that are defined for the industrial control project, and

receiving the instruction to allocate the subset of the industrial control program to the controller definition via interaction with the navigation tree.

15 . The method of claim 13 , wherein the smart object definition and instance of the aspect of the smart object definition comprise the industrial control program and associated data tag definitions.

16 . The method of claim 9 , wherein the industrial control program is at least one of a ladder logic program, a sequential function chart, structured text, a function block diagram, or an industrial domain-specific language.

17 . 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:

receiving, via interaction with a project development interface, design input that defines an industrial control project comprising an industrial control program, wherein the industrial control program is initially unassigned to an industrial controller;

in response to receiving, via interaction with the project development interface, an instruction to assign a portion of the industrial control program to a controller definition representing an industrial controller, defining, as part of the industrial control project, a binding between the portion of the industrial control program and the controller definition, wherein the portion of the industrial control program is a selected subset of control routines of the industrial control program less than an entirety of the control routines; and

in response to receiving an instruction to export executable content associated with the controller definition, exporting, based on the binding, the portion of the industrial control program in a format capable of execution on the industrial controller represented by the controller definition,

wherein

the binding configures the industrial control project to assign a copy of the portion of the industrial control program to the industrial controller represented by the controller definition, and

the exporting configures the industrial controller to monitor and control an automation system in accordance with the selected subset of the control routines.

18 . The non-transitory computer-readable medium of claim 17 , wherein the receiving of the instruction to allocate the portion of the industrial control program to the controller definition comprises:

rendering a list of controller definitions, including the controller definition, that are defined as part of the industrial control project, and

receiving a selection of the controller definition to which the portion of the industrial control program is to be allocated via interaction with the list.

19 . The non-transitory computer-readable medium of claim 17 , wherein the controller definition defines at least one of a type of the industrial controller, an I/O configuration of the industrial controller, a vendor of the industrial controller, a model number of the industrial controller, functionality supported by the industrial, a processing capacity of the industrial controller, or an amount of storage capacity supported by the industrial controller.

20 . The non-transitory computer-readable medium of claim 17 , wherein

the controller definition is a first controller definition,

the portion is a first portion of the industrial control program, and

the operations further comprise, in response to receiving, via interaction with the project development interface, an instruction to allocate a second portion of the industrial control program to a second controller definition, binding the second portion of the industrial control program and the second controller definition,

wherein the second portion of the industrial control program is different than the first portion.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2022
From: CARRARA, ANTHONY; MAJEWSKI, LORENZO P.; STANEK, CHRISTOPHER E.
To: ROCKWELL AUTOMATION TECHNOLOGIES, INC.
Reel/Frame 061918/0825 →
Continuity (1)
Related Publication 20240176320A1 · May 30, 2024
References Cited (33)
US 6981226B2 · Schmitt et al. · 2005 [cited by applicant]
US 7627860B2 · Kodosky et al. · 2009 [cited by applicant]
US 7836122B2 · Edwards et al. · 2010 [cited by applicant]
US 8041435B2 · Plache et al. · 2011 [cited by applicant]
US 8060834B2 · Lucas et al. · 2011 [cited by applicant]
US 8185892B2 · Lucas et al. · 2012 [cited by applicant]
US 8818757B2 · Plache et al. · 2014 [cited by applicant]
US 8898633B2 · Bryant et al. · 2014 [cited by applicant]
US 8914794B2 · Bliss et al. · 2014 [cited by applicant]
US 10275265B1 · Gould · 2019 [cited by examiner]
US 10592260B1 · Gould · 2020 [cited by examiner]
US 10754667B1 · Cu-Unjieng et al. · 2020 [cited by applicant]
US 11726457B2 · Stump et al. · 2023 [cited by applicant]
US 20070129814A1 · Dionne · 2007 [cited by applicant]
US 20160026457A1 · Scheidel et al. · 2016 [cited by applicant]
US 20170357249A1 · Sandler et al. · 2017 [cited by applicant]
US 20190146435A1 · Brandes et al. · 2019 [cited by applicant]
US 20200103850A1 · Stump et al. · 2020 [cited by applicant]
US 20210096704A1 · Ericsson et al. · 2021 [cited by applicant]
US 20210096824A1 · Stump et al. · 2021 [cited by applicant]
US 20220299982A1 · Stump et al. · 2022 [cited by applicant]
US 20220334807A1 · Rai et al. · 2022 [cited by applicant]
EP 1213633A1 · 2002 [cited by applicant]
Notice of Allowance received for U.S. Appl. No. 18/060,090, dated Apr. 4, 2024, 52 pages. [cited by applicant]
Gupta, Ashutosh, “Toward a Smart Object-based Application and thus Reusability”, IEEE, Feb. 13-15, 2020, pp. 112-114. [cited by applicant]
Fischer et al., “Reuse Assessment of IEC 61131-3 Control Software Modules Using Metrics—An Industrial Case Study”, IEEE, 2021, 8 pages. [cited by applicant]
Extended European Search Report received for European Patent Application Serial No. 23212258.0 dated May 6, 2024, 7 pages. [cited by applicant]
Extended European Search Report received for European Patent Application Serial No. 23212563.3 dated May 2, 2024, 7 pages. [cited by applicant]
Extended European Search Report received for European Patent Application Serial No. 23212557.5 dated May 2, 2024, 7 pages. [cited by applicant]
Extended European Search Report received for European Patent Application Serial No. 23212262.2 dated Apr. 18, 2024, 10 pages. [cited by applicant]
Non-Final Office Action received for U.S. Appl. No. 18/060,100 dated Sep. 4, 2025, 34 pages. [cited by applicant]
Zhang, Eryi, “The Application of Industrial Automation Computer Control System”, IEEE, 2022, 4 pages. [cited by applicant]
Soufian, M., “Towards Self-Defending Control Systems in Cybersecurity Analysis and Measures in Industrial Automation Systems”, IEEE, 2017, 6 pages. [cited by applicant]