# US 12,001,818 B2 · Extensible IDE platform with open APIs

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

- Number: US 12,001,818 B2
- Document ID: US12001818B2
- Status: Granted
- Kind: B2
- Application number: 18/304,446
- Filed: 2023-04-21
- Published: 2023-08-17
- Granted: 2024-06-04
- Earliest claimed: 2019-09-24
- Assignees: Rockwell Automation Technologies, Inc.
- Applicants: Rockwell Automation Technologies, Inc.
- Inventors: Ryan Dunn; Karl Staas; Andrew Stump; Anthony Carrara; Eashwer Srinivasan; Christopher Como; Sharon Billi-Duran
- Web page: https://patentgrep.com/patent/US12001818B2

## CPC

- G06F 8/20: Software design
- G06F 8/34: Graphical or visual programming
- G05B 19/05: Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
- G06F 8/33: Intelligent editors
- Y02P 90/02: Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- 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)
- Y02P: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS

## Abstract

An industrial integrated development environment (IDE) supports open or extensible application programming interfaces (APIs) that enable end users (e.g., plant asset owners, original equipment manufacturers (OEM), system integrators, etc.) to build upon the IDE's development platform to create custom views or to code custom functionality. This can include, for example, defining a control programming syntax supported by the industrial IDE, customizing a development environment view afforded by the IDE's interface, modifying or creating project editing functions, defining customized programming guardrails designed to guide compliance with in-house programming standards, or other such IDE customizations.

## Claims

### Claim 1

A system for developing industrial applications, 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 integrated development environment (IDE) interfaces on respective client devices associated with respective end user entities and to receive, via interaction with the IDE interfaces, de sign input that defines control design aspects of respective industrial automation control projects, wherein functionalities of the IDE interfaces are controlled by an IDE editor;
a project generation component configured to generate the respective industrial automation control projects based on the design input; and
an editor definition component configured to receive, from the respective client devices via the interaction with the IDE interfaces, interface definition data that specifies individual customizations of the IDE interfaces, and to instruct the IDE editor to implement the individual customizations of the IDE interfaces,
wherein the IDE editor comprises one or more open application programming interfaces (APIs) that allow the respective client devices to programmatically access a subset of the IDE editor's low-level services and data models to facilitate the individual customizations of the IDE interfaces.

### Claim 2 (depends on 1)

The system of claim 1, wherein the respective end user entities comprise at least one of a plant asset owner, an industrial enterprise, an original equipment manufacturer, or a system integrator.

### Claim 3 (depends on 1)

The system of claim 1, wherein the IDE editor permits a client device associated with an end user entity, of the respective end user entities, to access and render an industrial automation control project associated with the end user entity via an IDE interface of the IDE interfaces, and prevents the client device from accessing and rendering other industrial automation control projects associated with other end user entities via the IDE interface of the IDE interfaces.

### Claim 4 (depends on 1)

The system of claim 1, wherein:
the system executes as a set of cloud-based services, and
the respective end user entities are assigned a portion of a virtual private cloud through which to access the set of cloud-based services.

### Claim 5 (depends on 1)

The system of claim 1, wherein the IDE editor is further configured to individually customize, for the IDE interfaces based on the interface definition data, at least one of:
forms of programming feedback to be rendered by the IDE interfaces and conditions under which the programming feedback is to be rendered by the IDE interfaces,
control programming syntax supported by the IDE interfaces,
editing functionalities supported by the IDE interfaces,
programming guardrails to be enforced by the IDE editor for the IDE interfaces,
visual characteristics of the IDE interfaces, or
audio characteristics of the IDE interfaces.

### Claim 6 (depends on 1)

The system of claim 1, wherein the IDE editor is further configured to individually customize, for an IDE interface associated with an industrial enterprise, a programming guardrail template based on the interface definition data, and wherein the programming guardrail template defines internal programming standards for the industrial enterprise to be enforced by the IDE editor.

### Claim 7 (depends on 6)

The system of claim 6, wherein:
the IDE editor is further configured to execute the programming guardrail template against industrial control code imported into an industrial automation control project via the IDE interface, and
the user interface component is further configured to display, on the IDE interface based on execution of the programming guardrail template against the industrial control code, notifications that identify portions of the industrial control code that do not comply with the internal programming standards for the industrial enterprise.

### Claim 8 (depends on 1)

The system of claim 1, wherein the respective industrial automation control projects respectively comprise at least one of an executable industrial control program, an industrial visualization application, industrial device configuration data configured to set a configuration parameter of an industrial device, an engineering drawing, or a bill of materials.

### Claim 9 (depends on 1)

The system of claim 1, wherein the IDE editor supports instantiation of automation objects within an industrial control program that is part of one of the respective industrial automation control projects, and wherein the automation objects represent respective industrial assets including 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.

### Claim 10 (depends on 9)

The system of claim 9, wherein an automation object, of the automation objects, has associated therewith at least one of an input, an output, an analytic routine, an alarm, a security feature, or a graphical representation of an associated industrial asset.

### Claim 11

A method for creating industrial applications, comprising:
rendering, by a system comprising a processor, integrated development environment (IDE) interfaces on respective client devices associated with respective end user entities;
receiving, by the system via interaction with the IDE interfaces, design input that defines control design aspects of respective industrial control and monitoring projects, wherein a functionality of the IDE interfaces is controlled by an IDE editor;
generating, by the system, the respective industrial control and monitoring projects based on the design input;
receiving, by the system from the respective client devices via interaction with the IDE interfaces, interface definition data that specifies individual customizations of the IDE interfaces; and
implementing, by the system based on the interface definition data, the individual customizations of the IDE interfaces,
wherein the IDE editor comprises one or more open application programming interfaces (APIs) that allow the respective client devices to programmatically access a subset of the IDE editor's low-level services and data models to facilitate the individual customizations of the IDE interfaces.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
permitting, by the system, a client device associated with an end user entity, of the end user entities, to access and render an industrial control and monitoring project associated with the end user entity; and
preventing, by the system, the client device associated with the end user entity, of the end user entities, from accessing and rendering other industrial control and monitoring projects associated with other end user entities.

### Claim 13 (depends on 11)

The method of claim 11, wherein the implementing of the individual customizations of the IDE interfaces comprises individually customizing, based on the interface definition data, at least one of:
forms of programming feedback to be rendered by the IDE interfaces and conditions under which the programming feedback is to be rendered by the IDE interfaces,
control programming syntax supported by the IDE interfaces,
editing functionalities supported by the IDE interfaces,
programming guardrails to be enforced by the IDE editor for the IDE interfaces,
visual characteristics of the IDE interfaces, or
audio characteristics of the IDE interfaces.

### Claim 14 (depends on 11)

The method of claim 11, wherein the implementing of the individual customizations of the IDE interfaces comprises individually customizing, for an IDE interface associated with an industrial enterprise, a programming guardrail template based on the interface definition data, and wherein the programming guardrail template defines internal programming standards for the industrial enterprise to be enforced by the IDE editor.

### Claim 15 (depends on 14)

The method of claim 14, further comprising:
executing, by the system, the programming guardrail template against industrial control code imported into an industrial control and monitoring project via the IDE interface; and
displaying, by the system on the IDE interface based on execution of the programming guardrail template against the industrial control code, graphical feedback that identifies portions of the industrial control code that do not comply with the internal programming standards for the industrial enterprise.

### Claim 16 (depends on 11)

The method of claim 11, wherein the generating of the respective industrial control and monitoring projects comprises generating, for each of the respective industrial control and monitoring projects, at least one of an executable industrial control program, an industrial visualization application, industrial device configuration data configured to set a configuration parameter of an industrial device, an engineering drawing, or a bill of materials.

### Claim 17 (depends on 11)

The method of claim 11, wherein the IDE editor supports instantiation of automation objects within an industrial control program that is part of one of the respective industrial control and monitoring projects, and wherein the automation objects represent respective industrial assets including 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.

### Claim 18

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 respective client devices associated with respective end user entities;
receiving, from the respective client devices via interaction with the IDE interfaces, design input that defines control design aspects of respective industrial automation projects, wherein editing functions of the IDE interfaces are controlled by an IDE editor;
generating the respective industrial automation projects based on the design input;
receiving, from the respective client devices via interaction with the IDE interfaces, interface definition data that specifies individual customizations of the IDE interfaces, wherein the interface definition data defines, for the IDE interfaces, at least a form of programming feedback to be rendered by the IDE interfaces and conditions under which the programming feedback is to be rendered by the IDE interfaces; and
implementing, based on the interface definition data, the individual customizations of the IDE interfaces,
wherein the IDE editor comprises one or more open application programming interfaces (APIs) that allow the respective client devices to programmatically access a subset of the IDE editor's low-level services and data models to facilitate the individual customizations of the IDE interfaces.

### Claim 19 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein the implementing of the individual customizations of the IDE interfaces comprises individually customizing, based on the interface definition data, at least one of:
forms of programming feedback to be rendered by the IDE interfaces and conditions under which the programming feedback is to be rendered by the IDE interfaces,
control programming syntax supported by the IDE interfaces,
editing functionalities supported by the IDE interfaces,
programming guardrails to be enforced by the IDE editor for the IDE interfaces,
visual characteristics of the IDE interfaces, or
audio characteristics of the IDE interfaces.

### Claim 20 (depends on 18)

The non-transitory computer-readable medium of claim 18, wherein the implementing of the individual customizations of the IDE interfaces comprises individually customizing, for an IDE interface associated with an industrial enterprise, a programming guardrail template based on the interface definition data, and wherein the programming guardrail template defines internal programming standards for the industrial enterprise to be enforced by the IDE editor.
