IP Library Granted Patent US 12,210,331
Granted Patent B2
US 12,210,331 · App. 17/632,247 · Granted Jan 28, 2025

Automation engineering learning framework for cognitive engineering

Inventors: Arquimedes Martinez Canedo (Plainsboro, NJ); Di Huang (Los Angeles, CA); Palash Goyal (Los Angeles, CA)
Assignee: Siemens Aktiengesellschaft
G05B19/056G06N20/00G05B2219/13004
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,210,331
App. No.
17/632,247
Granted
Jan 28, 2025
Kind
B2
Abstract

Applications of artificial intelligence (AI) in industrial automation have focused mainly on the runtime phase due to the availability of large volumes of data from sensors. Methods, systems, and apparatus that can use machine learning or artificial intelligence (AI) to complete automation engineering tasks are described herein.

Claims (54)

1. An automation engineering system comprising:

one or more modules;

a processor for executing the one or more modules; and

a memory for storing the one or more modules, the one or more modules comprising:

a learning module configured to learn programmable logic controller (PLC) source code for programmable logic controllers (PLCs) and automation source code for manufacturing systems; and

based on learning the PLC source code and the automation source code, generate code embeddings that define snippets of PLC source code and snippets of automation source code as respective vectors in space.

2. The automation engineering system of claim 1 , the one or more modules of the automation engineering system further comprising a code classification module configured to:

receive a PLC code embedding from the learning module, the PLC code embedding defining a snippet of PLC source code as vectors in space; and

based on the PLC code embedding, determine a category associated with the snippet of PLC source code.

3. The automation engineering system of claim 1 , the code classification module further configured to:

receive a manufacturing code embedding from the learning module, the manufacturing code embedding defining a snippet of automation source code as vectors in space; and

based on the manufacturing code embedding, determine a category associated with the snippet of automation source code.

4. The automation engineering system of claim 1 , the one or more modules further comprising a feature selection module configured to:

select features that are extracted from the PLC source code and the automation source code; and

provide the selected features from the PLC source code and the automation source code in one or more combinations to the learning module, so as to tune the learning module based on the one or more combinations of selected features.

5. The automation engineering system of claim 1 , the one or more modules further comprising a semantic code search module configured to:

receive a PLC code embedding from the learning module, the PLC code embedding defining a snippet of PLC source code as vectors in space; and

based on the PLC code embedding, determine that a different snippet of code defines a neighbor near the vectors in space of the snippet of PLC source code, so as to determine that the different snippet of code is similar to the snippet of PLC source code.

6. The automation engineering system of claim 1 , the one or more modules further comprising a semantic code search module configured to:

receive a manufacturing code embedding from the learning module, the manufacturing code embedding defining a snippet of automation source code as vectors in space; and

based on the manufacturing code embedding, determine that a different snippet of code defines a neighbor near the vectors in space of the snippet of automation source code, so as to determine that the different snippet of code is similar to the snippet of automation source code.

7. The automation engineering system of claim 5 , wherein the semantic code search module is further configured to score the neighbor as compared to the vectors in space so as to determine that the different snippet of code is similar to the snippet of PLC source code in terms of code syntax or code function.

8. The automation engineering system of claim 7 , wherein the semantic code search module is further configured to score the neighbor as compared to the vectors in space so as to determine that the different snippet of code is similar to the snippet of PLC source code in terms of code function, and dissimilar in terms of code syntax.

9. The automation engineering system of claim 1 , the one or more modules further comprising a hardware recommendation module configured to:

receive a partial hardware configuration;

based on the partial hardware configuration, generate a probability distribution associated with hardware components; and

based on the probability distribution, identify a predetermined number of hardware components for completing the partial hardware configuration.

10. A method performed by a computing system, the method comprising:

training a neural network on programmable logic controller (PLC) source code for programmable logic controllers (PLCs) and automation source code for manufacturing systems;

based on the training, generating code embeddings that define snippets of PLC source code and snippets of automation source code as respective vectors in space.

11. The method of claim 10 , the method further comprising:

generating a particular PLC code embedding that defines a particular snippet of PLC source code as vectors in space; and

based on the particular PLC code embedding, determining a category associated with the particular snippet of PLC source code.

12. The method of claim 10 , the method further comprising:

generating a particular manufacturing code embedding that defines a particular snippet of automation source code as vectors in space; and

based on the particular manufacturing code embedding, determining a category associated with the snippet of automation source code.

13. The method of claim 10 , the method further comprising:

extracting a plurality of features from the PLC source code and the automation source code;

selecting certain features or combinations of features from the plurality of features extracted from the PLC source code and the automation source code; and

tuning the neural network based on the one or more selected features or combinations of selected features.

14. The method of claim 10 , the method further comprising:

generating a specific PLC code embedding that defines a specific snippet of PLC source code as vectors in space; and

based on the specific PLC code embedding, determining that a different snippet of code defines a neighbor near the vectors in space of the specific snippet of PLC code, so as to determine that the different snippet of code is similar to the specific snippet of PLC source code.

15. The method of claim 10 , the method further comprising:

generating a specific manufacturing code embedding that defines a specific snippet of automation source code as vectors in space; and

based on the specific manufacturing code embedding, determining that a different snippet of code defines a neighbor near the vectors in space of the specific snippet of automation code, so as to determine that the different snippet of code is similar to the specific snippet of automation source code.

16. The method further of claim 14 , the method further comprising:

generating a score associated with the neighbor as compared to the vectors in space so as to determine, based on the score, that the different snippet of code is similar to the snippet of PLC source code in terms of code syntax or code function.

17. The method further of claim 16 , wherein generating the score further comprises:

based on the score, determining that the different snippet of code is similar to the snippet of PLC source code in terms of code function, and dissimilar in terms of code syntax.

18. The method of claim 10 , the method further comprising:

receiving a partial hardware configuration;

based on the partial hardware configuration, generating a probability distribution associated with hardware components; and

based on the probability distribution, identifying a predetermined number of hardware components for completing the partial hardware configuration.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE FIRST ASSIGNOR'S NAME ON THE COVER SHEET PREVIOUSLY RECORDED AT REEL: 058854 FRAME: 0055. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 7, 2022
From: CANEDO, ARQUIMEDES MARTINEZ; HUANG, DI; GOYAL, PALASH
To: SIEMENS CORPORATION
Reel/Frame 058961/0781 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2022
From: CANEDO, ARINDAM MARTINEZ; HUANG, DI; GOYAL, PALASH
To: SIEMENS CORPORATION
Reel/Frame 058854/0055 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2022
From: SIEMENS CORPORATION
To: SIEMENS AKTIENGESELLSCHAFT
Reel/Frame 058854/0259 →
Continuity (2)
Provisional Application 62887822 · Aug 16, 2019
Related Publication 20220276628A1 · Sep 1, 2022
References Cited (15)
US 11157246B2 · Zhang · 2021 [cited by examiner]
US 11461081B2 · Zhang · 2022 [cited by examiner]
US 11579868B1 · Zhang · 2023 [cited by examiner]
US 11681541B2 · Mostafa · 2023 [cited by examiner]
US 11720804B2 · Gupta · 2023 [cited by examiner]
US 11822909B2 · Zhang · 2023 [cited by examiner]
US 11836068B2 · Raszka · 2023 [cited by examiner]
US 20170017221A1 · Lamparter et al. · 2017 [cited by applicant]
CN 101424944A · 2009 [cited by applicant]
CN 107850893A · 2018 [cited by applicant]
CN 109977205A · 2019 [cited by applicant]
WO 20180140365A1 · 2018 [cited by applicant]
WO WO2021021500A1 · 2021 [cited by examiner]
Code Embedding: A Comprehensive Guide, by Aayush Mittal, published Jul. 3, 2024 in Unite.AI; printed from the Internet on Sep. 24, 2024; 7 pages (Year: 2024). [cited by examiner]
International Search Report corresponding to PCT application No. PCT/US2020/045722; 10 pages. [cited by applicant]