# US 11,442,439 B2 · System and method for industrial automation device library

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

- Number: US 11,442,439 B2
- Document ID: US11442439B2
- Status: Granted
- Kind: B2
- Application number: 16/586,288
- Filed: 2019-09-27
- Published: 2021-04-01
- Granted: 2022-09-13
- Earliest claimed: 2019-09-27
- Assignees: Rockwell Automation Technologies, Inc.
- Applicants: Rockwell Automation Technologies, Inc.
- Inventors: Andrew R. Stump; Anthony Carrara; Christopher W. Como; Sharon Billi-Duran; Matthew R. Ericsson; Srdjan Josipovic; Eashwer Srinivasan; Michael D. Kalan
- Web page: https://patentgrep.com/patent/US11442439B2

## CPC

- G05B 19/41885: {characterised by modeling, simulation of the manufacturing system}
- G05B 19/0426: {Programming the control sequence}
- G05B 19/4183: {characterised by data acquisition, e.g. workpiece identification}
- G06F 3/04817: using icons (graphical or visual programming using iconic symbols G06F8/34)
- G06F 3/0482: Interaction with lists of selectable items, e.g. menus
- G06F 3/04842: Selection of displayed objects or displayed text elements (G06F3/0482 takes precedence)
- G06F 30/13: Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
- G05B 2219/23005: Expert design system, uses modeling, simulation, to control design process
- G05B 2219/32252: Scheduling production, machining, job shop
- Y02P 90/02: Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
- 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)
- Y02P: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS

## Abstract

A system is configured to receive a first selection of a first object corresponding to a first portion of computer code that defines a first operation of a first industrial automation device from a library, receive a second selection of a second object corresponding to a second portion of computer code that defines a second operation of a second industrial automation device from the library, and generate an industrial automation project code file. Generating the industrial automation project code file includes modifying the first portion of computer code to enable the first industrial automation device to operate in conjunction with the second industrial automation device, modifying the second portion of computer code to enable the second industrial automation device to operate in conjunction with the first industrial automation device, and combining the modified first portion of computer code and the modified second portion of computer code.

## Claims

### Claim 1

A system, comprising:
a processor; and
a memory accessible by the processor, the memory storing instructions that, when executed by the processor, cause the processor to perform operations comprising:
presenting a graphical user interface (GUI) for designing an industrial automation system via a display, wherein the GUI comprises a first window and a second window;
presenting a visualization representative of a plurality of objects within the second window, wherein each object of the plurality of objects is represented by an icon and corresponds to a portion of computer code that corresponds to an operation of an industrial automation device;
receiving a first input indicative of a first selection of a first object of the plurality of objects, wherein the first object is represented by a first icon and corresponds to a first portion of computer code that corresponds to a first operation of a first industrial automation device;
presenting the first object in the first window in response to receiving the first input;
receiving a second input indicative of a second selection of a second object of the plurality of objects, wherein the second object is represented by a second icon and corresponds to a second portion of computer code that corresponds to a second operation of a second industrial automation device;
presenting the second object in the first window in response to receiving the second input; and
in response to receiving the second input, generating a code file by:
automatically modifying the first portion of computer code to enable the first industrial automation device to operate in conjunction with the second industrial automation device;
automatically modifying the second portion of computer code to enable the second industrial automation device to operate in conjunction with the first industrial automation device; and
combining the modified first portion of computer code and the modified second portion of computer code.

### Claim 2 (depends on 1)

The system of claim 1, wherein the instructions, when executed by the processor, cause the processor to further perform the operations comprising:
receiving a third input representative of a third object of the plurality of objects and placing the third object in the first window, wherein the third object is represented by a third icon and corresponds to a third portion of computer code that corresponds to a third operation of a third industrial automation device;
in response to receiving the third input, updating the code file by:
automatically modifying the first portion of computer code to enable the first industrial automation device to operate in conjunction with the second industrial automation device and the third industrial automation device;
automatically modifying the second portion of computer code to enable the second industrial automation device to operate in conjunction with the first industrial automation device and the third industrial automation device;
automatically modifying the third portion of computer code to enable the third industrial automation device to operate in conjunction with the first industrial automation device and the second industrial automation device; and
combining the modified first portion of computer code, the modified second portion of computer code, and the modified third portion of computer code.

### Claim 3 (depends on 1)

The system of claim 1, wherein the instructions, when executed by the processor, cause the processor to further perform the operations comprising displaying a first interface element of the first object and a second interface element of the second object.

### Claim 4 (depends on 3)

The system of claim 3, wherein each of the first interface element and the second interface element comprises an input, an output, or a status output.

### Claim 5 (depends on 3)

The system of claim 3, wherein the instructions, when executed by the processor, cause the processor to further perform the operations comprising receiving one or more inputs configured to connect the first interface element to the second interface element.

### Claim 6 (depends on 3)

The system of claim 3, wherein the instructions, when executed by the processor, cause the processor to further perform the operations comprising automatically generating a connection between the first interface element and the second interface element based on a relationship between the first object and the second object.

### Claim 7 (depends on 1)

The system of claim 1, wherein the instructions, when executed by the processor, cause the processor to further perform the operations comprising receiving a third input indicative of a third selection of a controller object of the plurality of objects and placing the controller object in the first window, wherein the controller object is represented by a third icon and corresponds to a third portion of computer code that defines a third operation of an automation controller.

### Claim 8 (depends on 1)

The system of claim 1, wherein the instructions, when executed by the processor, cause the processor to further perform the operations comprising receiving a third input indicative of a third selection of a routine object of the plurality of objects and placing the routine object in the first window, wherein the routine object is represented by a third icon and corresponds to a third portion of computer code that defines a routine.

### Claim 9 (depends on 1)

The system of claim 1, wherein the instructions, when executed by the processor, cause the processor to further perform the operations comprising querying a set of compatibility rules to determine whether the first object and the second object are compatible with one another.

### Claim 10

A method, comprising:
presenting a graphical user interface (GUI) for designing an industrial automation system via display, wherein the GUI comprises a first window and a second window;
presenting a visualization representative of a plurality of objects within the second window, wherein each object of the plurality of objects is represented by an icon and corresponds to a portion of computer code that defines an operation of an industrial automation device;
receiving an area input defining a first area of the industrial automation system;
receiving a first input indicative of a first selection of a first object of the plurality of objects, wherein the first object is represented by a first icon and corresponds to a first portion of computer code that corresponds to a first operation of a first industrial automation device;
presenting the first object in the first area within the first window in response to receiving the first input;
receiving a second input indicative of a second selection of a second object of the plurality of objects, wherein the second object is represented by a second icon and corresponds to a second portion of computer code that corresponds to operations of a second industrial automation device;
presenting the second object in the first area within the first window in response to receiving the second input; and
in response to receiving the second input, generating a code file by:
automatically modifying the first portion of computer code to enable the first industrial automation device to operate in conjunction with the second industrial automation device;
automatically modifying the second portion of computer code to enable the second industrial automation device to operate in conjunction with the first industrial automation device; and
combining the modified first portion of computer code and the modified second portion of computer code.

### Claim 11 (depends on 10)

The method of claim 10, comprising displaying a first interface element of the first object and a second interface element of the second object.

### Claim 12 (depends on 11)

The method of claim 11, wherein each of the first interface element and the second interface element comprises an input, an output, or a status output.

### Claim 13 (depends on 11)

The method of claim 11, comprising receiving one or more inputs configured to connect the first interface element to the second interface element based on a relationship between the first object and the second object.

### Claim 14 (depends on 11)

The method of claim 11, comprising automatically generating a connection between the first interface element to the second interface element.

### Claim 15 (depends on 10)

The method of claim 10, comprising:
receiving a third input representative of a third selection of a third object of the plurality of objects, wherein the third object is represented by a third icon and corresponds to a third portion of computer code that defines a third operation of a third industrial automation device;
presenting the third object in the first window; and
in response to receiving the third input, updating the code file by:
automatically modifying the first portion of computer code to enable the first industrial automation device to operate in conjunction with the second industrial automation device and the third industrial automation device;
automatically modifying the second portion of computer code to enable the second industrial automation device to operate in conjunction with the first industrial automation device and the third industrial automation device;
automatically modifying the third portion of computer code to enable the third industrial automation device to operate in conjunction with the first industrial automation device and the second industrial automation device; and
combining the modified first portion of computer code, the modified second portion of computer code, and the modified third portion of computer code.

### Claim 16

A non-transitory, tangible, computer readable medium comprising instructions that, when executed by a processor, causes the processor to perform a set of operations comprising:
presenting a graphical user interface (GUI) for designing an industrial automation system via a display, wherein the GUI comprises a first window and a second window;
presenting a library visualization representative of a plurality of objects within the second window, wherein each object of the plurality of objects is represented by an icon and corresponds to a portion of computer code associated with operations of an industrial automation device;
receiving a first input indicative of a first selection of a first object of the plurality of objects, wherein the first object is represented by a first icon and corresponds to a first portion of computer code associated with first operations of a first industrial automation device;
presenting the first object in the first window in response to receiving the first input;
receiving a second input indicative of a second selection of a second object of the plurality of objects, wherein the second object is represented by a second icon and corresponds to a second portion of computer code associated with second operations of a second industrial automation device;
presenting the second object in the first window in response to receiving the second input;
receiving a third input configured to connect a first interface element of the first object to a second interface element of the second object; and
in response to receiving the third input, generating a code file by:
automatically modifying the first portion of computer code and the second portion of computer code based on a connection between the first interface element of the first object to a second interface element of the second object; and
combining the modified first portion of computer code and the modified second portion of computer code.

### Claim 17 (depends on 16)

The computer readable medium of claim 16, wherein each of the first interface element and the second interface element comprises an input, an output, or a status output.

### Claim 18 (depends on 16)

The computer readable medium of claim 16, wherein the instructions, when executed by the processor, cause the processor to further perform the set of operations comprising receiving a fourth input indicative of a fourth selection of a controller object of the plurality of objects and placing the controller object in the first window, wherein the controller object is represented by a fourth icon and corresponds to a fourth portion of computer code that additional operations of an automation controller.

### Claim 19 (depends on 16)

The computer readable medium of claim 16, wherein the instructions, when executed by the processor, cause the processor to further perform the set of operations comprising receiving a fourth input indicative of a fourth selection of a routine object of the plurality of objects and placing the routine object in the first window, wherein the routine object is represented by a fourth icon and corresponds to a fourth portion of computer code that defines a routine.

### Claim 20 (depends on 16)

The computer readable medium of claim 16, wherein the instructions, when executed by the processor, cause the processor to further perform the set of operations comprising querying a set of compatibility rules to determine whether the first object and the second object are compatible with one another.
