# US 12,468,272 B2 · Control program code conversion

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

- Number: US 12,468,272 B2
- Document ID: US12468272B2
- Status: Granted
- Kind: B2
- Application number: 17/200,185
- Filed: 2021-03-12
- Published: 2021-07-01
- Granted: 2025-11-11
- Earliest claimed: 2017-09-20
- Assignees: Rockwell Automation Technologies, Inc.
- Applicants: Rockwell Automation Technologies, Inc.
- Inventors: Andreu Cuartiella Todoli
- Web page: https://patentgrep.com/patent/US12468272B2

## CPC

- G05B 13/042: {in which a parameter or coefficient is automatically adjusted to optimise the performance}
- G05B 13/0265: {the criterion being a learning criterion}
- G05B 17/02: electric
- G05B 19/056: {Programming the PLC}
- G06F 8/40: Transformation of program code
- G05B 2219/25298: System identification
- 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)

## Abstract

Techniques for converting an initial control program code version to a new control program code version are disclosed herein. In at least one implementation, input and output states of an industrial controller are monitored while the industrial controller executes the initial control program code version to operate a machine system and functional design specification for the industrial controller is generated. An instruction set of the industrial controller is converted into a new instruction set for a new industrial controller, and one or more equivalent instructions in the new instruction set that are equivalent to instructions in the instruction set of the industrial controller are identified. The new control program code version is generated based on at least the functional design specification and the one or more equivalent instructions in the new instruction set that are equivalent to the instructions in the instruction set of the industrial controller.

## Claims

### Claim 1

A method for converting an initial control program code version to a new control program code version, the method comprising:
executing the initial control program code on an industrial controller for operating a machine system, wherein the industrial controller uses an instruction set;
monitoring, by a system comprising a processor, a plurality of input and output states of the industrial controller while the industrial controller executes the initial control program code version to operate the machine system;
generating, by the system, a functional design specification for the industrial controller based at least in part on an analysis of the plurality of input and output states of the industrial controller, wherein the functional design specification describes how the industrial controller operates the machine system in response to the input states;
converting, by the system, the instruction set of the industrial controller into a new instruction set for use in a new industrial controller using an instruction set conversion code library, wherein the new instruction set is different from the instruction set and specific to the new industrial controller;
identifying, by the system, one or more equivalent instructions in the new instruction set for the new industrial controller that are equivalent to instructions in the instruction set of the industrial controller;
generating, by the system, the new control program code version for execution on the new industrial controller that is configured to perform equivalent functionality of the industrial controller while executing the initial control program code version by matching the one or more equivalent instructions in the new instruction set to the functional design specification for the industrial controller; and
loading and executing the new control program code version in the new industrial controller.

### Claim 2 (depends on 1)

The method of claim 1 wherein the new industrial controller executes the new control program code version to operate the machine system.

### Claim 3 (depends on 1)

The method of claim 1 further comprising validating, by the system, the new control program code version by comparing output produced by the new industrial controller while executing the new control program code version to the output states of the industrial controller while executing the initial control program code version.

### Claim 4 (depends on 1)

The method of claim 1 wherein generating the new control program code version comprises generating the new control program code version based on at least a predefined code block for the new industrial controller.

### Claim 5 (depends on 4)

The method of claim 4 wherein the predefined code block for the new industrial controller includes an add-on instruction.

### Claim 6 (depends on 1)

The method of claim 1 wherein generating the new control program code version comprises generating the new control program code version based on at least a standard code library.

### Claim 7 (depends on 6)

The method of claim 6 wherein the standard code library includes a standard automation sequence.

### Claim 8

A non-transitory computer-readable medium having stored thereon program instructions that, in response to execution, cause a system comprising a processor to perform operations, the operations comprising:
tapping into input and output channels of an industrial controller to monitor a plurality of input and output states of the industrial controller while the industrial controller executes an initial control program code version to operate a machine system, wherein the industrial controller uses an instruction set;
generating a functional design specification for the industrial controller based at least in part on an analysis of the plurality of input and output states of the industrial controller, wherein the functional design specification describes how the industrial controller operates the machine system in response to the input states;
converting the instruction set of the industrial controller into a new instruction set for use in a new industrial controller using an instruction set conversion code library, wherein the new instruction set is different from the instruction set and specific to the new industrial controller;
identifying one or more equivalent instructions in the new instruction set for the new industrial controller that are equivalent to instructions in the instruction set of the industrial controller;
generating a new control program code version for execution on the new industrial controller that is configured to perform equivalent functionality of the industrial controller while executing the initial control program code version by matching the one or more equivalent instructions in the new instruction set to the functional design specification for the industrial controller; and
loading and executing the new control program code version in the new industrial controller.

### Claim 9 (depends on 8)

The non-transitory computer-readable medium of claim 8 wherein the new industrial controller executes the new control program code version to operate the machine system.

### Claim 10 (depends on 8)

The non-transitory computer-readable medium of claim 8 wherein the operations further comprise validating the new control program code version by comparing output produced by the new industrial controller while executing the new control program code version to the output states of the industrial controller while executing the initial control program code version.

### Claim 11 (depends on 8)

The non-transitory computer-readable medium of claim 8 wherein the operations that comprise generating the new control program code version further comprise generating the new control program code version based on at least a predefined code block for the new industrial controller.

### Claim 12 (depends on 11)

The non-transitory computer-readable medium of claim 11 wherein the predefined code block for the new industrial controller includes an add-on instruction.

### Claim 13 (depends on 8)

The non-transitory computer-readable medium of claim 8 wherein the operations that comprise generating the new control program code version further comprise generating the new control program code version based on at least a standard code library.

### Claim 14 (depends on 13)

The non-transitory computer-readable medium of claim 13 wherein the standard code library includes a standard automation sequence.

### Claim 15

A system for converting an initial control program code version to a new control program code version, the system comprising:
a memory that stores executable components; and
a processor, operatively coupled to the memory, that executes the executable components, the executable components comprising program instructions stored on the memory that, when read and executed by the processor, direct the processor to at least:
tap into input and output channels of an industrial controller to monitor a plurality of input and output states of the industrial controller while the industrial controller executes the initial control program code version to operate a machine system, wherein the industrial controller uses an instruction set;
generate a functional design specification for the industrial controller based at least in part on an analysis of the plurality of input and output states of the industrial controller, wherein the functional design specification describes how the industrial controller operates the machine system in response to the input states;
convert the instruction set of the industrial controller into a new instruction set for use in a new industrial controller using an instruction set conversion code library, wherein the new instruction set is different from the instruction set and specific to the new industrial controller;
identify one or more equivalent instructions in the new instruction set for the new industrial controller that are equivalent to instructions in the instruction set of the industrial controller;
generate the new control program code version for execution on the new industrial controller that is configured to perform equivalent functionality of the industrial controller while executing the initial control program code version by matching the one or more equivalent instructions in the new instruction set to the functional design specification for the industrial controller; and
load and execute the new control program code version in the new industrial controller.

### Claim 16 (depends on 15)

The system of claim 15 wherein the new industrial controller executes the new control program code version to operate the machine system.

### Claim 17 (depends on 15)

The system of claim 15 wherein the program instructions of the executable components further direct the processor to validate the new control program code version by comparing output produced by the new industrial controller while executing the new control program code version to the output states of the industrial controller while executing the initial control program code version.

### Claim 18 (depends on 15)

The system of claim 15 wherein to generate the new control program code version, the program instructions of the executable components direct the processor to generate the new control program code version based on at least a predefined code block for the new industrial controller.

### Claim 19 (depends on 18)

The system of claim 18 wherein the predefined code block for the new industrial controller includes an add-on instruction.

### Claim 20 (depends on 15)

The system of claim 15 wherein to generate the new control program code version, the program instructions of the executable components direct the processor to generate the new control program code version based on at least a standard code library.
