US-12619209-B2 - Utilizing quality-of-service metrics to facilitate transitions between I/O channels for I/O server services
Abstract
An I/O server service interfaces 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 may utilize a quality-of-service metric to determine which controller outputs and/or I/O channel is “active.” 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.
Inventors
- Anthony Amaro, JR.
- Mark J. Nixon
Assignees
- FISHER-ROSEMOUNT SYSTEMS, INC.
Dates
- Publication Date
- 20260505
- Application Date
- 20211019
Claims (15)
- 1 . A method of transitioning between containerized controller services in a process control environment, the method comprising: receiving process control traffic, at one or more I/O server services, from a plurality of controller services by way of a plurality of I/O channels each of which couples the one or more I/O server services to a different one of the plurality of controller services, wherein the plurality of I/O channels includes a first I/O channel that is designated as an active I/O channel and one or more other I/O channels that are designated as inactive I/O channels, wherein each controller service is implemented in a respective container and is executing a same control routine to generate process control traffic including a set of commands to control a same portion of an industrial process via the same one or more field devices and sends the process control traffic including the set of commands to the same portion of the industrial process including the same one or more field devices via the one or more I/O server services; utilizing, by the one or more I/O server services, the process control traffic received via the first I/O channel to control the one or more field devices to drive one or more process outputs and to thereby control the portion of the industrial process thereby controlling the portion of the industrial process using the process control traffic from a first one of the controller services that is connected to the one or more I/O server services via the first I/O channel; evaluating a plurality of a quality-of-service (“QoS”) metrics for the plurality of I/O channels, wherein each of the QoS metrics corresponds to a different one of the plurality of I/O channels; detecting a second I/O channel from the one or more other I/O channels that has a best QoS metric from the plurality of QoS metrics; and responding to detecting the best QoS metric by transitioning the active I/O channel, including: (i) designating the second I/O channel as the active I/O channel and the first I/O channel as one of the inactive channels; and (ii) utilizing process control traffic received via the second I/O channel to control the one or more field devices to drive the one or more process outputs and to thereby control the portion of the industrial process thereby controlling the portion of the industrial process using the process control traffic from a second one of the controller services that is connected to the one or more I/O server services via the second I/O channel.
- 2 . The method of claim 1 , wherein the QoS metric is a latency metric indicating a length of time associated with delivering the process control traffic to the one or more I/O server services.
- 3 . 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 process control traffic comprises receiving the process control traffic at each of the plurality of I/O server services.
- 4 . The method of claim 3 , further comprising selecting a second I/O server service as the active I/O server service; and wherein utilizing process control traffic received via the second I/O channel to control the one or more field devices comprises controlling the one or more field devices via the second I/O server service.
- 5 . The method of claim 3 , 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 responsive to results of the load balancing analysis.
- 6 . A 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: (i) receive process control traffic from a plurality of controller services by way of a plurality of I/O channels each of which couples the one or more I/O server services to a different one of the plurality of controller services, wherein the plurality of I/O channels includes a first I/O channel that is designated as an active I/O channel and one or more other I/O channels that are designated as inactive I/O channels, wherein each controller service is implemented in a respective container and is executing a same control routine to generate process control traffic including a set of commands to control a same portion of an industrial process via the same one or more field devices and sends the process control traffic including the set of commands to the same portion of the industrial process including the same one or more field devices via the one or more I/O server services; (ii) utilize the process control traffic received via the first I/O channel to control the one or more field devices to drive one or more process outputs and to thereby control the portion of the industrial process thereby controlling the portion of the industrial process using the process control traffic from a first one of the controller services that is connected to the one or more I/O server services via the first I/O channel; (iii) evaluate a plurality of a quality-of-service (“QoS”) metrics for the plurality of I/O channels, wherein each of the QoS metrics corresponds to a different one of the plurality of I/O channels; (iv) detect a second I/O channel from the one or more other I/O channels that has a best QoS metric from the plurality of QoS metrics; and (v) respond to detecting the best QoS metric by transitioning the active I/O channel, including: (a) designate the second I/O channel as the active I/O channel and the first I/O channel as one of the inactive channels; and (b) utilize process control traffic received via the second I/O channel to control the one or more field devices to drive the one or more process outputs and to thereby control the portion of the industrial process thereby controlling the portion of the industrial process using the process control traffic from a second one of the controller services that is connected to the one or more I/O server services via the second I/O channel.
- 7 . The process control system of claim 6 , wherein the QoS metric is a latency metric indicating a length of time associated with delivering the process control traffic to the one or more I/O server services.
- 8 . The process control system of claim 6 , 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 process control traffic includes receiving the process control traffic at each of the plurality of I/O server services.
- 9 . The process control system of claim 8 , 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 utilizing process control traffic received via the second I/O channel to control the one or more field devices comprises controlling the one or more field devices via the second I/O server service.
- 10 . The process control system of claim 8 , further comprising an orchestrator service configured to select a second I/O server service as the active I/O server service; and wherein utilizing process control traffic received via the second I/O channel to control the one or more field devices comprises controlling the one or more field devices via the second I/O server service.
- 11 . A server configured to facilitate transitioning between containerized controller services in a process control environment, the server comprising: a communication interface configured to be communicatively coupled to a plurality of I/O channels each of which couples the communication interface to a different one of a plurality of controller services; one or more processors communicatively coupled to the communication interface; 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 process control traffic from the plurality of controller services by way of the communication interface, wherein the plurality of I/O channels includes a first I/O channel that is designated as an active I/O channel and one or more other I/O channels that are designated as inactive I/O channels, wherein each controller service is implemented in a respective container and is executing a same control routine to generate process control traffic including a set of commands to control a same portion of an industrial process via the same one or more field devices and sends the process control traffic including the set of commands to the same portion of the industrial process including the same one or more field devices via the one or more I/O server services; (ii) utilize the process control traffic received via the first I/O channel to control the one or more field devices to drive one or more process outputs and to thereby control the portion of the industrial process thereby controlling the portion of the industrial process using the process control traffic from a first one of the controller services that is connected to the one or more I/O server services via the first I/O channel; (iii) evaluate a plurality of a quality-of-service (“QoS”) metrics for the plurality of I/O channels, wherein each of the QoS metrics corresponds to a different one of the plurality of I/O channels; (iv) detect a second I/O channel from the one or more other I/O channels that has a best QoS metric from the plurality of QoS metrics; and (v) respond to detecting the best QoS metric by transitioning the active I/O channel, including: (a) designate the second I/O channel as the active I/O channel and the first I/O channel as one of the inactive channels; and (b) utilize process control traffic received via the second I/O channel to control the one or more field devices to drive the one or more process outputs and to thereby control the portion of the industrial process thereby controlling the portion of the industrial process using the process control traffic from a second one of the controller services that is connected to the one or more I/O server services via the second I/O channel.
- 12 . The server of claim 11 , wherein the QoS metric is a latency metric indicating a length of time associated with delivering the process control traffic to the one or more I/O server services.
- 13 . The server of claim 11 , 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 process control traffic includes receiving the process control traffic at each of the plurality of I/O server services.
- 14 . The server of claim 13 , 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 utilizing process control traffic received via the second I/O channel to control the one or more field devices comprises controlling the one or more field devices via the second I/O server service.
- 15 . The server of claim 13 , wherein the one or more I/O server services is configured to receive from an orchestrator service ca selection of a second I/O server service as the active I/O server service; and wherein utilizing process control traffic received via the second I/O channel to control the one or more field devices comprises controlling the one or more field devices via the second I/O server service.
Description
CROSS REFERENCE TO RELATED APPLICATIONS This application claims priority to and the benefit of U.S. Application Ser. No. 63/211,535, filed Jun. 16, 2021 and titled “SOFTWARE DEFINED PROCESS CONTROL SYSTEM FOR INDUSTRIAL PROCESS PLANTS,” the entire disclosure of which is expressly incorporated herein by reference. TECHNICAL FIELD The present application relates generally to industrial process control systems of industrial process plants and, more particularly, to industrial process control systems that are software defined. BACKGROUND Current distributed industrial process control systems, like those used in chemical, petroleum, industrial or other process plants to manufacture, refine, transform, generate, or produce physical materials or products, typically include one or more process controllers communicatively coupled to one or more field devices via physical layers that may be analog, digital or combined analog/digital buses, or that may include one or more wireless communication links or networks. The field devices, which may be, for example, valves, valve positioners, switches and transmitters (e.g., temperature, pressure, level and flow rate sensors), are located within the process environment of the industrial process plant (which is interchangeably referred to herein as a “field environment” or a “plant environment” of the industrial process plant), and generally perform physical process control functions such as opening or closing valves, measuring process and/or environmental parameters such as flow, temperature or pressure, etc. to control one or more processes executing within the process plant or system. Smart field devices, such as the field devices conforming to the well-known FOUNDATION® Fieldbus protocol may also perform control calculations, alarming functions, and other control functions commonly implemented within the controller. The process controllers, which are also typically located within the plant environment, but may be located in a back-end, protected environment associated with the plant, receive signals indicative of process measurements made by the field devices and/or other information pertaining to the field devices and execute a control routine or application that runs, for example, different control modules which utilize different control algorithms make process control decisions, generate process control signals based on the received information and coordinate with the control modules or blocks being performed in the field devices, such as HART®, WirelessHART®, and FOUNDATION® Fieldbus field devices. Other types of field devices may include, for example, spectrometric devices which may be used for quality control and purity verification, e.g., in specialty chemical and pharmaceutical process plants. Examples of spectrometric field devices include NIR (Near-infrared), UV-VIS (ultraviolet-visible), and Raman spectrometers, to name a few. Spectrometric field devices may be controlled or managed by controllers or device managers which typically instruct the spectrometric devices when to collect data, when to transmit collected data, etc. I/O devices disposed between the field devices and the controllers enable communications therebetween. For example, control modules in a process controller send the control signals to various different input/output (I/O) devices, which then send these control signals over specialized communication lines or links (communication physical layers) to the actual field devices to thereby control the operation of at least a portion of the process plant or system, e.g., to control at least a portion of one or more industrial processes (e.g., physical processes) running or executing within the plant or system. In another example, spectrometric managers or controllers transmit instructions to various I/O devices, which then send the instructions via the specialized communication lines or links to physical spectrometric devices disposed in the industrial process plant. Responsive to the instructions, the spectrometric devices transmit collected data to the managers/controllers and/or to other recipient devices in the process control system via a similar reverse route through the I/O devices. The I/O devices, which are also typically located within the plant environment, are generally disposed between a controller and one or more field devices, and enable communications there-between, e.g., by converting electrical signals into digital values and vice versa. Different I/O devices are provided to support field devices that use different specialized communication protocols. More particularly, a different I/O device is provided between a controller and each of the field devices that uses a particular communication protocol, such that a first I/O device is used to support HART field devices, a second I/O device is used to support Fieldbus field devices, a third I/O device is used to support Profibus field devices, etc. Field devices, controllers, and I/O de