# US 12,242,785 B2 · Software to industrial device interface

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

- Number: US 12,242,785 B2
- Document ID: US12242785B2
- Status: Granted
- Kind: B2
- Application number: 17/655,949
- Filed: 2022-03-22
- Published: 2022-09-29
- Granted: 2025-03-04
- Earliest claimed: 2021-03-23
- Assignees: Ectron Corporation
- Applicants: Ectron Corporation
- Inventors: Gautam Kavipurapu
- Web page: https://patentgrep.com/patent/US12242785B2

## CPC

- G06F 9/5055: {considering software capabilities, i.e. software resources associated or available to the machine}
- G06F 30/347: Physical level, e.g. placement or routing
- G06F 9/30036: {Instructions to perform operations on packed data, e.g. vector, tile or matrix operations}
- G06F 30/331: with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
- G06F 30/34: for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
- G06F 30/394: Routing (G06F30/396 takes precedence)
- G06F 2117/08: HW-SW co-design, e.g. HW-SW partitioning
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems and methods are described for controlling or monitoring a wide variety of target hardware, which may use various interfaces and protocols, via non-customized software, without requiring additional software to interface between the non-customized software and the target hardware. An application repository can include a variety of software applications available to end users. An end user may request one or more such applications, and specify target hardware controlled or monitored by the applications. The app repository can then generate a hardware configuration template, corresponding to a configuration of a field-programmable hardware layer on a bridge device of the end user, which routes data between inputs and outputs of the target hardware and a memory on the bridge device. The template and applications can then be provisioned on the bridge device, such that the applications can execute to control and monitor the target hardware via interaction with the memory.

## Claims

### Claim 1

A system for monitoring and controlling industrial hardware devices via non-customized software applications, the system comprising:
a data store storing one or more software applications, each software application representing code executable to control or monitor industrial hardware devices; and
one or more processors configured with instructions that, when executed, cause the system to:
obtain a request from an end user for the one or more software applications, the request specifying a target industrial hardware device to be controlled or monitored by the one or more software applications;
generate a hardware configuration template specifying a configuration of a field-programmable hardware layer on a bridge device of the end user, the configuration including a routing, on the field-programmable hardware layer, of inputs and outputs of the target industrial hardware device to corresponding locations in a memory of the bridge device accessible to a processor of the bridge device configured to execute the one or more software applications; and
transmit the one or more software applications and the hardware configuration template to the bridge device, wherein the bridge device is configured to:
modify the field-programmable hardware layer according to the hardware configuration template to implement the routing of inputs and outputs of the target industrial hardware device to corresponding locations in the memory of the bridge device accessible to the processor of the bridge device; and
execute the one or more software applications on the processor, wherein executing the one or more software applications enables the one or more software applications to monitor or control the target industrial hardware device by reading and writing to the locations in the memory of the bridge device.

### Claim 2 (depends on 1)

The system of claim 1, wherein the field-programmable hardware layer is at least one of a field programmable hardware array (FPGA) or a reconfigurable graph processor.

### Claim 3 (depends on 1)

The system of claim 1, wherein the instructions, when executed, further cause the system to provide an interface to a computing device of the end user enabling browsing of and selection of the one or more software applications.

### Claim 4 (depends on 1)

The system of claim 1, wherein executing the one or more software applications further implements a machine learning algorithm on the bridge device.

### Claim 5 (depends on 4)

The system of claim 4, wherein the hardware configuration template further configures the field-programmable hardware layer to conduct matrix multiplication operations supporting the machine learning algorithm.

### Claim 6 (depends on 1)

The system of claim 1, wherein the data store further comprises metadata defining the inputs and outputs of the target industrial hardware device.

### Claim 7 (depends on 1)

The system of claim 1, wherein the data store further comprises metadata defining inputs and outputs of the one or more software applications.

### Claim 8 (depends on 1)

The system of claim 1, wherein the configuration of the field-programmable hardware layer further specifies a transformation of data, via the field-programmable hardware layer, between a format of the data provided by the target industrial hardware device and a format of data required by the one or more software applications.

### Claim 9 (depends on 1)

The system of claim 1, wherein the configuration of the field-programmable hardware layer further specifies a transformation, via the field-programmable hardware layer, of data provided by at least one of the target industrial hardware device or the one or more software applications during routing of the data.

### Claim 10 (depends on 1)

The system of claim 1, wherein the configuration of the field-programmable hardware layer further specifies the locations in memory of the bridge device.

### Claim 11 (depends on 1)

The system of claim 1, wherein the one or more software applications are configured to read from or write to the locations in the memory of the bridge device at a first rate, and wherein the target industrial hardware device is configured to provide data via at least one of the inputs and outputs of the target industrial hardware device at a second rate different than the first rate.

### Claim 12 (depends on 1)

The system of claim 1, wherein the instructions further cause the system to:
store the hardware configuration template;
obtain a second request from a second end user for the one or more software applications, the second request specifying the target industrial hardware device; and
transmit the stored hardware configuration template to the second end user in response to the second request.

### Claim 13

A computer-implemented method comprising:
obtaining a request from an end user for one or more software applications representing code executable to control or monitor a target industrial hardware device, the request specifying the target industrial hardware device to be controlled or monitored by the one or more software applications;
generating a hardware configuration template specifying a configuration of a field-programmable hardware layer on a bridge device of the end user, the configuration including a routing, on the field-programmable hardware layer, of inputs and outputs of the target industrial hardware device to corresponding locations in a memory of the bridge device accessible to a processor of the bridge device configured to execute the one or more software applications; and
transmitting the one or more software applications and the hardware configuration template to the bridge device, wherein the bridge device is configured to:
modify the field-programmable hardware layer according to the hardware configuration template to implement the routing of inputs and outputs of the target industrial hardware device to corresponding locations in the memory of the bridge device accessible to the processor of the bridge device; and
execute the one or more software applications on the processor, wherein executing the one or more software applications enables the one or more software applications to monitor or control the target industrial hardware device by reading and writing to the locations in the memory of the bridge device.

### Claim 14 (depends on 13)

The computer-implemented method of claim 13 further comprising providing an interface to a computing device of the end user enabling browsing of and selection of the one or more software applications.

### Claim 15 (depends on 13)

The computer-implemented method of claim 13, wherein executing the one or more software applications further implements a machine learning algorithm on the bridge device.

### Claim 16 (depends on 15)

The computer-implemented method of claim 15, wherein the hardware configuration template further configures the field-programmable hardware layer to conduct matrix multiplication operations supporting the machine learning algorithm.

### Claim 17

One or more non-transitory computer-readable media comprising computer-executable instructions that, when executed by a computing system, cause the computing system to:
obtain a request from an end user for one or more software applications representing code executable to control or monitor a target industrial hardware device, the request specifying the target industrial hardware device to be controlled or monitored by the one or more software applications;
generate a hardware configuration template specifying a configuration of a field-programmable hardware layer on a bridge device of the end user, the configuration including a routing, on the field-programmable hardware layer, of inputs and outputs of the target industrial hardware device to corresponding locations in a memory of the bridge device accessible to a processor of the bridge device configured to execute the one or more software applications; and
transmit the one or more software applications and the hardware configuration template to the bridge device, wherein the bridge device is configured to:
modify the field-programmable hardware layer according to the hardware configuration template to implement the routing of inputs and outputs of the target industrial hardware device to corresponding locations in the memory of the bridge device accessible to the processor of the bridge device; and
execute the one or more software applications on the processor, wherein executing the one or more software applications enables the one or more software applications to monitor or control the target industrial hardware device by reading and writing to the locations in the memory of the bridge device.

### Claim 18 (depends on 17)

The one or more non-transitory computer-readable media of claim 17, wherein the configuration of the field-programmable hardware layer further specifies a transformation of data, via the field-programmable hardware layer, between a format of the data provided by the target industrial hardware device and a format of data required by the one or more software applications.

### Claim 19 (depends on 17)

The one or more non-transitory computer-readable media of claim 17, wherein the configuration of the field-programmable hardware layer further specifies a transformation, via the field-programmable hardware layer, of data provided by at least one of the target industrial hardware device or the one or more software applications during routing of the data.

### Claim 20 (depends on 17)

The one or more non-transitory computer-readable media of claim 17, wherein the configuration of the field-programmable hardware layer further specifies the locations in memory of the bridge device.
