IP Library › Granted Patent US 11,789,428
Granted Patent B2
US 11,789,428 · App. 17/504,928 · Granted Oct 17, 2023

I/O server services for selecting and utilizing active controller outputs from containerized controller services in a process control environment

Inventors: Anthony Amaro, Jr. (Cedar Park, TX); Mark J. Nixon (Thorndale, TX)
Assignee: FISHER-ROSEMOUNT SYSTEMS, INC.
G05B19/4155G05B2219/31449
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,789,428
App. No.
17/504,928
Granted
Oct 17, 2023
Kind
B2
Abstract

An I/O server service interacts with multiple containerized controller services each implementing the same control routine to control the same portion of the same plant. The I/O server service may provide the same controller inputs to each of the containerized controller services (e.g., representing measurements obtained by field devices and transmitted by the field devices to the I/O server service). Each containerized controller service executes the same control routine to generate a set of controller outputs. The I/O server service receives each set of controller outputs and forwards an “active” set to the appropriate field devices. The I/O server service and other services, such as an orchestrator service, may continuously evaluate performance and resource utilization in the control system, and may dynamically activate and deactivate controller services as appropriate.

Claims (49)

1. A method of selecting active containerized controller services to implement control of an industrial process, the method comprising:

receiving, at one or more I/O server services, a set of process outputs obtained by one or more field devices configured for implementation in a process control system to facilitate controlling a particular portion of an industrial process at a process plant;

generating, at one or more I/O server services, a plurality of sets of controller inputs each corresponding to the received set of process outputs such that each set of controller inputs carries a same set of values as every other set in the plurality of sets of controller inputs;

transmitting, by the one or more I/O server services, each set of controller inputs to a different one of a plurality of controller services, each implemented in a respective container and each executing a same control routine to generate a set of controller outputs to control the same particular portion of the industrial process via the one or more field devices based on the same set of values for the set of controller inputs;

receiving, at the one or more I/O server services, a plurality of sets of controller outputs, each from a different one of the plurality of controller services;

performing, at the one or more I/O server services, an analysis of the plurality of sets of controller outputs;

selecting, by the one or more I/O server services and based on the analysis, an active set of controller outputs from the plurality of sets of controller outputs; and

transmitting, by the one or more I/O server services, the active set of controller outputs to the one or more field devices to drive a process output of the industrial process to thereby control the particular portion of the industrial process.

2. The method of claim 1 , wherein receiving the plurality of sets of controller outputs comprises: subscribing to the plurality of controller services providing the plurality of sets of controller outputs.

3. The method of claim 1 , wherein receiving the plurality of sets of controller outputs comprises: polling each of the plurality of controller services to cause the plurality of controller services to transmit the plurality of sets of controller outputs.

4. The method of claim 1 , further comprising conditioning each set of controller inputs before transmitting each set of controller inputs to a different one of a plurality of controller services, wherein the conditioning includes filtering or scaling signals carrying the sets of controller inputs.

5. The method of claim 1 , further comprising conditioning each set of controller inputs before transmitting each set of controller inputs to a different one of a plurality of controller services, wherein the conditioning includes amplifying signals carrying the sets of controller inputs.

6. The method of claim 1 , further comprising verifying that the active set of controller outputs has been refreshed by the corresponding controller service within a given time period sufficient to confirm that the active set of controller outputs is not stale before transmitting the active set of controller outputs to the one or more field devices.

7. The method of claim 1 , wherein the one or more I/O server services is a plurality of I/O server services each executed in a different container, wherein the plurality of I/O server services includes (i) a first I/O server service that has been designated as an active I/O server service and (ii) one or more other I/O server services, wherein receiving the set of process outputs includes receiving the set of process outputs at each of the plurality of I/O server services.

8. The method of claim 7 , further comprising selecting a second I/O server service as the active I/O server service; and

wherein transmitting the active set of controller outputs comprises transmitting, by the second I/O server service, the active set of controller outputs.

9. The method of claim 8 , further comprising performing a load balancing analysis of the physical resources implementing the plurality of I/O server services; wherein selecting the second I/O server service is in response to the load balancing analysis.

10. The method of claim 7 , wherein at least one of the one or more other I/O server services is configured to transmit the plurality of sets of controller inputs and the plurality of sets of controller outputs to a historian configured to store historical information regarding operation of the process plant.

11. The method of claim 1 , wherein performing the analysis of the plurality of sets of controller outputs comprises evaluating a quality-of-service metric for each set of controller outputs.

12. A process control system configured to select active containerized controller services for implementing control of an industrial process, the process control system comprising:

one or more field devices configured for implementation in a process control system to facilitate controlling a particular portion of an industrial process at a process plant; and

one or more hosts that are communicatively coupled to the one or more field devices and that are configured to execute one or more I/O server services configured to:

(i) receive a set of process outputs obtained by the one or more field devices;

(ii) generate a plurality of sets of controller inputs each corresponding to the received set of process outputs such that each set of controller inputs carries the same set of values as every other set in the plurality of sets of controller inputs;

(iii) transmit each set of controller inputs to a different one of a plurality of controller services, each implemented in a respective container and each executing a same control routine to generate a set of controller outputs to control the same particular portion of the industrial process via the one or more field devices based on the same set of values for the set of controller inputs;

(iv) receive a plurality of sets of controller outputs, each from a different one of the plurality of controller services;

(v) perform an analysis of the plurality of sets of controller outputs;

(vi) select, based on the analysis, an active set of controller outputs from the plurality of sets of controller outputs; and

(vii) transmit the active set of controller outputs to the one or more field devices to drive a process output of the industrial process to thereby control the particular portion of the industrial process.

13. The process control system of claim 12 , wherein the one or more I/O server services are configured to verify that the active set of controller outputs has been refreshed by the corresponding controller service within a given time period sufficient to confirm that the active set of controller outputs is not stale before transmitting the active set of controller outputs to the one or more field devices.

14. The process control system of claim 12 , wherein the one or more I/O server services is a plurality of I/O server services each executed in a different container, wherein the plurality of I/O server services includes (i) a first I/O server service that has been designated as an active I/O server service and (ii) one or more other I/O server services, wherein receiving the set of process outputs includes receiving the set of process outputs at each of the plurality of I/O server services.

15. The process control system of claim 14 , wherein a second I/O server service is selected as the active I/O server service based on a load balancing analysis of physical resources implementing the plurality of I/O server services; and

wherein the plurality of I/O server services transmits the active set of controller outputs by transmitting the active set of controller outputs via the second I/O server service.

16. The process control system of claim 12 , wherein the analysis of the plurality of sets of controller outputs comprises an evaluation of a quality-of-service metric for each set of controller outputs.

17. An input/output (“I/O”) server configured to select active containerized controller services for implementing control of an industrial process, the I/O server comprising:

one or more processors; and

one or more memories, communicatively coupled to the one or more processors, storing machine readable instructions that, when executed by the one or more processors, cause the one or more processors to:

(i) receive a set of process outputs obtained by one or more field devices configured for implementation in a process control system to facilitate controlling a particular portion of an industrial process at a process plant;

(ii) generate a plurality of sets of controller inputs each corresponding to the received set of process outputs such that each set of controller inputs carries the same set of values as every other set in the plurality of sets of controller inputs;

(iii) transmit each set of controller inputs to a different one of a plurality of controller services, each implemented in a respective container and each executing a same control routine to generate a set of controller outputs to control the same particular portion of the industrial process via the one or more field devices based on the same set of values for the set of controller inputs;

(iv) receive a plurality of sets of controller outputs, each from a different one of the plurality of controller services;

(v) perform an analysis of the plurality of sets of controller outputs;

(vi) select, based on the analysis, an active set of controller outputs from the plurality of sets of controller outputs; and

(vii) transmit the active set of controller outputs to the one or more field devices to drive a process output of the industrial process to thereby control the particular portion of the industrial process.

18. The server of claim 17 , wherein the one or more I/O server services are configured to verify that the active set of controller outputs has been refreshed by the corresponding controller service within a given time period sufficient to confirm that the active set of controller outputs is not stale before transmitting the active set of controller outputs to the one or more field devices.

19. The server of claim 12 , wherein the one or more I/O server services is a plurality of I/O server services each executed in a different container, wherein the plurality of I/O server services includes (i) a first I/O server service that has been designated as an active I/O server service and (ii) one or more other I/O server services, wherein receiving the set of process outputs includes receiving the set of process outputs at each of the plurality of I/O server services.

20. The server of claim 14 , wherein the one or more I/O server services is configured to select a second I/O server service as the active I/O server service; and

wherein the plurality of I/O server services transmits the active set of controller outputs by transmitting the active set of controller outputs via the second I/O server service.

21. The server of claim 12 , wherein the analysis of the plurality of sets of controller outputs comprises an evaluation of a quality-of-service metric for each set of controller outputs.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2021
From: AMARO, ANTHONY, JR.; NIXON, MARK J.
To: FISHER-ROSEMOUNT SYSTEMS, INC.
Reel/Frame 057844/0250 →
Continuity (2)
Provisional Application 63211535 · Jun 16, 2021
Related Publication 20220404801A1 · Dec 22, 2022