# US 11,307,554 B2 · System and method for keyword-based PLC programming

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

- Number: US 11,307,554 B2
- Document ID: US11307554B2
- Status: Granted
- Kind: B2
- Application number: 16/689,271
- Filed: 2019-11-20
- Published: 2021-05-20
- Granted: 2022-04-19
- Earliest claimed: 2019-11-20
- Applicants: Younes Faraj
- Inventors: Younes Faraj
- Web page: https://patentgrep.com/patent/US11307554B2

## CPC

- G05B 19/056: {Programming the PLC}
- G05B 2219/13004: Programming the plc
- 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)

## Abstract

The present invention relates to generally to programmable logic controllers (PLCs), and more particularly to a system and method to enables a user to accelerate the generation of PLC programs. The system includes a set of specific keywords and an internal algorithm that in combination with the industrial process information provided by the user, creates a methodology for PLC program generation, which is flexible enough to adapt to the user, PLC programming strategies, and other standards and practices.

## Claims

### Claim 1

A computer-implemented method of programming one or more hardware Programmable Logic Controllers (PLCs) using keywords to generate a PLC program for the one or more PLCs, comprising:
receiving a device list, the device list comprising a file containing a list of devices to be controlled and/or monitored by the PLCs;
receiving a cause and effect list, the cause and effect list comprising a file generated from a control narrative for the PLCs, the control narrative comprising one or more parameters used within a process controlled by the PLCs;
applying a control algorithm to assign one or more controls to each of the devices on the device list according to the cause and effect list, each of the one or more controls defined by a keyword from a keyword database of keywords, each keyword based on a fixed internal algorithm, the control algorithm using a combination of an internal programming model created from one or more of the keywords, and a user-provided custom programming model, created from user-selected keywords;
generating a control logic for the PLCs from the control algorithm;
generating the PLC program via a PLC program generator, the PLC program generator combining the control logic and the keywords to generate the PLC program in a PLC programming language; and
outputting the PLC program as a file, the file usable to program the PLCs,
wherein the PLCs are used in a process-based operation.

### Claim 2 (depends on 1)

The method of claim 1, wherein the cause and effect list is created from a template, the template being generated from the device list.

### Claim 3 (depends on 1)

The method of claim 1, further comprising an alarm list, the alarm list comprising a set of alarms and conditions for triggering the alarms.

### Claim 4 (depends on 1)

The method of claim 1, wherein the user-provided custom programming model is subsequently stored as an internal programming model for future use.

### Claim 5 (depends on 1)

The method of claim 1, wherein multiple PLC programs are generated simultaneously.

### Claim 6 (depends on 1)

The method of claim 1, wherein multiple PLC programs are generated sequentially.

### Claim 7 (depends on 1)

The method of claim 1, further including a step of formatting one or both of the device list and the cause and effect list into a format readable by the control algorithm.

### Claim 8 (depends on 1)

The method of claim 1, wherein the control algorithm may be applied to a PLC while the PLC is in operation.

### Claim 9

A system for programming one or more hardware Programmable Logic Controllers (PLCs) using keywords to generate a program for the PLCs, the system comprising a server to implement:
a user interface, the user interface coupled to a display; and
a PLC program generator running on a computing device accessible through the user interface, the PLC program generator coupled to the user interface and the display, the PLC program generator operative to generate a PLC program via:
receiving a device list, the device list comprising a file containing a list of devices to be controlled and/or monitored by the PLCs;
receiving a cause and effect list, the cause and effect list comprising a file generated from a control narrative for the PLCs, the control narrative comprising one or more parameters used within a process controlled by the PLCs;
applying a control algorithm to assign one or more controls to each of the devices on the device list according to the cause and effect list, each of the one or more controls defined by one or more user-selected keywords from a keyword database of keywords, the control algorithm using a combination of an internal programming model, and a user-provided custom programming model, with the user-selected keywords;
generating a control logic for the PLCs from the control algorithm;
generating the PLC program within the PLC program generator by combining the control logic and the keywords; and
outputting the PLC program as a file, the file usable to program the PLCs,
wherein the user interface and display are operative to enable a user to monitor and modify the PLC program generator during PLC program generation.

### Claim 10 (depends on 9)

The system of claim 9, further comprising a template generator, the template generator operative to create a template from the device list, the created template used to create the cause and effect list.

### Claim 11 (depends on 9)

The system of claim 9; further comprising an alarm list, the alarm list comprising a set of alarms and conditions for triggering the alarms.

### Claim 12 (depends on 9)

The system of claim 9, wherein the user-provided custom programming model is subsequently stored as an internal programming model for future use.

### Claim 13 (depends on 9)

The system of claim 9, wherein the PLC program generator is capable of generating multiple PLC programs simultaneously.

### Claim 14 (depends on 9)

The system of claim 9, wherein the PLC program generator is capable of generating multiple PLC programs sequentially.

### Claim 15 (depends on 9)

The system of claim 9, further including formatting one or both of the device list and the cause and effect list into a format readable by the control algorithm.

### Claim 16 (depends on 9)

The system of claim 9, wherein the control algorithm may be applied to a PLC while the PLC is in operation.
