IP Library Granted Patent US 12,412,154
Granted Patent B2
US 12,412,154 · App. 17/197,258 · Granted Sep 9, 2025

Industrial automation smart object inheritance break and singleton creation

Inventors: Andrew R. Stump (Mentor, OH); Anthony Carrara (Strongsville, OH); Eashwer Srinivasan (Fremont, OH); Srdjan Josipovic (Beachwood, OH); Lorenzo Majewski (Milwaukee, WI); Christopher Wayne Como (Mayfield Heights, OH); Christopher Stanek (Mayfield Heights, OH); Matthew R. Ericsson (Lyndhurst, OH)
Assignee: ROCKWELL AUTOMATION TECHNOLOGIES, INC.
G06Q10/101G05B19/0426G06F8/20G06F8/60G06F11/3688G06Q10/06313G06Q10/103G05B2219/23008
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,412,154
App. No.
17/197,258
Granted
Sep 9, 2025
Kind
B2
Abstract

An industrial integrated development environment (IDE) provides a development framework for designing, programming, and configuring multiple aspects of an industrial automation system using a common design environment and data model. Projects creating using embodiments of the IDE system can be built on an object-based model rather than, or in addition to, a tag-based architecture. To this end, the IDE system can support the use of automation objects that serve as building blocks for this object-based development structure. To ensure consistency within and between projects, as well as to ensure that a given industrial project is dynamically updated to reflect changes to an industrial asset's attributes (e.g., control code, visualization definitions, testing scripts, analytic code, etc.), embodiments of the IDE system can use automation object inheritance features to propagate changes made to an automation object definition to all instances of the automation object used throughout a control project.

Claims (66)

1. A system for developing industrial applications, comprising:

a memory that stores executable components and a library of automation objects representing respective industrial assets, the automation objects having respective programmatic attributes associated with the industrial assets; and

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

a user interface component configured to render integrated development environment (IDE) interfaces and to receive, via interaction with the IDE interfaces, industrial design input that defines aspects of an industrial automation project; and

a project generation component configured to generate system project data based on the industrial design input,

wherein

the industrial design input comprises at least an instruction to create an instance of an automation object, selected from the library of automation objects, as part of the system project data,

the system project data defines a system project comprising at least one of an executable industrial control program, an industrial visualization application, or industrial device configuration data, and

the project generation component is further configured to, in response to receipt, via the user interface component subsequent to creation of the instance of the automation object in the system project data, of object edit data that defines an edit to an attribute of the automation object stored in the library,

modify the automation object stored in the library in accordance with the object edit data,

in response to determining that modification of the instance of the automation object in accordance with the object edit data is permitted, modify the instance of the automation object in accordance with the object edit data, and

in response to determining that the modification of the instance of the automation object in accordance with the object edit data is not permitted, deny modification of the instance of the automation object in accordance with the object edit data,

wherein denial of the modification of the instance of the automation object causes the instance to become a singleton instance that differs from the automation object in the library.

2. The system of claim 1 , wherein the project generation component is configured to make a determination, based on analysis of the system project data and the object edit data, that application of the edit to the instance of the automation object will cause an error in the system project, and to deny the modification of the instance based on the determination.

3. The system of claim 1 , wherein the project generation component is configured to make a determination, based on analysis of the system project data and the object edit data, that application of the edit to the instance of the automation object will cause an incompatibility between the instance of the automation object and an instance of another automation object, and to deny the modification of the instance based on the determination.

4. The system of claim 1 , wherein

the user interface component is to receive, as part of the industrial design input, an instruction to disable an inheritance property of the instance of the automation object, and

the project generation component is configured to, in response to determining that the inheritance property is disabled, deny the modification of the instance.

5. The system of claim 1 , wherein

the project generation component is further configured to, in response to receipt of an instruction to save the singleton instance to the library, create a new automation object in the library based on the singleton instance.

6. The system of claim 1 , wherein

the object edit data is first object edit data,

the singleton instance is a first singleton instance, and

the project generation component is further configured to, in response to receipt of second object edit data defining a modification directed to the instance of the automation object, modify the instance of the automation object to yield a second singleton instance of the automation object that differs from the automation object stored in the library.

7. The system of claim 6 , wherein the project generation component is further configured to, in response to receipt of an instruction to save the second singleton instance to the library, create a new automation object in the library based on the second singleton instance of the automation object.

8. The system of claim 1 , wherein the attribute of the automation object is at least one of control code for monitoring and controlling an industrial asset represented by the automation object, a visualization object that defines a graphical visualization of the industrial asset, an alarm definition for the industrial asset, a security feature of the industrial asset, a security protocol of the industrial asset, a test script configured to validate operation of the automation object within the system project, or an analytic script configured to perform an analysis on data generated by the industrial asset.

9. The system of claim 1 , wherein the automation objects represent, as the industrial assets, at least one of an industrial process, a controller, a control program, a tag within the control program, a machine, a motor, a motor drive, a telemetry device, a tank, a valve, a pump, an industrial safety device, an industrial robot, or an actuator.

10. The system of claim 1 , wherein the executable components further comprise a project deployment component configured to

translate the system project data to at least two of the executable industrial control program, the industrial visualization application, or the industrial device configuration data, and

send the at least two of the executable industrial control program, the industrial visualization application, or the industrial device configuration data to respective industrial assets for execution.

11. A method for developing industrial applications, comprising:

storing, by a system comprising a process, a library of automation objects that represent respective industrial assets and have respective programmatic attributes relating to the industrial assets;

rendering, by the system, integrated development environment (IDE) interfaces on a client device;

receiving, by the system via interaction with the IDE interfaces, industrial design input that defines aspects of an industrial control and monitoring project;

generating, by the system, system project data based on the industrial design input, wherein

the generating comprises generating at least one of an executable industrial control program, an industrial visualization application, or industrial device configuration data, and

the generating comprises, in response to determining that the industrial design input selects an automation object, from the library of automation objects, adding an instance of the automation object to the system project data; and

in response to receiving, subsequent to the adding of the instance of the automation object, object edit data that defines an edit to an attribute of the automation object stored in the library:

modifying, by the system, the automation object stored in the library in accordance with the object edit data,

in response to determining that modifying the instance of the automation object in accordance with the object edit data is permitted, modifying, by the system, the instance of the automation object in accordance with the object edit data, and

in response to determining that the modifying of the instance of the automation object in accordance with the object edit data is not permitted, preventing, by the system, the modifying of the instance of the automation object in accordance with the object edit data, wherein the preventing of the modifying causes the instance of the automation object to become a singleton instance that differs from the automation object stored in the library.

12. The method of claim 11 , wherein the determining that the modifying of the instance of the automation object is not permitted comprises determining, based on an analysis of the system project data and the object edit data, that applying the edit to the instance of the automation object will cause an error in the industrial control and monitoring project.

13. The method of claim 11 , wherein the determining that the modifying of the instance of the automation object is not permitted comprises determining, based on an analysis of the system project data and the object edit data, that applying the edit to the instance of the automation object will cause an incompatibility between the instance of the automation object and an instance of another automation object.

14. The method of claim 11 , further comprising:

receiving, by the system as part of the industrial design input, an instruction to disable an inheritance property of the instance of the automation object; and

in response to determining that the inheritance property is disabled, preventing the modifying of the instance.

15. The method of claim 11 , further comprising,

in response to receiving an instruction to save the singleton instance to the library, creating, by the system, a new automation object in the library based on the singleton instance.

16. The method of claim 11 , wherein

the object edit data is first object edit data,

the singleton instance of the automation object is a first singleton instance, and

the method further comprises, in response to receiving second object edit data defining a modification directed to the instance of the automation object, modifying, by the system, the instance of the automation object to yield a second singleton instance of the automation object that differs from the automation object stored in the library.

17. The method of claim 16 , further comprising, in response to receiving an instruction to save the second singleton object to the library, creating, by the system, a new automation object in the library based on the second singleton instance of the automation object.

18. The method of claim 1 , wherein the attribute of the automation object is at least one of control code for monitoring and controlling an industrial asset represented by the automation object, a visualization object that defines a graphical visualization of the industrial asset, an alarm definition for the industrial asset, a security feature of the industrial asset, a security protocol of the industrial asset, a test script configured to validate operation of the automation object within the industrial control and monitoring project, or an analytic script configured to perform an analysis on data generated by the industrial asset.

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:

rendering integrated development environment (IDE) interfaces on a client device;

receiving, from the client device via interaction with the IDE interfaces, industrial design input that defines control design aspects of an industrial automation project;

generating system project data based on the industrial design input, wherein

the system project data comprises at least one of an executable industrial control program, an industrial visualization application, or industrial device configuration data,

the generating comprises, in response to selection of an automation object, from a library of automation objects, for inclusion in the system project data, adding an instance of the automation object to the system project data, and

the automation objects represent respective industrial assets and have respective programmatic attributes relating to the industrial assets; and

in response to receiving, subsequent to the adding of the instance of the automation object, object edit data that defines an edit to an attribute of the automation object stored in the library:

modifying the automation object stored in the library in accordance with the object edit data;

in response to determining that modifying the instance of the automation object in accordance with the object edit data is permitted, modifying the instance of the automation object in accordance with the object edit data; and

in response to determining that the modifying of the instance of the automation object in accordance with the object edit data is not permitted, preventing the modifying of the instance of the automation object in accordance with the object edit data, wherein the preventing of the modifying causes the instance of the automation object to become a singleton instance that differs from the automation object in the library.

20. The non-transitory computer-readable medium of claim 19 , wherein the determining that the modifying of the instance of the automation object is not permitted comprises determining, based on an analysis of the system project data and the object edit data, that applying the edit to the instance of the automation object will cause an error in the industrial automation project.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2021
From: STUMP, ANDREW R; CARRARA, ANTHONY; SRINIVASAN, EASHWER; JOSIPOVIC, SRDJAN; MAJEWSKI, LORENZO; COMO, CHRISTOPHER WAYNE; STANEK, CHRISTOPHER; ERICSSON, MATTHEW R
To: ROCKWELL AUTOMATION TECHNOLOGIES, INC.
Reel/Frame 055546/0554 →
Continuity (1)
Related Publication 20220292457A1 · Sep 15, 2022
References Cited (109)
US 6088693A · Van Huben · 2000 [cited by applicant]
US 6094654A · Van Huben · 2000 [cited by examiner]
US 6170081B1 · Fontana et al. · 2001 [cited by applicant]
US 7210117B2 · Kudukoli et al. · 2007 [cited by applicant]
US 7313609B1 · Wischinski · 2007 [cited by applicant]
US 8352905B2 · Chouinard et al. · 2013 [cited by applicant]
US 8877134B2 · Awaji et al. · 2014 [cited by applicant]
US 8887134B2 · Weatherhead et al. · 2014 [cited by applicant]
US 9342278B2 · Petzoldt et al. · 2016 [cited by applicant]
US 10275265B1 · Gould et al. · 2019 [cited by applicant]
US 10372107B2 · Majewski et al. · 2019 [cited by applicant]
US 10942710B1 · Dunn et al. · 2021 [cited by applicant]
US 10943692B1 · Lynn et al. · 2021 [cited by applicant]
US 11080176B2 · Stump et al. · 2021 [cited by applicant]
US 11243505B2 · Strohmenger et al. · 2022 [cited by applicant]
US 11294360B2 · Miller et al. · 2022 [cited by applicant]
US 11314493B1 · Stump et al. · 2022 [cited by applicant]
US 11429351B2 · Nayak et al. · 2022 [cited by applicant]
US 20030045950A1 · Bronikowski et al. · 2003 [cited by applicant]
US 20060184571A1 · Liu · 2006 [cited by examiner]
US 20060259500A1 · Hood et al. · 2006 [cited by applicant]
US 20080125877A1 · Miller et al. · 2008 [cited by applicant]
US 20090083649A1 · Baier et al. · 2009 [cited by applicant]
US 20090228310A1 · Zayic · 2009 [cited by applicant]
US 20090240348A1 · Chand et al. · 2009 [cited by applicant]
US 20090293005A1 · Hooyman · 2009 [cited by examiner]
US 20100050097A1 · McGreevy et al. · 2010 [cited by applicant]
US 20100082133A1 · Chouinard · 2010 [cited by applicant]
US 20110126111A1 · Gill et al. · 2011 [cited by applicant]
US 20130275908A1 · Reichard · 2013 [cited by applicant]
US 20140100676A1 · Scott · 2014 [cited by applicant]
US 20150105875A1 · Tran et al. · 2015 [cited by applicant]
US 20150287318A1 · Nair et al. · 2015 [cited by applicant]
US 20150341469A1 · Lawson et al. · 2015 [cited by applicant]
US 20160109875A1 · Majewski · 2016 [cited by applicant]
US 20160132037A1 · Weng · 2016 [cited by applicant]
US 20170192414A1 · Mukkamala · 2017 [cited by examiner]
US 20170323112A1 · Tran · 2017 [cited by examiner]
US 20180129793A1 · Ulis · 2018 [cited by applicant]
US 20190302735A1 · Majewski · 2019 [cited by examiner]
US 20200012265A1 · Thomsen et al. · 2020 [cited by applicant]
US 20200103843A1 · Stump et al. · 2020 [cited by applicant]
US 20200103884A1 · Stump et al. · 2020 [cited by applicant]
US 20200225821A1 · Hammack et al. · 2020 [cited by applicant]
US 20200285462A1 · Sabath et al. · 2020 [cited by applicant]
US 20200319767A1 · Hammack et al. · 2020 [cited by applicant]
US 20210089278A1 · Dunn et al. · 2021 [cited by applicant]
US 20210096553A1 · Stump et al. · 2021 [cited by applicant]
US 20210096978A1 · Stump et al. · 2021 [cited by applicant]
US 20210097216A1 · Stump et al. · 2021 [cited by applicant]
US 20210141614A1 · Dunn et al. · 2021 [cited by applicant]
US 20210294734A1 · Stump et al. · 2021 [cited by applicant]
CN 1716137A · 2006 [cited by applicant]
CN 1755564A · 2006 [cited by applicant]
CN 101713963A · 2010 [cited by applicant]
CN 107423268A · 2017 [cited by applicant]
CN 111835628A · 2020 [cited by applicant]
CN 112558974A · 2021 [cited by applicant]
EP 2177986A1 · 2010 [cited by applicant]
EP 3246827A1 · 2017 [cited by applicant]
EP 3640793A2 · 2020 [cited by applicant]
EP 3696622A1 · 2020 [cited by applicant]
Chen et al, CN 104866426, “Comprehensive Control Method and System For Software Testing” (translation), Oct. 17, 2017, 13 pgs <CN_104866426.pdf>. [cited by examiner]
Notice of Allowance received for U.S. Appl. No. 17/180,201 dated Dec. 27, 2021, 30 pages. [cited by applicant]
Kuhl et al., “A Middleware for Software Evolution of Automation Software”, IEEE ETFA, 2011, 9 pages. [cited by applicant]
Extended European Search Report received for European Patent Application Serial No. 22160774.0 dated Jul. 22, 2022, 9 pages. [cited by applicant]
Communication pursuant to Article 94(3) EPC for European Patent Application Serial No. 21178010.1 dated Dec. 5, 2022, 5 pages. [cited by applicant]
Extended European Search Report received for European Patent Application Serial No. 22156325.7 dated Jul. 15, 2022, 9 pages. [cited by applicant]
Extended European Search Report received for European Patent Application Serial No. 22162176.6 dated Aug. 9, 2022, 15 pages. [cited by applicant]
Estévez et al., “Automatic Generation of PLC Automation Projects from Component-Based Models”, International Journal of Advanced Manufacturing Technology, vol. 35, 2007, pp. 527-540. [cited by applicant]
Notice of Allowance received for U.S. Appl. No. 17/204,156 dated Oct. 27, 2022, 88 pages. [cited by applicant]
Lastra et al, “Semantic Extension for Automation Objects”, IEEE, pp. 892-897 (Year: 2006). [cited by applicant]
Schroeder et al., “Comining Behavior and Data Modeling in Automated Test Case Generation”, IEEE, pp. 1-8 (Year: 2003). [cited by applicant]
Zhou et al., “Schema Evolution of an Object-Oriented Real-Time Database System for Manufacturing Automation”, IEEE, pp. 956-977 (Year: 1997). [cited by applicant]
Estevez et al., “Model Driven Design in Industrial Automation”, IEEE, pp. 6262-6267 (Year: 2009). [cited by applicant]
Non Final Office Action received for U.S. Appl. No. 17/398,272 dated Nov. 1, 2022, 104 pages. [cited by applicant]
Communication pursuant to Rule 69 EPC for European Patent Application Serial No. 22156325.7 dated Aug. 29, 2022, 2 pages. [cited by applicant]
Non Final Office Action received for U.S. Appl. No. 17/204,156 dated Jun. 29, 2022, 66 pages. [cited by applicant]
Hou et al, “An Empirical Analysis of the Evolution of User-Visible Features in an Integrated Development Environment”, ACM, 2009, pp. 122-135. [cited by applicant]
Lorentz et al., “Next Generation Integrated Development of Automation Control Code in Torero”, IEEE, 2003, pp. 858-861. [cited by applicant]
Karsai et al, “Model-Integrated Development of Embedded Software”, Proceedings of the IEEE, vol. 91, No. 1, Jan. 2003, pp. 145-164. [cited by applicant]
Notice of Allowance received for U.S. Appl. No. 17/398,272 dated Aug. 8, 2023, 125 pages. [cited by applicant]
Notice of Allowance received for U.S. Appl. No. 18/312,670 dated Dec. 8, 2023, 53 pages. [cited by applicant]
Notice of Allowance received for U.S. Appl. No. 17/406,498 dated Nov. 8, 2023, 77 pages. [cited by applicant]
Non-Final Office Action received for U.S. Appl. No. 17/398,272 dated May 2, 2023, 147 pages. [cited by applicant]
Non-Final Office Action received for U.S. Appl. No. 17/406,498 dated Jul. 6, 2023, 12 pages. [cited by applicant]
Communication Pursuant to Article 94(3) EPC received for European Patent Application Serial No. 22162176.6 dated Jan. 16, 2024, 2 pages. [cited by applicant]
Final Office Action received for U.S. Appl. No. 17/398,272 dated Feb. 17, 2023, 141 pages. [cited by applicant]
Notice of Allowance received for U.S. Appl. No. 17/701,853 dated Feb. 22, 2023, 56 pages. [cited by applicant]
Extended European Search Report received for European Patent Application Serial No. 22189178.1 dated Jan. 9, 2023, 8 pages. [cited by applicant]
Notice of Allowance received for U.S. Appl. No. 18/154,271 dated Sep. 5, 2024, 78 pages. [cited by applicant]
Golendukhina et al, “Enhancing Data Quality in Large-Scale Software Systems for Industrial Automation”, ACM, pp. 5-8 (Year: 2023). [cited by applicant]
“Ren et al, ““A Wide-Deep-Sequence Model-Based Quality Prediction Method in Industrial Process Analysis””, IEEE, pp. 3721-3731 (Year: 2020)”. [cited by applicant]
Mashtakov et al,“Digital Twins and BIM Technologies for Industrial Systems Management”, IEEE, pp. 1023-1027 (Year: 2024). [cited by applicant]
“Concept and Evaluation of a Technology-independent Data Collection Architecture for Industrial Automation”“, IEEE, pp. 2830-2836 (Year: 2019)”. [cited by applicant]
Notice of Allowance received for U.S. Appl. No. 18/312,670 dated Mar. 1, 2024, 11 pages. [cited by applicant]
Non-Final Office Action received for U.S. Appl. No. 18/154,271 dated Apr. 9, 2024, 95 pages. [cited by applicant]
Moser et al., “Domain-Specific Modeling in Industrial Automation: Challenges and Experiences”, ACM, 2014, pp. 42-51. [cited by applicant]
Bordasch et al., “Fault Prevention in Industrial Automation Systems by Means of a Functional Model and a Hybrid Abnormity Identification Concept”, IEEE, 2013, pp. 2845-2850. [cited by applicant]
First Office Action received for Chinese Patent Application Serial No. 202210263068.3 dated Aug. 5, 2024, 9 pages. [cited by applicant]
Communication pursuant to Article 94(3) EPC for European Patent Application Serial No. 22156325.7 dated Mar. 13, 2024, 6 pages. [cited by applicant]
Communication pursuant to Article 94(3) EPC for European Patent Application Serial No. 22189177.3 dated Feb. 14, 2024, 9 pages. [cited by applicant]
Anonymous “Version control”, Wikipedia, online available at <https://en.wikipedia.org/w/index.php?title=Version%20control&oldid=1035968812>, Jul. 28, 2021, 11 pages. [cited by applicant]
Anonymous “Projects”, IntelliJ IDEA, online available at <https://www.jetbrains.com/help/idea/2021.1/creating-and-managing-projects.html>, Jun. 11, 2021, 7 pages. [cited by applicant]
Homles et al., “Promoting Developer-specific Awareness”, International Conference on Software Engineering, CHASE'08, May 13, 2008, 5 pages. [cited by applicant]
Communication Pursuant to Article 94(3) EPC received for European Patent Application Serial No. 22160774.0 dated Sep. 25, 2023, 4 pages. [cited by applicant]
Extended European Search Report received for European Patent Application Serial No. 22189177.3 dated Jan. 16, 2023, 10 pages. [cited by applicant]
Office Action received for Chinese Patent Application Serial No. 202210227749.4 dated Mar. 26, 2025. [cited by applicant]
Office Action received for Chinese Patent Application Serial No. 202210968246.2 dated Mar. 27, 2025. [cited by applicant]