Systems, apparatus, articles, and methods for application marketplace of process control systems
Through cloud-based process control system services, using machine learning models to generate recommendations and automatically change system configurations, the manual intensive operation problems in the existing technology are solved, and more efficient process control system management and automation are achieved.
Patent Information
- Application Number
- CN202380065033.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-08-12
- Filing Date
- 2023-07-11
- Publication Date
- 2025-04-25
AI Technical Summary
The existing distributed control systems are manual intensive in design, debugging and operation, and cannot effectively access the application market customized for process control systems, resulting in suboptimal operations.
The cloud-based process control system service is used to detect the configuration and operational status of the process control system through memory, machine-readable instructions and processor circuits, execute machine learning models to generate recommendations, and change parts of the process control system based on these recommendations.
It realizes automated process control system management, improves operational efficiency, enhances the automation and intelligence of the system, and can more effectively access and utilize the application market of process control systems.
Smart Images

Figure CN119895344A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure relates generally to process control systems and, more particularly, to systems, apparatus, articles of manufacture, and methods for use in the application market of process control systems. Background Art
[0002] Distributed control systems monitor and / or control field devices (such as actuators and sensors) in process control systems. The design, commissioning, and operation of distributed control systems are often manually intensive processes. Distributed control systems may not have access to a market of applications tailored for process control systems. Summary of the invention
[0003] Systems, apparatus, articles of manufacture, and methods for cloud-based process control system services are disclosed.
[0004] An example apparatus includes at least one memory, machine-readable instructions, and a processor circuit that at least one of instantiates or executes the machine-readable instructions to: detect at least one of a configuration or an operating state of a process control system based on telemetry data associated with the process control system, execute a machine learning model to generate an output representing a recommendation to change a portion of the process control system based on at least one of the configuration or the operating state, and cause a change to the portion of the process control system based on the recommendation.
[0005] An example non-transitory machine-readable storage medium includes instructions that, when executed, cause a processor circuit to: based on telemetry data associated with a process control system, at least: detect at least one of a configuration or an operating state of the process control system, execute a machine learning model to generate an output representing a recommendation to change a portion of the process control system based on at least one of the configuration or the operating state, and cause a change to the portion of the process control system based on the recommendation.
[0006] An example method includes detecting at least one of a configuration or an operating state of a process control system based on telemetry data associated with the process control system, executing a machine learning model to generate an output representing a recommendation to change a portion of the process control system based on at least one of the configuration or the operating state, and causing a change to the portion of the process control system based on the recommendation. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Figure 1 An example system including an example process control system and an example market system is depicted.
[0008] Figure 2 Depicted include Figure 1 Another example system of an example process control system and an example marketing system.
[0009] Figure 3 Describes the realization Figure 1 and / or Figure 2 Example workflow for the sample marketplace system.
[0010] Figure 4 is a block diagram of an example recommendation engine circuit that implements the examples disclosed herein.
[0011] Figure 5 is a block diagram of example gateway circuitry that implements the examples disclosed herein.
[0012] Figure 6 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by example processor circuits to implement Figure 4 A recommendation engine circuit is provided to cause a change to a portion of a process control system based on the recommendation.
[0013] Figure 7 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by example processor circuits to implement Figure 4 The recommendation engine circuitry may be used to cause an update of the process control system based on the recommendation.
[0014] Figure 8 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by example processor circuits to implement Figure 4 The recommendation engine circuitry may be configured to cause an update of the first process control system based on the second process control system.
[0015] Fig. 9 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by example processor circuits to implement Figure 4 A recommendation engine circuit is provided to generate recommendations for (multiple) applications based on the operating status of the process control system.
[0016] Fig.10 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by example processor circuits to implement Figure 4 The recommendation engine circuitry may be used to cause an update of the process control system based on the recommendation.
[0017] Fig.11 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by example processor circuits to implement Figure 4A recommendation engine circuit is provided to achieve recovery of the process control system after a failure of the process control system.
[0018] Fig.12 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by example processor circuits to implement Figure 4 The recommendation engine circuit is provided to enable the execution of the application on at least one of the cloud host or the client electronic device.
[0019] Fig.13 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by example processor circuits to implement Figure 4 The recommendation engine circuit of the process control system market is realized.
[0020] Fig.14 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by example processor circuits to implement Figure 5 gateway circuitry, thereby causing changes to field devices based on the recommendations.
[0021] Fig.15 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by example processor circuits to implement Figure 5 The gateway circuit of the process control system causes a change in at least one of firmware or software of the process control system based on the recommendation(s).
[0022] Fig.16 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by example processor circuits to implement Figure 5 The gateway circuit transmits the telemetry data to the server.
[0023] Fig.17 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by example processor circuits to implement Figure 5 The gateway circuit thus implements the recovery operation.
[0024] Fig.18 is a flowchart representing example machine-readable instructions and / or example operations that may be executed by example processor circuits to implement Figure 5 The gateway circuit can upgrade the equipment of the process control system.
[0025] Fig.19is a block diagram of an example processing platform including a processor circuit configured to perform Figure 6-Figure 13 Example machine readable instructions and / or example operations to implement Figure 3 Recommendation engine circuit.
[0026] Fig. 20 is a block diagram of an example processing platform including a processor circuit configured to perform Figure 14-18 Example machine readable instructions and / or example operations to implement Figure 4 Gateway circuit.
[0027] Fig.21 yes Fig.19 and / or Fig. 20 A block diagram of an example implementation of a processor circuit.
[0028] Fig. 22 yes Fig.19 and / or Fig. 20 A block diagram of another example implementation of a processor circuit.
[0029] Fig.23 is a block diagram of an example software distribution platform (e.g., one or more servers) for distributing software (e.g., Figure 6-18 The software (e.g., software corresponding to example machine-readable instructions) is distributed to client devices associated with end-users and / or consumers (e.g., for licensing, sale, and / or use), retailers (e.g., for sale, resale, licensing, and / or sublicensing), and / or original equipment manufacturers (OEMs) (e.g., for inclusion in products to be distributed to, for example, retailers and / or other end-users such as direct purchasing customers).
[0030] In general, the same reference numerals will be used to refer to the same or like parts throughout the drawings(s) and the accompanying description.The drawings are not drawn to scale. DETAILED DESCRIPTION
[0031] As used herein, unless otherwise indicated, connection references (e.g., attached, coupled, connected, and joined) may include intermediate members between the elements to which the connection references refer and / or relative movement between these elements. Thus, connection references do not necessarily infer that two elements are directly connected and / or are in a fixed relationship to each other.
[0032] Unless otherwise specifically stated, descriptors such as "first," "second," "third," etc. are used herein without importing or otherwise indicating any meaning of priority, physical order, arrangement in a list, and / or ordering, but are used merely as labels and / or arbitrary names to distinguish elements to facilitate understanding of the disclosed examples. In some examples, the descriptor "first" may be used to refer to an element in a specific embodiment, while the same element may be referred to by a different descriptor (such as "second" or "third") in the claims. In this case, it should be understood that such descriptors are only used to clearly identify those elements that may share the same name, for example.
[0033] As used herein, "approximately" and "approximately" modify their subject matter / values to recognize the potential for variations in real-world applications. For example, as will be appreciated by one of ordinary skill in the art, "approximately" and "approximately" may modify dimensions that may not be exact due to manufacturing tolerances and / or other real-world imperfections. For example, unless otherwise noted in the specification below, "approximately" and "approximately" may indicate that such a dimension may be within a tolerance range of + / - 10%. As used herein, "substantially real time" refers to occurring in a nearly instantaneous manner, recognizing that there may be real-world delays for computational times, transmissions, etc. Therefore, unless otherwise noted, "substantially real time" refers to real time + / - 1 second.
[0034] As used herein, the phrase "communication" (including variations thereof) encompasses direct communication and / or indirect communication through one or more intermediate components and does not require direct physical (e.g., wired) communication and / or continuous communication, but additionally includes selective communication at periodic intervals, predetermined intervals, non-periodic intervals and / or one-time events.
[0035] As used herein, "processor circuitry" is defined as including: (i) one or more special-purpose circuits that are constructed to perform specific operations (multiple) and include one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors), and / or (ii) one or more general-purpose semiconductor-based circuits that can be programmed with instructions to perform specific operations and include one or more semiconductor-based logic devices (e.g., electrical hardware implemented by one or more transistors). Examples of processor circuits include programmable microprocessors, field programmable gate arrays (FPGAs) that can instantiate instructions, central processor units (CPUs), graphics processor units (GPUs), digital signal processors (DSPs), XPUs or microcontrollers, and integrated circuits (such as application-specific integrated circuits (ASICs)). For example, an XPU can be implemented by a heterogeneous computing system that includes multiple types of processor circuits (e.g., one or more FPGAs, one or more CPUs, one or more GPUs, one or more DSPs, etc. and / or combinations thereof) and (multiple) application programming interfaces (APIs) that can assign (multiple) computing tasks to one (or more) of the multiple types of processor circuits that is most suitable for performing the (multiple) computing tasks.
[0036] A process control system (sometimes referred to as an industrial control system) is a system capable of monitoring and adjusting processes or operations in a process control environment (e.g., a factory, power plant, refinery, etc.) to achieve a desired output. For example, the desired output may include a substance (e.g., a chemical substance, composition, or compound), assembly and / or manufacture of a product or commodity. In some examples, a process control system may be used to monitor and / or control various aspects of operations to be performed or implemented in a process control environment, such as manufacturing assemblies, processing chemical raw materials, etc.
[0037] Some process control systems may be controlled by a distributed control system (DCS) and / or otherwise implemented. A DCS may include a system of sensors, controllers, and associated electronic or computing devices or systems distributed throughout a process control environment. Individual components of a DCS may be communicatively coupled to one another via a process control network, which may be implemented by one or more gateways, switches, bus networks, protocols, etc.
[0038] Process control systems become increasingly complex as individual components of process control systems are developed and deployed with increasing data acquisition resolution, processing power, and signal conditioning. A process control system typically includes at least one controller with accompanying inputs and outputs that allow the controller(s) to control and / or acquire signals from various field devices and / or instruments.
[0039] As used herein, the terms "field device" and "instrument" are used interchangeably and refer to components and / or devices (e.g., computing devices, electronic devices, etc.), such as actuators, actuator assemblies, actuator controllers, actuator positioners, sensors (e.g., rate and / or velocity sensors, level sensors, pressure sensors, temperature sensors, etc.), transmitters, valve assemblies, etc., which can be used throughout a process control system to measure and / or control different aspects of the process control system (e.g., other field devices or process control components). As an example, a field device such as a valve (e.g., a valve assembly, a fluid flow control assembly, etc.) can include electrical components and mechanical components. A valve can include electrical components, such as a digital valve positioner, a flow sensor, a pressure sensor, a controller (e.g., a valve controller), etc. A valve can include mechanical components, such as an actuator, a housing, a connecting rod, etc. In some examples, a field device can be a sensor (e.g., a pressure sensor, a temperature sensor, etc.) that monitors a condition or parameter (such as pressure, temperature, etc.) of a valve.
[0040] Typically, the design, commissioning, and operation of a DCS is a manually intensive process. For example, personnel (e.g., developers, engineers, technicians, etc.) may develop schematics or arrangements of multiple field devices and associated devices to implement a process control system. Personnel may individually and manually configure the hardware, software, and / or firmware of multiple field devices. Personnel may manually verify whether updates to the hardware, software, and / or firmware exist, and manually implement updates to the hardware, software, and / or firmware. Typically, personnel do not understand the configuration of similar process control systems, but instead focus on the process control system associated with them. Such manual operations and processes may result in suboptimal operation of the process control system.
[0041] The examples disclosed herein include an example application market or e-commerce (e-commerce) platform for a process control system. In some disclosed examples, the application market is implemented by a service (e.g., a cloud-based service, a software as a service (SaaS) platform, etc.) that can be communicatively coupled to the process control system. For example, the process control system may include a gateway device (e.g., an edge gateway, an edge gateway device, etc.) to facilitate communication between the process control system and the application market service. In some disclosed examples, the gateway device can facilitate one-way communication (e.g., from a process control system to an application market service) or two-way communication (e.g., from a process control system to an application market service, and vice versa).
[0042] In some disclosed examples, an application market service can be an online destination where client electronic devices of a process control system can access, browse, try out and / or purchase applications designed and / or developed for the process control system. In some disclosed examples, a client electronic device of a process control system (which can be a notebook computer, a server, a tablet computer, etc.) can access the application market service to retrieve new (multiple) applications for deployment to monitor and / or control (multiple) parts of the process control system. In some disclosed examples, a client electronic device can access the application market service to retrieve (multiple) new versions of previously deployed (multiple) applications, (multiple) hardware configurations, firmware, etc.
[0043] The examples disclosed herein include machine learning techniques for generating recommendations based on telemetry data associated with a process control system to improve, update, and / or otherwise change (multiple) parts of a process control system. In some disclosed examples, an electronic device (such as a gateway) can execute a machine learning model to classify telemetry data collected from a field device into first data having a first data classification and second data having a second data classification. For example, based on a policy associated with a process control system (e.g., a service level agreement, a data privacy policy, etc.), the gateway can determine that the first data will be transmitted to a server based on (multiple) outputs of the machine learning model, and the second data will be stored locally in the process control system. Advantageously, the examples disclosed herein can call a machine learning model to improve (multiple) parts of a process control system using (multiple) parts of telemetry data that can be shared with the machine learning model by complying with data security and / or privacy policies.
[0044] Go to the attached picture, Figure 1 The illustrated example depicts an example system 100 that includes an example process control system 102 and an example market system 104. The system 100 includes a market system 104 to generate recommendations that can update and / or otherwise modify portions or aspects of the process control system 102 based on machine learning techniques to achieve increased efficiency and / or otherwise improve operations. The illustrated example process control system 102 can be used to control and / or monitor process(es), operations(es), etc. in a process control environment such as a factory, a power plant, a warehouse (e.g., an automated warehouse), etc.
[0045] The process control system 102 includes a first example fluid flow control assembly 106 and a second example fluid flow control assembly 108. The first fluid flow control assembly 106 includes a first example field device 110, a first example actuator 112, and a first example valve 114. The second fluid flow control assembly 108 includes a second example field device 116, a second example actuator 118, and a second example valve 120. The illustrated example fluid flow control assemblies 106, 108 are process control valves, which may include a corresponding one of the actuators 112, 118 and a corresponding one of the valves 114, 120. In some examples, the actuators 112, 118 may be pneumatic actuators, hydraulic actuators, etc. The illustrated example valves 114, 120 are butterfly valves. Alternatively, the valves 114, 120 may be any other type of valves, such as stop valves, gate valves, ball valves, diaphragm valves, plug valves, needle valves, angle valves, etc.
[0046] The illustrated example fluid flow control assemblies 106, 108 include respective ones of the field devices 110, 116. The illustrated example field devices 110, 116 are electronic devices that monitor and / or control physical devices in a process control environment, such as the fluid flow control assemblies 106, 108. In some examples, the first field device 110 can be a transmitter (e.g., a transmitter interface, a transmitter circuit, etc.) that can obtain sensor measurements and / or send sensor measurements to electronic devices (e.g., input / output (I / O) cards, controllers, etc.) of the process control system 102. For example, the first field device 110 can be a transmitter associated with a position sensor of the first valve 114 and / or more generally with the first fluid flow control assembly 106, which can send sensor measurements measured by the position sensor to electronic devices of the process control system 102. In some examples, the second field device 116 can be a pressure sensor (e.g., a pressure transducer, a pressure switch, etc.) of the second valve 120 and / or more generally with the second fluid flow control assembly 108. For example, the second field device 116 may be a pressure sensor associated with the second valve 120 and / or more generally with the second fluid flow control assembly 108 , which may transmit sensor measurements measured by the pressure sensor to electronics of the process control system 102 .
[0047] The process control system 102 includes a first example programmable logic controller (PLC) rack 122 and a second example PLC rack 124. The first PLC rack 122 includes a first example controller 126 and a first example I / O card 128. The second PLC rack 124 includes a second example controller 130 and a second example I / O card 132. In some examples, one (or more) of the first controllers 126 and / or one (or more) of the second controllers 130 are implemented by the processor circuits described herein. For example, one (or more) of the controllers 126, 130 can be a PLC controller, which can be implemented by an ASIC, FPGA, CPU, etc. and / or any (multiple) combination thereof. In some examples, one (or more) of the first I / O cards 128 and / or one (or more) of the second I / O cards 132 are implemented by the processor circuits described herein. For example, one (or more) of the I / O cards 128, 132 can be a PLC I / O card, which can be implemented by an ASIC, FPGA, CPU, etc. and / or any (multiple) combination thereof, respectively. In some examples, the I / O cards 128, 132 are electronic devices that convert analog signals from the field devices 110, 116 into digital data that can be provided to the controllers 126, 130. For example, the first I / O card 128 and the first controller 126 can be coupled together on a backplane (e.g., a programmable logic controller (PLC) backplane, a backplane chassis, etc.) or a backplane system to enable data communication between the first I / O card 128 and the first controller 126. In some examples, the second I / O card 132 and the second controller 130 can be coupled together on a backplane (e.g., a PLC backplane, a backplane chassis, etc.) or a backplane system to enable data communication between the second I / O card 132 and the second controller 130. For example, the backplane can be implemented by an electrical and / or communication bus.
[0048] In the example shown, the first field device 110, and / or more generally, the first fluid flow control assembly 106 is coupled to one of the first I / O cards 128. In the example shown, the second field device 116, and / or more generally, the second fluid flow control assembly 108 is coupled to one of the second I / O cards 132. In some examples, the I / O cards 128, 132 of the PLC chassis 122, 124 can receive and / or otherwise obtain data from the field devices 110, 116. For example, the I / O cards 128, 132 can obtain data such as sensor measurements obtained by the field devices 110, 116, configuration settings associated with the field devices 110, 116 and / or the fluid flow control assemblies 106, 108, hardware version(s) of the hardware of the field devices 110, 116, firmware version(s) of firmware installed on and / or executed by the field devices 110, 116, etc., and / or any combination(s) thereof.
[0049] In some examples, the I / O cards 128, 132 of the PLC chassis 122, 124 can send data to the field devices 110, 116. For example, the I / O cards 128, 132 can send data, such as commands, control signals, configuration settings, etc. In some examples, the controllers 126, 128 can obtain data from the I / O cards 128, 132. For example, the controllers 126, 128 may obtain data such as sensor measurements obtained by the field devices 110, 116, configuration settings associated with the field devices 110, 116 and / or the fluid flow control components 106, 108, hardware version(s) of the field devices 110, 116, hardware version(s) of the hardware of the I / O cards 128, 132, firmware version(s) of firmware installed on and / or executed by the field devices 110, 116, firmware version(s) installed on and / or executed by the I / O cards 128, 132, the like, and / or any combination(s) thereof.
[0050] The illustrated example controllers 126, 130 communicate with a first example workstation 134 and / or a second example workstation 136 via a first example network 138. For example, the first workstation 134 and / or the second workstation 136 may be a personal computer, a desktop computer, a server, a laptop computer, a mobile device (e.g., a smartphone, a tablet computer, etc.), etc. In some examples, the first workstation 134 and / or the second workstation 136 may execute an application (e.g., a software application, a process control system application, etc.) to control and / or monitor the portion(s) of the process control system 102, such as one (or more) of the fluid flow control assemblies 106, 108. In some examples, the application may include a graphical user interface (GUI) to facilitate interaction between a user (e.g., an engineer, a maintenance person, an operator, a supervisor, a technician, etc.) and the process control system 102.
[0051] The first network 138 of the illustrated example is a process control network. For example, the first network 138 can be a private network, an enterprise network, a closed network, etc., which is implemented using any suitable (multiple) wired and / or wireless networks, including, for example, one or more data buses (e.g., data buses implemented by an automation or industrial communication protocol), one or more local area networks (LANs), one or more wireless LANs (WLANs), one or more cellular networks, one or more optical networks, etc. In some examples, the first network 138 or (multiple) portions thereof can be implemented by the Internet. In some examples, the first network 138 or (multiple) portions thereof can be implemented by a virtual private network (VPN).
[0052] The illustrated example process control system 102 includes one or more example field gateways 140. One (or more) of the field gateways 140 is coupled (e.g., communicatively coupled, electrically coupled, etc.) to the first PLC rack 122, the second PLC rack 124, the first workstation 134, and / or the second workstation 136 via the first network 138. In some examples, the field gateway 140 can be implemented by the interface circuits described herein. For example, the field gateway 140 can be a router that enables electronic devices (such as workstations 134, 136) of the process control system 102 to communicate with the example edge gateway 142. In some examples, the field gateway 140 includes and / or otherwise implements gateway functionality, such as modem capabilities. In some examples, one (or more) of the field gateways 140 is implemented in two or more devices (e.g., routers, modems, switches, firewalls, etc.).
[0053] One (or more) of the field gateways 140 communicates with one (or more) of the edge gateways 142 via the example network firewall 144. In some examples, the edge gateway 142 can be implemented by the interface circuit described herein. For example, the edge gateway 142 can be a router that enables an electronic device (such as the field gateway 140) of the process control system 102 to communicate with the market system 104. For example, the edge gateway 142 can implement communication between two networks (e.g., a private network implemented by the first network 138 and a public network such as the Internet). In some examples, the edge gateway 142 includes and / or otherwise implements gateway functions, such as modem capabilities. In some examples, one (or more) of the edge gateways 142 is implemented in two or more devices (e.g., routers, modems, switches, firewalls, etc.).
[0054] The network firewall 144 of the illustrated example can be implemented by hardware, software, and / or firmware. For example, the network firewall 144 can be implemented by an interface circuit to receive data; implemented by a processor circuit to execute and / or instantiate machine-readable instructions to inspect the data; and implemented by a processor circuit to determine whether to send the data to another destination based on the data inspection. In some examples, the network firewall 144 or (multiple) portions thereof can be included in and / or instantiated by one (or more) of the field gateway 140 and / or the edge gateway 142.
[0055] One (or more) of the edge gateways 142 of the illustrated example communicates with the example cloud data center 146 of the market system 102 via a second example network 148. The second network 148 of the illustrated example is the Internet. For example, the second network 148 can be a public network implemented using (multiple) any suitable wired and / or wireless networks, including, for example, one or more LANs, one or more WLANs, one or more cellular networks, one or more optical networks, one or more satellite networks (e.g., line-of-sight satellite networks, off-site satellite networks, etc.), etc. In some examples, the second network 148 or (multiple) portions thereof can be implemented by a VPN.
[0056] The cloud data center 146 of the illustrated example may be implemented by one or more servers (e.g., electronic servers, computer or computing servers, etc.) managed by a cloud provider (e.g., a public cloud provider, a private cloud provider, etc.). In some examples, the cloud data center 146 may be implemented by virtualization of one or more servers (such as a virtualized server), which may include virtualization of physical computing, memory, storage, security, and / or acceleration hardware.
[0057] In some examples, the (multiple) first electronic devices of the cloud data center 146 can be (multiple) servers, (multiple) server devices, or (multiple) server electronic devices. In some examples, the (multiple) second electronic devices of the process control system 102 can be clients, (multiple) client devices, or (multiple) client electronic devices. For example, the field devices 110, 116, the controllers 126, 130, the I / O devices 128, 132, the workstations 134, 136, the field gateway 140, and / or the edge gateway 142 can be (multiple) client electronic devices. In some examples, the workstations 134, 136 can be (multiple) servers, (multiple) server devices, or (multiple) server electronic devices, and one (or more) of the field devices 110, 116, the controllers 126, 130, the I / O devices 128, 132, the field gateway 140, and / or the edge gateway 142 can be (multiple) clients, (multiple) client devices, or (multiple) client electronic devices.
[0058] The cloud data center 146 and / or more generally, the market system 104 includes, instantiates, implements, and / or otherwise causes execution of an example recommendation engine 150. In some examples, the recommendation engine 150 may be implemented by hardware alone or by a combination of hardware and software and / or firmware. Thus, for example, the recommendation engine 150 may be implemented by processor circuits, analog circuits, digital circuits, logic circuits, programmable processors, programmable microcontrollers, graphics processing units (GPUs), digital signal processors (DSPs), application specific integrated circuits (ASICs), programmable logic devices (PLDs), and / or field programmable logic devices (FPLDs), such as field programmable gate arrays (FPGAs).
[0059] In some examples, the recommendation engine 150 can generate (multiple) recommendations to update, upgrade, and / or otherwise change (multiple) portions of the process control system 102. For example, the recommendation engine 150 can use telemetry data as (multiple) inputs to execute a machine learning (ML) model to generate (multiple) outputs, which can include (multiple) recommendations. In some examples, the recommendation engine 150 obtains telemetry data associated with one (or more) of the fluid flow control components 106, 108, the PLC racks 122, 124, the workstations 134, 136, the field gateway 140, and / or the edge gateway 142.
[0060] In some examples, telemetry data may correspond to, represent, and / or otherwise include or indicate data (e.g., data values, metadata, information, measurements, configuration settings, etc.) associated with devices (e.g., mechanical and / or electrical devices) of the process control system 102. In some examples, telemetry data may include quality-related information (e.g., hardware, firmware, and / or software parameters, statistics, etc., hardware reliability data such as mean time between failures (MTBF) data, etc.), configuration information (e.g., hardware, firmware, and / or software properties, settings, features, versions, etc.), or any other analytics-based data associated with the device(s) of the process control system 102. As used herein, such quality-related information, configuration information, and / or analytics-based data is generally referred to as telemetry (e.g., telemetry data, telemetry information, etc.).
[0061] In some examples, the telemetry data may include the type of software application installed on and / or executed by the first workstation 134, the software version of the software application, etc. In some examples, the telemetry data may include the type and / or number of fluid flow control components 106, 108. For example, the telemetry data may include the brand and / or model of the field devices 110, 116, the actuators 112, 118, the valves 114, 120, and / or more generally the fluid flow control components 106, 108. In some examples, the telemetry data may include the hardware version of the processor circuit of the field devices 110, 116, the firmware version of the firmware utilized by the field devices 110, 116, etc. In some examples, the telemetry data may include the type (e.g., vendor or manufacturer brand and / or model, model number, serial number, etc.) of one (or more) of the PLC chassis 122, 124, controllers 126, 130, I / O cards 128, 132, workstations 134, 136, field gateways 140, network firewalls 144, and / or edge gateways 142. In some examples, the telemetry data may include the hardware, software, and / or software version(s) of the corresponding hardware, software, and / or firmware of one (or more) of the PLC chassis 122, 124, controllers 126, 130, I / O cards 128, 132, workstations 134, 136, field gateways 140, network firewalls 144, and / or edge gateways 142.
[0062] In some examples, the telemetry data may include environmental data associated with the process control system 102, such as weather data (e.g., ambient air temperature, precipitation conditions, wind speed, etc.), timestamp data (e.g., time of day, day of week, day of month, day of year, current date / time, etc.), etc. In some examples, the telemetry data may include an operating state (e.g., operating state) of the process control system 102 or its portion(s). For example, the operating state may be a designed operating state, an installed operating state, a fully operational state (e.g., a fully enabled operating state, a fully deployed operating state, a fully configured operating state, etc.), a maintained operating state, a faulty operating state, an upgraded operating state, etc., and / or any combination(s) thereof.
[0063] In some examples, the operating state may be a design operating state, in which the design of the process control system 102 is being implemented. In some examples, the operating state may be an installation operating state, in which the (multiple) parts of the process control system 102 are being assembled, coupled together, and / or otherwise installed to an operating location. In some examples, the operating state may be a fully operational state, in which the process control system 102 is performing its intended (multiple) tasks or (multiple) functions. In some examples, the operating state may be a maintenance operating state, in which the (multiple) parts of the process control system 102 are offline for periodic or non-periodic maintenance. In some examples, the operating state may be a fault operating state, in which the (multiple) parts of the process control system 102 are offline due to a fault of one or more devices of the process control system. In some examples, the operating state may be an upgrade operating state, in which the (multiple) parts of the process control system 102 are offline due to being updated, upgraded, modified, and / or otherwise changed.
[0064] In some examples, the recommendation engine 150 generates (multiple) recommendations based on an example installation profile 152 associated with the process control system 102, such as recommendations to download new applications, update existing firmware of field devices, etc. In some examples, the installation profile 152 can be implemented with data representing an inventory of (multiple) devices included in the process control system 102. For example, the installation profile 152 can include identification of the fluid flow control components 106, 108, the PLC racks 122, 124, the workstations 134, 136, the field gateway 140, the network firewall 144, and / or the edge gateway 142, or (multiple) portions thereof. In some examples, the installation profile 152 can include identification or indication of (multiple) types of (multiple) applications utilized by the workstations 134, 136. In some examples, the installation profile 152 can include identification or determination of (multiple) hardware, software, and / or firmware versions of the hardware, software, and / or firmware of the process control system 102. In some examples, the installation profile 152 may be implemented with data representing a snapshot of the process control system 102 or portion(s) thereof at a particular point in time. For example, the snapshot may include identification of equipment, such as the fluid flow control components 106, 108, hardware versions, software versions, firmware versions, brand / model of equipment, etc., and / or any combination(s) thereof.
[0065] As an example, based on the operating state of the process control system 102, the recommendation engine 150 can recommend the purchase and installation of specific software, firmware and / or hardware configuration instances to the user of the process control system to assist the user during the operating state described above. For example, if the process control system 102 is in a design operating state, the recommendation engine 150 can recommend design simulation applications and licenses. In some examples, if the process control system 102 is in a debugging operating state (e.g., an operating state including a factory acceptance test), the recommendation engine 150 can recommend a factory acceptance test simulation application and license. In some examples, the recommendation engine 150 can recommend asset management applications and licenses during the startup of the process control system 102 to streamline and / or otherwise improve the efficiency of debugging activities. In some examples, during normal operation of the process control system 102, if the collected telemetry data indicates that the process control system 102 has experienced a large number of alarm notifications per unit time (e.g., the number of alarms per day, or some other specified metric), the recommendation engine 150 can recommend alarm management applications and licenses. In some examples, the recommendation engine 150 can recommend application packages and licenses that are useful when the process control system 102 is shut down for maintenance and / or is otherwise not in production operation, such as asset maintenance application packages, software upgrade application packages, firmware upgrade application packages, etc. In some examples, if the process control system 102 experiences a safety trip, the recommendation engine 150 can recommend diagnostic software to determine the cause of the safety failure. In some examples, the recommendation engine 150 can recommend application(s), container(s), firmware, hardware configuration(s), etc. to optimize and / or otherwise improve aspects(s) of the process control system 102 to achieve improved efficiency, utilization, output, etc.
[0066] In some examples, the recommendation engine 150 compiles, generates, and / or instantiates an example marketplace application 154. For example, the recommendation engine 150 can generate an executable binary file that, when executed and / or instantiated by the process circuitry, can cause the marketplace application 154 to be executed as a service (e.g., an application service, a software service, etc.), an application (e.g., a software application), etc. In some examples, the marketplace application 154 is implemented by a web browser. For example, the marketplace application 154 can be launched by a web browser, and the web browser can execute the marketplace application 154 within the web browser. In some examples, the marketplace application 154 or part(s) thereof can be implemented as a web browser plug-in.
[0067] In the illustrated example, one (or more) of the field gateways 140 and one (or more) of the edge gateways 142 execute and / or instantiate an instance of a market application 154. In some examples, the field gateway 140 and / or the edge gateway 142 can execute and / or instantiate the market application 154 to implement various functions associated with the market. For example, the field gateway 140 and / or the edge gateway 142 can execute the market application 154 to search for (multiple) applications in an application repository, directory, or database for download and deployment in the process control system 102. In some examples, the field gateway 140 and / or the edge gateway 142 can execute the market application 154 to identify (multiple) updates to hardware, software, and / or firmware associated with the process control system 102.
[0068] In some examples, the field gateway 140 and / or the edge gateway 142 can execute and / or instantiate a market application 154 to make changes to (multiple) portions of the process control system 102. For example, the market application 154 can send commands, directions, instructions, etc. to one (or more) of the example installation agents 156 to implement the desired or expected changes to the process control system 102. In the example shown, the first controller 126, the second controller 130, the first workstation 134, the second workstation 136, and / or the field gateway 140 execute instances of the installation agent 156. In some examples, the installation agents 156 collect and / or otherwise obtain telemetry data associated with the electronic devices on which they are executed and / or instantiated. For example, the installation agent of the first controller 126 and / or more generally the first PLC chassis 122 can collect and / or otherwise obtain telemetry data associated with the first controller 126, the first I / O card 128, the first field device 110, etc. In some examples, installation agent 156 reports (e.g., periodic reporting, aperiodic reporting, etc.) installed software components and licenses to one (or more) of field gateways 140. In some examples, one (or more) of field gateways 140 can report installed software components and licenses to cloud data center 146 via one (or more) of edge gateways 142.
[0069] In some examples, installation agent 156 may be implemented by hardware alone or by a combination of hardware and software and / or firmware. Thus, for example, installation agent 156 may be implemented by processor circuits, analog circuits, digital circuits, logic circuits, programmable processors, programmable microcontrollers, GPUs, DSPs, ASICs, PLDs, and / or FPLDs.
[0070] As an example, the first of the field gateways 140 can execute an instance of the market application 154 to access an application catalog hosted and / or otherwise maintained by the cloud data center 146. The first of the field gateways 140 can select an application in the application catalog for downloading via the market application 154. For example, the selected application can be a diagnostic tool that evaluates whether the first field device 110 is operating correctly or as expected. After selection, the cloud data center 146 can cause the application to be downloaded to the first of the field gateways 140 for execution (e.g., locally executed to the first of the field gateways 140). For example, the first of the field gateways 140 can call the installation agent 156 to install the application and / or run the application after installation. Advantageously, the first of the field gateways 140 can execute the downloaded application to perform diagnostic functions, operations, etc. that the process control system 102 was previously unable to perform but was used for the downloaded application.
[0071] As another example, the cloud data center 146 may provide telemetry data associated with the first field device 110 to the recommendation engine 150. The recommendation engine 150 may execute the ML model using the telemetry data as input(s) (e.g., model input(s), ML input(s), ML model input(s), etc.) to generate output(s) (e.g., model output(s), ML output(s), ML model output(s), etc.), which may include recommendations for applications to be downloaded to the process control system 102. For example, the recommendation engine 150 may determine that: the first field device 110 is a transmitter associated with a pressure sensor; the transmitter is associated with a diagnostic application stored in an application catalog hosted by the cloud data center 146; and the diagnostic application is not present in the process control system 102. Based on these determinations, the recommendation engine 150 may generate a recommendation identifying the diagnostic application as applicable to and / or compatible with the first field device 110. The recommendation engine 150 may push and / or otherwise send the recommendation to a first one of the field gateways 140. The first of the field gateways 140 may launch the marketplace application 154 to analyze the recommendation. The first of the field gateways 140 may determine to download the diagnostic application identified by the recommendation. The first of the field gateways 140 may download the diagnostic application and cause the diagnostic application to be installed on at least one of the first workstation 134 or the second workstation 136. For example, the first workstation 134 may invoke a local instance of the installation agent 156 to install the diagnostic application and / or run the diagnostic application after installation. Advantageously, at least one of the first workstation 134 or the second workstation 136 may execute the diagnostic application to perform diagnostic functions, operations, etc. that the process control system 102 was previously unable to perform but is for the diagnostic application recommended by the recommendation engine 150.
[0072] Figure 2 A second example system 200 is depicted, which includes Figure 1 The process control system 102, the market system 104 and the edge gateway 142 of the second system 200. The second system 200 includes an example data diode 202. The data diode 202 is a unidirectional network communication device that enables unidirectional transmission of data between segmented networks (such as the first network 138 and the second network 148). In some examples, the data diode 202 is implemented by hardware (e.g., a hardware-based device) having two nodes or circuits (e.g., a first node / circuit that only sends data and a second node / circuit that only receives data), and the two nodes and circuits allow data flow in only one direction. In some examples, the data diode 202 is implemented by software (e.g., a software device, a software service, a software application, etc.). In some examples, the data diode 202 is implemented by a combination of hardware, software and / or firmware. Advantageously, the second system 200 can achieve enhanced security and reduce access to the process control system 102 by utilizing the data diode 202 to force data flow in only one direction.
[0073] Figure 3 Shows the implementation Figure 1 and / or Figure 2 1. The example workflow 300 of the example market system 102 of FIG. The workflow 300 includes a first example phase 302 and a second example phase 304. The first phase 302 is a development phase (identified by DEV), and the second phase 304 is an operation phase (identified by OPS). For example, the first phase 302 may correspond to Figure 1 and / or Figure 2 The second phase 304 may correspond to the planning, coding, building, and / or testing of an application to be executed in the process control system 102. In some examples, the second phase 304 may correspond to the publishing, deployment, running, and / or monitoring of the application.
[0074] The first phase 302 includes a first example sub-phase 306, a second example sub-phase 308, a third example sub-phase 310, and a fourth example sub-phase 312. The first sub-phase 306 is a planning or planning sub-phase (or phase / sub-phase). For example, the planning phase may correspond to the development of an application architecture, technical requirements or specifications of an application, etc. The second sub-phase 308 is a code or coding sub-phase. For example, the coding phase may correspond to the development of pseudocode, human-readable code, and / or machine-readable code (e.g., compiled code). In some examples, the pseudocode, human-readable code, and / or machine-readable code may be stored in an example code repository 314. The third sub-phase 310 corresponds to a build or build sub-phase. For example, the build phase may correspond to compiling and / or otherwise assembling (multiple) portions of an application into an executable construct, such as a web browser plug-in, an executable file, etc. In some examples, the build phase may include containerizing (multiple) portions of an application, which may include segmenting (multiple) portions of an application into one or more containers (e.g., virtual containers, containerized applications, etc.). The fourth sub-phase 312 corresponds to a test or test sub-phase. For example, the testing phase may correspond to performing a quality review and / or quality control on the built application and / or the built container(s).
[0075] The second stage 304 includes a fifth example sub-stage 314, a sixth example sub-stage 316, a seventh example sub-stage 318, and a seventh example sub-stage 320. The fifth sub-stage 314 is a publishing or release sub-stage. For example, the fifth sub-stage 314 can correspond to pushing the tested (multiple) applications / containers into the example catalog 322. In some examples, the catalog 322 can be implemented by a data store, a database, a data repository, etc., which can store (multiple) applications / containers and can facilitate Figure 1 and / or Figure 2 The market application 154 retrieves (multiple) applications / containers.
[0076] The sixth sub-phase 316 is deployment or a deployment sub-phase. For example, the deployment phase may correspond to pushing (e.g., based on a recommendation) the application / container(s) from the catalog 322 to (e.g., electronic devices) of the process control system 102, such as Figure 1 and / or Figure 2 The first workstation 134 and / or the second workstation 136. In some examples, the deployment phase may correspond to the electronic device(s) of the process control system 102 downloading the application / container(s) from the catalog 322.
[0077] The seventh sub-phase 318 is an operation, run, or run sub-phase. For example, the operation phase may correspond to the process control system 102 running in a typical or fully operational state. In some examples, the operation phase may correspond to the market application 154 accessing the catalog 322 via an example catalog application programming interface (API) 324. For example, the market application 154 (e.g., a user interfaced with the market application 154) may browse, view, research, etc. (multiple) applications / containers (e.g., third-party applications or applications developed by non-cloud data centers 146, applications provided by cloud data centers 146, etc.). In some examples, the market application 154 may review, inspect, etc. a product list of the catalog 322, which includes deployment definitions associated with the (multiple) applications / containers in the catalog 322, which may include firmware / software versions, hardware / software / firmware computability requirements, etc.
[0078] The eighth sub-phase 320 is a monitor or monitoring sub-phase. For example, the monitoring sub-phase may correspond to the process control system 102 executing (e.g., executing locally within the process control system 102) (multiple) applications / containers from the catalog 322 and sending telemetry data to the cloud data center 146 for ingestion by the recommendation engine 150. In some examples, the monitoring sub-phase may correspond to the recommendation engine 150 executing the ML model to generate (multiple) outputs based on the telemetry data. For example, the (multiple) outputs may include recommendations, such as downloading a new version of a previously downloaded application / container from the catalog 322, downloading a new available application or container (e.g., a beta version, a final release version, etc.) from the catalog 322 for execution in the process control system 102.
[0079] Figure 4 is a block diagram of a recommendation engine circuit 400 that generates recommendations to modify (multiple) portions of a process control system 102 to increase the efficiency of the process control system 102 and / or otherwise improve its operation. In some examples, Figure 1 and / or Figure 2 The recommendation engine 150 may be implemented by the recommendation engine circuit 400 .
[0080] Figure 4 The recommendation engine circuit 400 may be instantiated (e.g., created as an instance, generated for any length of time, materialized, realized, etc.) by a processor circuit (such as a central processing unit) executing instructions. Additionally or alternatively, Figure 4 The recommendation engine circuit 400 may be instantiated (e.g., created as an instance, generated in any length of time, embodied, implemented, etc.) by an ASIC or FPGA, which is configured to perform operations corresponding to the instructions. It should be understood that Figure 4Some or all of the recommendation engine circuitry 400 may therefore be instantiated at the same or different times. For example, Figure 4 Some or all of the recommendation engine circuit 400 may be instantiated in one or more threads that execute concurrently on hardware and / or serially on hardware. Figure 4 Some or all of the recommendation engine circuitry 400 may be implemented by a microprocessor circuit that executes instructions to implement one or more virtual machines and / or containers.
[0081] Figure 4 The recommendation engine circuit 400 includes an example interface circuit 410, an example configuration detection circuit 420, an example operating state detection circuit 430, an example machine learning (ML) circuit 440, an example recommendation generation circuit 450, an example process control update circuit 460, an example data store 470, and an example bus 490. In this example, the data store 470 stores and / or otherwise includes example telemetry data 472, example configuration data 474 (indicated by CONFIG DATA), (multiple) example ML models 476, an example catalog 478, example policy data 480, and an example token repository 482. Figure 4 In the example shown, the interface circuit 410, the configuration detection circuit 420, the operation state detection circuit 430, the ML circuit 440, the recommendation generation circuit 450, the process control update circuit 460 and / or the data storage 470 communicate with each other via a bus 490. For example, the bus 490 can be implemented by at least one of an Inter-Integrated Circuit (IC) bus, a Serial Peripheral Interface (SPI) bus, a Peripheral Component Interconnect (PCI) bus, or a Peripheral Component Interconnect Express (PCIe or PCIE) bus. Additionally or alternatively, the bus 490 can be implemented by any other type of computing or electrical bus.
[0082] The recommendation engine circuit 400 of the illustrated example includes an interface circuit 410 for obtaining data and / or transmitting data. In some examples, the interface circuit 410 is configured to execute interface instructions and / or to perform operations such as Figure 6 , Figure 7 , Figure 8 , Fig. 9 , Fig.10 , Fig.11 , Fig.12 and / or Fig.13The flowchart represents the operation of a processor circuit to instantiate.
[0083] In some examples, the interface circuit 410 obtains data, such as telemetry data, from the process control system 102. For example, the interface circuit 410 can obtain telemetry data from one (or more) of the edge gateways 142 and / or one (or more) of the field gateways 154. In some examples, the telemetry data is associated with the field devices 110, 116, the PLC chassis 122, 124, the workstations 134, 136, the field gateway 140, and / or the edge gateway 142. In some examples, the interface circuit 410 can obtain telemetry data, such as data indicating access of applications in the directory 478, by client electronic devices (e.g., workstations 134, 136, field gateways 140, edge gateways 142, PLC chassis 122, 124, field devices 110, 116, etc.) of the process control system.
[0084] In some examples, the interface circuit 410 obtains telemetry data 472, which may include control system performance data of the process control system 102. For example, the control system performance data may include diagnostic data associated with the PLC chassis 122, 124, such as the number of messages processed per second, the number of interrupts processed, utilization parameters (e.g., the percentage of CPU utilized, the percentage of memory or mass storage utilized, etc.), etc. Advantageously, such control system performance data may enable the ML circuit 440 to analyze performance issues within the process control system 102 and recommend applications, products, services, etc. to mitigate and / or resolve detected performance issues.
[0085] In some examples, the interface circuit 410 obtains telemetry data 472, which may include usage data for improving product or sales funnel conversion to improve marketing strategies associated with the product, thereby increasing conversion rates. For example, the usage data may be based on control system performance data or any other data associated with the use of (multiple) parts of the process control system 102. In some examples, the usage data may be used to improve the products for use or sale provided by the market system 104. In some examples, the usage data may be used as (multiple) inputs of (multiple) ML models 476 to generate (multiple) outputs, which may include a sales conversion funnel. In some examples, the sales conversion funnel is a visual representation of the stages associated with the journey of a user of the process control system 102, such as a web page or browser page that logs into the market application 154 and completes a purchase through the market application 154. Advantageously, the sales conversion funnel may be used to improve the marketing strategies associated with the products for use or sale provided by the market system 104 to increase and / or otherwise improve conversion rates (e.g., sales conversion rates).
[0086] In some examples, the interface circuit 410 obtains telemetry data 472, which may include power diagnostic data associated with the process control system 102. For example, the power diagnostic data may be data associated with a battery-powered wireless instrument or a conventional power source used in a fixed installation. The ML circuit 440 may monitor the power subsystem, thereby monitoring the operational health of the smart power system visible to the cloud data center 146 in the process control system 102, and detecting potential overloads or exceeding allowed power utilization. Advantageously, the recommendation generation circuit 450 may output recommendations for larger capacity power sources or facilities to extend the power capabilities of components and instruments in the process control system 102. Advantageously, the ML circuit 440 and / or more generally the recommendation engine circuit 400 may perform such power diagnostic monitoring to detect and resolve power surges and potential damage caused by ground loops, lightning strikes, or other electrical phenomena.
[0087] In some examples, the interface circuitry 410 may obtain an application and / or container from a developer for execution by the process control system 102. For example, the interface circuitry 410 may obtain an application and / or container from a content generation source other than the cloud data center 146 (eg, a third-party developer).
[0088] In some examples, the interface circuit 410 transmits data, such as application(s) and / or containers, to an electronic device, such as the edge gateway 142. For example, the interface circuit 410 may determine that a request to restore the process control system 102 has been received after a failure of the portion(s) of the process control system 102. In some examples, the interface circuit 410 may distribute and / or otherwise send the application(s) to the process control system 102 to cause a recovery of the process control system 102 after the portion(s) of the process control system has failed or is unresponsive.
[0089] In some examples, the interface circuit 410 may determine that a request to access an application has been received. For example, the market application 154 of the field gateway 140 may request access to an application from the directory 322, which may be determined by Figure 4 478 of the process control system 102. Advantageously, the market application 154 can be executed to filter the applications in the catalog 322 based on the current or installed versions of the hardware, software, and / or firmware of the process control system 102. Advantageously, the market application 154 can ensure that the selected application is compatible with the process control system 102. In some examples, the interface circuit 410 can obtain a request from the market application 154 of the field gateway 140 and cause the application to be downloaded to a client electronic device (e.g., a workstation 134, 136, a field gateway 140, an edge gateway 142, a PLC chassis 122, 124, a field device 110, 116, etc.) of the process control system 100 for local execution.
[0090] In some examples, the interface circuit 410 can transmit data (such as alarms, bulletins, messages, notices, notifications, etc.) to a market application 154 of a device (such as an edge gateway 142 and / or a field gateway 140). For example, an alarm can indicate the availability of a software license that is not deployed in the process control system 102. In some examples, the alarm can indicate the availability of a newer or updated version of a software license that is deployed in the process control system 102. In some examples, the alarm can indicate the availability of a beta version (or pre-release version) of an application and / or container to (multiple) users of the process control system 102 who choose to receive beta version alarms. For example, these users can inquire or prove interest in unreleased software to provide a mechanism for the cloud data center 146 to estimate the market acceptance of new technologies, concepts, or strategies before developing released software. In some examples, the market application 154 can present advertisements (e.g., paid advertisements) to end users to promote and / or describe products available through the market application 154, such as software or services.
[0091] In some examples, the interface circuitry 410 determines whether to continue monitoring the process control system 102. For example, the interface circuitry 410 may determine whether to continue requesting and / or collecting telemetry data associated with the process control system 102. In some examples, the interface circuitry 410 may determine whether there is new and / or otherwise unprocessed telemetry data associated with the process control system 102 for acquisition by the ML circuitry 440 for ingestion, as described herein.
[0092] The recommendation engine circuit 400 of the illustrated example includes a configuration detection circuit 420 to detect the configuration of the process control system 102 based on telemetry data associated with the process control system 102. In some examples, the configuration detection circuit 420 is configured to execute configuration detection instructions and / or is configured to perform such as Figure 6 , Figure 7 , Figure 8 , Fig. 9 , Fig.10 , Fig.11 , Fig.12 and / or Fig.13 The flowchart represents the operation of a processor circuit to instantiate.
[0093] In some examples, the interface circuit 410 can obtain telemetry data, which can include a configuration of the process control system 102; and store the configuration as configuration data 474 in the data store 470. In some examples, the configuration detection circuit 420 can determine that the configuration of the process control system 102 includes the number and / or type of components of the process control system, such as the number and / or type of fluid flow control components 106, 108, field devices 110, 116, PLC chassis 122, 124, workstations 134, 136, field gateways 140, edge gateways 142, etc. In some examples, the configuration detection circuit 420 can determine that the configuration of the process control system 102 includes specific hardware, software, and / or firmware versions associated with components of the process control system, such as the hardware, software, and / or firmware versions associated with the fluid flow control components 106, 108, field devices 110, 116, PLC chassis 122, 124, workstations 134, 136, field gateways 140, edge gateways 142, etc. In some examples, the configuration detection circuit 420 can determine that the configuration of the process control system 102 includes brands, models, vendor identifiers, manufacturing serial numbers, etc. associated with fluid flow control components 106, 108, field devices 110, 116, PLC racks 122, 124, workstations 134, 136, field gateways 140, edge gateways 142, etc.
[0094] In some examples, the configuration detection circuit 420 can detect and / or otherwise determine that the process control system 102 has recovered from a faulty or unresponsive condition. For example, the configuration detection circuit 420 can determine that a previously identified faulty / unresponsive component is operational and / or otherwise performing in an expected manner based on telemetry data from the previously identified faulty or unresponsive component.
[0095] In some examples, the configuration detection circuit 420 can be based on Figure 1 The process control system 102 is configured to identify Figure 1 For example, the configuration detection circuit 420 may determine that the process control system 102 is different from the process control system 102. Figure 1The first configuration in the configuration data 474 associated with the process control system 102 is similar to (e.g., matches, partially matches, etc.) a second configuration in the configuration data 474 associated with a different process control system (e.g., a process control system in communication with the cloud data center 146). For example, the configuration detection circuitry 420 may identify application(s), container(s), hardware version(s), software version(s), firmware version(s), etc. associated with the different process control system. Advantageously, the ML circuitry 440 may generate recommendations for the process control system 102 based on the second configuration. For example, the ML circuitry 440 may execute the ML model(s) 476 to identify updates, improvements, changes, etc. experienced by the different process control system. Figure 1 (multiple) aspects of the process control system 102.
[0096] The recommendation engine circuit 400 of the illustrated example includes an operating state detection circuit 430 to detect an operating state of the process control system based on telemetry data associated with the process control system 102. In some examples, the operating state detection circuit 430 is configured to execute operating state detection instructions and / or to perform operations such as Figure 6 , Figure 7 , Figure 8 , Fig. 9 , Fig.10 , Fig.11 , Fig.12 and / or Fig.13 The operation state detection circuit 430 can be instantiated by a processor circuit that performs the operations represented by the flowchart of . For example, the operation state detection circuit 430 can detect that the process control system 102 is in a design operation state, an installation operation state, a full operation state, a maintenance operation state, a fault operation state, an upgrade operation state, etc. and / or any (multiple) combinations thereof.
[0097] The recommendation engine circuit 400 of the illustrated example includes an ML circuit 440 to execute an ML model based on (multiple) ML inputs to generate (multiple) ML outputs. In some examples, the ML circuit 440 is configured to execute ML instructions and / or to perform operations such as Figure 6 , Figure 7 , Figure 8 , Fig. 9 , Fig.10 , Fig.11 , Fig.12 and / or Fig.13 The flowchart represents the operation of a processor circuit to instantiate.
[0098] Artificial intelligence (AI), including machine learning (ML), deep learning (DL), and / or other artificial machine-driven logic, enables a machine (e.g., a computer, logic circuit, etc.) to process input data using a model to generate outputs based on patterns and / or associations that the model has previously learned through a training process. For example, ML model(s) 476 may be trained with data to recognize patterns and / or associations, and follow such patterns and / or associations when processing input data so that other input(s) produce output(s) consistent with the recognized patterns and / or associations.
[0099] There are many different types of machine learning models and / or machine learning architectures. In some examples, the ML circuit 440 generates (multiple) ML models 476 as (multiple) neural network models. The ML circuit 440 can call the interface circuit 410 to send (multiple) ML models 476 to an external computing or electronic system. The use of a neural network model enables the ML circuit 440 to perform AI / ML workloads. Typically, the machine learning model / architecture suitable for the example methods disclosed herein includes a recurrent neural network. However, other types of machine learning models, such as supervised learning ANN models, clustering models, classification models, etc. and / or combinations thereof, may be used in addition or alternatively. An example supervised learning ANN model may include a two-layer (2-layer) radial basis function neural network (RBN), a learning vector quantization (LVQ) classification neural network, etc. Example clustering models may include k-means clustering, hierarchical clustering, mean shift clustering, density-based clustering, etc. Example classification models may include logistic regression, support vector machines or networks, Naive Bayes, etc. In some examples, ML circuitry 440 may compile and / or otherwise generate one (or more) of ML model(s) 476 as a lightweight machine learning model.
[0100] Typically, implementing an ML / AI system involves two phases, a learning / training phase and an inference phase. In the learning / training phase, the ML model(s) 476 are trained based on, for example, training data using a training algorithm to operate according to patterns and / or associations. Typically, the ML model(s) 476 include internal parameters that direct how input data is converted to output data, such as by a series of nodes and connections within the ML model(s) 476. Additionally, hyperparameters are used as part of the training process to control how learning is performed (e.g., learning rate, number of layers used in the machine learning model, etc.). Hyperparameters are defined as training parameters determined prior to starting the training process.
[0101] Different types of training may be performed based on the type of ML / AI model and / or expected output. For example, ML circuitry 440 may invoke supervised training to select parameters of (multiple) ML models 476 using inputs and corresponding expected (e.g., labeled) outputs (e.g., by iteratively selecting combinations of parameters), which reduces model error. As used herein, a "label" refers to an expected output of a machine learning model (e.g., a classification, an expected output value, etc.). Alternatively, ML circuitry 440 may invoke unsupervised training (e.g., for deep learning, a subset of machine learning, etc.), which involves inferring patterns from inputs to select parameters of (multiple) ML models 476 (e.g., without the benefit of expected (e.g., labeled) outputs).
[0102] In some examples, the ML circuit 440 uses unsupervised clustering of operational observables to train the ML model(s) 476. For example, the operational observables may include a vendor identifier, a media access control (MAC) address, a serial number, a hardware version, a software version, a firmware version, an operating state, a configuration, etc. associated with the process control system. However, the ML circuit 440 may additionally or alternatively use any other training algorithm, such as stochastic gradient descent, simulated annealing, particle swarm optimization, evolutionary algorithms, genetic algorithms, nonlinear conjugate gradients, etc.
[0103] In some examples, the ML circuit 440 may train the (multiple) ML model 476 until the error level no longer decreases. In some examples, the ML circuit 440 may train the (multiple) ML model 476 locally on the cloud data center 146 and / or remotely at an external computing system that is communicatively coupled to the cloud data center 146. In some examples, the ML circuit 440 trains the (multiple) ML model 476 using hyperparameters that control how learning is performed (e.g., learning rate, the number of layers used in the machine learning model, etc.). In some examples, the ML circuit 440 may use hyperparameters that control model performance and training speed, such as learning rate and (multiple) regularization parameters. The ML circuit 440 may select such hyperparameters by, for example, trial and error to achieve optimal model performance. In some examples, the ML circuit 440 utilizes Bayesian hyperparameter optimization to determine the best and / or otherwise improved or more efficient network architecture to avoid model overfitting and improve the overall applicability of the (multiple) ML model 476. Alternatively, ML circuitry 440 may use any other type of optimization. In some examples, ML circuitry 440 may perform retraining. ML circuitry 440 may perform such retraining in response to an overload of users of cloud data center 146, receipt of new training data, etc.
[0104] In some examples, ML circuit 440 uses training data to facilitate training of (multiple) ML model 476. In some examples, ML circuit 440 utilizes training data derived from locally generated data. In some examples, ML circuit 440 utilizes training data derived from externally generated data (such as telemetry data 472). In some examples using supervised training, ML circuit 440 can label the training data (e.g., label the training data or (multiple) portions thereof as having a first data classification, a second data classification, etc.). Labels are applied to the training data manually by a user or by an automatic data preprocessing system. In some examples, ML circuit 440 can use interface circuit 410 to preprocess the training data to parse and / or otherwise examine the data of interest of telemetry data 472. In some examples, ML circuit 440 subdivides the training data into a first portion of data for training (multiple) ML model 476 and a second portion of data for validating (multiple) ML model 476.
[0105] Once training is complete, ML circuitry 440 may deploy ML model(s) 476 to serve as an executable construct that processes inputs and provides outputs based on the network of nodes and connections defined in ML model(s) 476. ML circuitry 440 may store ML model(s) 476 in data store 470. In some examples, ML circuitry 440 may call interface circuitry 410 to send ML model(s) 476 to one (or more) of the external computing systems. In some such examples, in response to sending ML model(s) 476 to one (or more) of the external computing systems, one (or more) of the external computing systems may execute ML model(s) 476 to perform the AI / ML workload with at least one of improved efficiency or performance.
[0106] Once trained, one (or more) of the deployed (multiple) ML models 476 can be run in the inference phase to process data. In the inference phase, the data to be analyzed (e.g., real-time data) is input to the (multiple) ML model 476, and the (multiple) ML model 476 executes to create output. This inference phase can be thought of as the AI "thinking" to generate output based on what it has learned from training (e.g., applying the learned patterns and / or associations to real-time data by executing the (multiple) ML model 476). In some examples, the input data undergoes pre-processing before being used as input to the (multiple) ML model 476. In addition, in some examples, the output data can undergo post-processing after being generated by the (multiple) ML model 476 to convert the output into a useful result (e.g., display of data, detection and / or identification of objects, instructions for the machine to execute, etc.).
[0107] In some examples, the output of one (or more) of the deployed ML model(s) 476 can be captured and provided as feedback. By analyzing the feedback, the accuracy of one (or more) of the deployed ML model(s) 476 can be determined. If the feedback indicates that the accuracy of the deployed model is less than a threshold or other criterion, the feedback and updated training data set, hyperparameters, etc. can be used to trigger training of the updated model to generate an updated deployed model.
[0108] In some examples, the ML circuitry 440 executes the ML model(s) 476 to generate output(s) based on at least one of the configuration data 474 or an operating state of the process control system 102. In some examples, the output(s) represent recommendations for modifying the portion(s) of the process control system 102. In some examples, the output(s) represent data classifications of the telemetry data 472. For example, the ML circuitry 440 may determine that a first portion of the telemetry data 472 may be classified with a first data classification and a second portion of the telemetry data 472 may be classified with a second data classification. In some examples, data associated with the first data classification may be excluded from recommendation generation based on and / or specified by the policy data 480. In some examples, data associated with the second data classification may be included and / or otherwise selected into recommendation generation based on and / or specified by the policy data 480.
[0109] The recommendation engine circuitry 400 of the illustrated example includes a recommendation generation circuitry 450 to generate recommendations for modifying the portion(s) of the process control system 102. In some examples, the recommendation generation circuitry 450 is configured to execute recommendation generation instructions and / or to perform operations such as Figure 6 , Figure 7 , Figure 8 , Fig. 9 , Fig.10 , Fig.11 , Fig.12 and / or Fig.13 The flowchart represents the operation of a processor circuit to instantiate.
[0110] In some examples, the recommendation generation circuit 450 can identify (multiple) changes to the process control system 102 based on the configuration of the process control system 102. For example, the recommendation generation circuit 450 can identify a first application run by the first workstation 134. In some examples, the recommendation generation circuit 450 can generate a recommendation to run a second application associated with the first application. For example, the first application can be used to monitor and / or control a type of valve, and the second application can be a software package (e.g., an additional software package) to troubleshoot the type of valve and / or otherwise perform diagnostic functions. In some examples, the second application can be a software infrastructure, such as a VPN, a firewall, a software data diode (e.g., based on software or implemented data diodes), etc. and / or any (multiple) combination thereof. For example, the recommendation generation circuit 450 can recommend the deployment of at least one of a VPN, a firewall, or a software data diode, and cause the process control update circuit 460 to deploy at least one of the VPN, the firewall, or the software data diode.
[0111] In some examples, the recommendation generation circuitry 450 may determine that a monetary cost is associated with the change(s) to the process control system 102. For example, the recommendation generation circuitry 450 may determine the monetary cost based on an identification of a customer or user of the process control system 102, a service level agreement associated with the process control system 102, predefined pricing specified by a sales agreement or contract associated with the process control system 102, and the like.
[0112] In some examples, the recommendation generation circuitry 450 may identify change(s) to the process control system 102 based on the configuration of the different process control systems. For example, the recommendation generation circuitry 450 may generate a recommendation for the process control system 102 to download an application to the process control system 102 based on different process control systems that utilize the application in a similar manner, context, configuration, etc. In some examples, the recommendation generation circuitry 450 may generate a recommendation to access a support service (e.g., an automated or live technical support service) associated with the recommended application.
[0113] In some examples, the recommendation generation circuitry 450 generates recommendations based on an operational state of the process control system. For example, the recommendation generation circuitry 450 may generate recommendations for application(s), container(s), etc. associated with the process control system in a designed operational state, a fully enabled operational state, a maintenance operational state, etc. In some examples, the recommendation generation circuitry 450 may generate recommendations to access support services (e.g., automated or live technical support services) associated with the recommended application(s), container(s), etc.
[0114] In some examples, the recommendation generation circuit 450 causes the sale of (multiple) physical products associated with the process control system 102. For example, the recommendation generation circuit 450 may determine that a new model or version of the first controller 126 is available that may be more capable and / or able to resolve the detected, known, or observed control performance issues. Advantageously, the new model / version of the first controller 126 can be ordered through the market application 154 and shipped to a customer account address associated with the process control system 102. As another example, the recommendation generation circuit 450 may determine that the first workstation 134 is identified as end of life (EOL) and is no longer supported. The recommendation generation circuit 450 may identify that a new model or version of the first workstation 134 that is compatible with the requirements, specifications, etc. of the process control system 102 is available. In some examples, the recommendation generation circuit 450 may generate a customization of the new model / version of the first workstation 134 to ensure that the new model / version meets or satisfies the size specifications, features, functions, etc. required to operate the process control system 102. Advantageously, a new model / version of the first workstation 134 may be ordered through the marketplace application 154 and shipped to a customer account address associated with the process control system 102. In some examples, the recommendation generation circuitry 450 may generate a recommendation to access support services (e.g., automated or live technical support services) associated with a physical product that has been installed in the process control system 102 and / or a selected physical product for deployment in the process control system 102.
[0115] In some examples, the recommendation generation circuitry 450 can identify new and / or improved deployments of safety instrumented systems (SIS) to the process control system 102. For example, a SIS can be hardware, software, and / or firmware that can be executed and / or instantiated to transition the process control system 102, or portions thereof, to a safe state when a predetermined condition is violated or breached. Advantageously, the recommendation generation circuitry 450 can recommend a SIS based on output from the ML circuitry 440, which can represent an analysis of the configuration of the process control system 102. For example, the recommendation generation circuitry 450 can generate a recommendation including a configuration and / or deployment of a SIS in the process control system 102 based on telemetry data 472 associated with the process control system 102.
[0116] In some examples, the recommendation generation circuitry 450 may identify improvements to the computer or electronic security of the process control system 102. For example, the recommendation generation circuitry 450 may identify the absence of a security device (e.g., a physical security device such as a hardware firewall or data diode, a virtual security device such as a software firewall, data diode, or network intrusion application, etc.). Advantageously, available security devices for improving the security of the process control system 102 may be ordered through the marketplace application 154 and shipped to a customer account address associated with the process control system 102 and / or available for download to the process control system 102.
[0117] In some examples, the recommendation generation circuitry 450 may identify security improvements by managing computing or electronic assets associated with the process control system 102. For example, the recommendation generation circuitry 450 may generate an inventory of electronic devices associated with the process control system 102; identify recommended security actions associated with the electronic devices; and output a security report representing the recommended security actions and / or security hardware, software, and / or firmware for purchase via the marketplace application 154.
[0118] The example recommendation engine circuitry 400 of the illustrated example includes process control update circuitry 460 to cause change(s) to the portion(s) of the process control system 102. In some examples, the change(s) are based on the recommendation(s) generated by the recommendation generation circuitry 450. In some examples, the process control update circuitry 460 is configured to execute process control update instructions and / or to perform operations such as Figure 6 , Figure 7 , Figure 8 , Fig. 9 , Fig.10 , Fig.11 , Fig.12 and / or Fig.13 The flowchart represents the operation of a processor circuit to instantiate.
[0119] In some examples, the process control update circuit 460 may determine that the recommendation is to be implemented without intervention (e.g., user, human, or manual intervention) based on the policy data 480. For example, the policy data 480 may include policies, service level agreements (SLAs), maintenance agreements, monitoring agreements, etc. associated with the process control system 102. In some examples, the policies, SLAs, etc. may define the manner in which changes to the process control system 102 are implemented. For example, the policies, SLAs, etc. may define that recommendations (such as upgrades to software versions of applications) may be automatically and / or otherwise implemented without human intervention. In some examples, the policies, SLAs, etc. may define that the upgrade may be implemented semi-automatically, which requires (multiple) parts of the upgrade to invoke human intervention. In some examples, the policies, SLAs, etc. may define that the upgrade requires human intervention. For example, the process control update circuit 460 may request authorization from the process control system 102 (e.g., an authorized or authenticated user of the process control system 102) to proceed with the semi-automatic or manual upgrade process indicated by the recommendation. After receiving the authorization, the process control update circuit 460 may cause the update to proceed in accordance with the recommendation. For example, the process control update circuitry 460 may cause, instruct, and / or invoke the installation agent 156 of the corresponding electronic device of the process control system 102 to update the electronic device. In some examples, the process control update circuitry 460 may determine whether to continue monitoring the process control system 102, such as whether to continue monitoring the collection of telemetry data 472.
[0120] In some examples, the process control update circuit 460 can detect a new version of a hardware configuration, software, and / or firmware to be deployed. For example, the process control update circuit 460 can detect that a new version of an application executed and / or instantiated by the first workstation 134 is available in the directory 478. In some examples, the process control update circuit 460 can determine whether the process control system(s) in communication with the cloud data center 146 have a previous version of the application installed; and notify one(s) of the process control system(s) that a newer version of the application is available for download or use. In some examples, the process control update circuit 460 can detect and / or otherwise identify a new version of a hardware configuration of the first controller 126, the first I / O card 128, the second controller 130, the second I / O card 132, the field devices 110, 116, etc. In some examples, the process control update circuit 460 may detect a new version of a firmware version of firmware executed and / or instantiated by the first controller 126 , the first I / O card 128 , the second controller 130 , the second I / O card 132 , the field devices 110 , 116 , etc.
[0121] In some examples, the process control update circuit 460 may determine that the request to access the application of the directory 478 indicates that the access is for executing the application by the cloud host. For example, the field gateway 154 may send a request to the interface circuit 410 for the first workstation 134 to execute the application on a web browser of the first workstation 134. In some examples, the web browser may access an instance of the application hosted by the cloud data center 146 instead of downloading the instance locally to the first workstation 134. Advantageously, such access to the application on the cloud / remote server may reduce the utilization of computing, memory, and / or storage resources of the first workstation 134. Advantageously, such access to the application on the cloud / remote server may enable a try-before-you-buy service, such as executing a trial version or a cloud-hosted version before downloading a copy of the application for local execution in the process control system 102. In some examples, the process control update circuit 460 may determine that the request to access the application is for local execution, such as execution and / or instantiation on the first workstation 134. For example, the process control update circuitry 460 may invoke the interface circuitry 410 to push and / or otherwise send an executable binary file (or any other executable construct) to the first workstation 134 via the edge gateway 142 and the field gateway 140 .
[0122] In some examples, the process control update circuitry 460 may determine that the feedback or suggestion is associated with the application of the catalog 478. For example, Figure 1 and / or Figure 2 The marketplace application 154 may include functionality or interface(s) (e.g., graphical user interface(s) (GUI(s), application programming interface(s) (API(s), etc.)) to provide a rating and review system for particular software packages and services available for purchase. Advantageously, the marketplace application 154 may provide a mechanism for end users to comment on their experience with a software package for providing feedback (e.g., immediate feedback) to the software vendor, third party, or internal development team. For example, the marketplace application 154 may include a software support forum hosted by a software vendor associated with the cloud data center 146 for a particular software package so that end users can discuss the operation of the software in a community that interacts with the marketplace application 154. Advantageously, the cloud data center 146 may leverage these forums as a source of information to feed into the product decision cycle of product development.
[0123] As an example, a user of the first workstation 134 may interface and / or interact with the software application in the catalog 478. In some examples, the user may access a portion of the marketplace application 154 that corresponds to the software application. For example, the user may access a forum (e.g., a review or feedback forum) on which the user may post and / or otherwise leave feedback, comments, reviews, etc. associated with the application. In some examples, the process control update circuitry 460 may recognize language posted on the forum (e.g., feedback, comments, reviews, etc.); parse the language into machine-readable data (e.g., data vectors, binary data, etc.) using natural language processing techniques; and provide the machine-readable data as input(s) to the ML model(s) 474. In some examples, the ML circuitry 440 may execute the ML model(s) 474 to generate recommendations for changing the application (e.g., adding / removing / changing features, functions, capabilities, etc.) based on the language posted on the forum. In some examples, the process control update circuitry 460 may redeploy the application based on the posted language. For example, the process control update circuitry 460 may implement Figure 3 workflow 300 or part(s) thereof to redeploy an application.
[0124] In some examples, the process control update circuitry 460 may authenticate an application or container from a developer (e.g., a third-party developer, a developer associated with the cloud data center 146, etc.) for insertion or addition to the catalog 478. For example, the process control update circuitry 460 may determine that the application / container complies with terms and conditions, guidelines, policies, etc. associated with adding the application / container to the catalog 478.
[0125] In some examples, the process control update circuitry 460 may add the application / container to the catalog 478 after authentication of the application / container. In some examples, the process control update circuitry 460 may refuse to add the application / container to the catalog 478 after determining that the application / container is not authenticated and / or otherwise does not comply with terms and conditions, guidelines, policies, etc. associated with the catalog 478.
[0126] In some examples, the process control update circuit 460 can determine that the application / container is a beta version or a pre-release version. In some examples, the process control update circuit 460 can issue an alert to (multiple) users who select the beta version release. For example, certain software packages can be available for preview installation for selected end users. In some examples, the market application 154 can record the end-user experience for usability testing and feedback collection. In some examples, the market application 154 can control licensing and installation to install, configure, and remove beta test site installations, while issuing (multiple) notifications to beta test end users.
[0127] In some examples, the process control update circuitry 460 implements a payment delivery system associated with accessing application(s), container(s), service(s), etc. of the catalog 478. For example, the first workstation 134 may request a license (e.g., a software license) to access and / or utilize a cloud-hosted application of the catalog 478 for a first duration (e.g., an 8-hour license, a 24-hour license, a weekly license, an annual license, etc.). In some examples, the process control update circuitry 460 may determine that the license for the first duration is associated with a first number of tokens, which may represent payment for the license. In some examples, the recommendation generation circuitry 450 may make recommendations regarding expiring or expired licenses for software throughout the process control system 102; and the process control update circuitry 460 may obtain authorization from the process control system 102 to update the license or obtain instructions to allow the license to expire or remain expired.
[0128] In some examples, tokens or credits (e.g., licenses, access credits, access tokens, non-fungible tokens (NFTs), etc.) can be exchanged for access and / or utilization of (multiple) applications, (multiple) containers, (multiple) services, etc. of the directory 478. For example, the token repository 482 can be implemented by the storage of tokens or credits, such as cryptographic credits, cryptographic tokens, firmware / software credits, firmware / software tokens, NFTs, electronic tokens, computational tokens, etc. For example, the process control update circuitry 460 can mint and / or otherwise generate NFTs associated with applications that access the directory 478. In some examples, the process control update circuitry 460 can generate the NFTs and / or store the NFTs in the token repository 482. In some examples, the process control update circuitry 460 can provide the NFTs to the first workstation 134 in exchange for payment (e.g., monetary payment). In some examples, the first workstation 134 can exchange the NFTs for access to the application(s) in the directory 478.
[0129] In some examples, the process control update circuit 460 may record an entry associated with the credit / token in a database ledger, such as a blockchain (e.g., a private blockchain, a public blockchain, etc.). As an example, the process control update circuit 460 may record a first record in the ledger or blockchain to commemorate the minting / generation of a first set of tokens. The process control update circuit 460 may record a second entry in the ledger or blockchain to record the purchase or procurement of the first set of tokens by an electronic device (such as the first workstation 134) of the process control system 102. In response to the purchase or access of an application of the catalog 478 by the first workstation 134, the process control update circuit 460 may record a third entry in the ledger or blockchain to record a decrement or reduction of a first number of tokens in the first set of tokens. In response to the purchase or access of an application of the catalog 478 by the first workstation 134, the process control update circuit 460 may record a fourth entry in the ledger or blockchain to record an increment or increase of a second number of tokens to a second set of tokens associated with a developer of the application. For example, the record of the fourth entry may represent a payment from the third workstation 134 to the developer of the application. In some examples, the first number of tokens is the same as the second number of tokens. In some examples, the second number of tokens is less than the first number of tokens, and the difference between the first and second numbers represents a processing fee for cloud data center 146 to process the payment.
[0130] The recommendation engine circuit 400 of the illustrated example includes a data store 470 to record data, such as telemetry data 472, configuration data 474, (multiple) ML models 476, catalogs 478, policy data 480, and token repositories 482. In some examples, the data store 470 is executed by executing data storage instructions and / or is configured to perform such as Figure 6 , Figure 7 , Figure 8 , Fig. 9 , Fig.10 , Fig.11 , Fig.12 and / or Fig.13 The flowchart represents the operation of a processor circuit to instantiate.
[0131] The data store 470 may be implemented by a volatile memory (e.g., synchronous dynamic random access memory (SDRAM), dynamic random access memory (DRAM), RAMBUS dynamic random access memory (RDRAM), etc.) and / or a non-volatile memory (e.g., flash memory). The data store 470 may additionally or alternatively be implemented by one or more double data rate (DDR) memories, such as DDR, DDR2, DDR3, DDR4, DDR5, mobile DDR (mDDR), DDR SDRAM, etc. The data store 470 may additionally or alternatively be implemented by one or more mass storage devices, such as (multiple) hard disk drives ((multiple) HDDs), (multiple) compact disk (CD) drives, (multiple) digital versatile disk (DVD) drives, (multiple) solid state disk (SSD) drives, (multiple) secure digital (SD) cards, (multiple) compact flash (CF) cards, etc. Although the data store 470 is shown as a single data store in the example shown, the data store 470 may be implemented by any number and / or (multiple) types of data stores. Furthermore, the data stored in the data storage 470 may be in any data format, such as binary data, comma-delimited data, tab-delimited data, structured query language (SQL) structures, and the like.
[0132] In some examples, the data store 470 may implement one or more databases that may store telemetry data 472, configuration data 474, (multiple) ML models 476, a catalog 478, policy data 480, and a token repository 482. The term "database" as used herein means an organization of related data, regardless of the manner in which the data or its organization is represented. For example, the organization of related data may be in the form of one or more of a table, a map, a grid, a packet, a datagram, a frame, a file, an email, a message, a document, a report, a list, or any other form. The term "data" as used herein means any sign, signal, mark, symbol, domain, symbol set, representation, and any other physical form representing information, whether permanent or temporary, whether visible, audible, acoustic, electrical, magnetic, electromagnetic, or otherwise expressed. The term "data" used to represent predetermined information in a physical form should be deemed to cover any and all representations of one or more different physical forms of the corresponding information.
[0133] In some examples, the recommendation engine circuit 400 includes means for obtaining telemetry data. For example, the means for obtaining can be implemented by the interface circuit 410. In some examples, the interface circuit 410 can be instantiated by a processor circuit, such as Fig.19 For example, the interface circuit 410 may be composed of Fig.21The example microprocessor 2100 is instantiated by executing machine-executable instructions such as at least Figure 7 Frame 702, Figure 8 Frame 802, Fig. 9 Frames 903, 916, Fig.10 Frame 1010, Fig.11 Frames 1102, 1108, 1112, Fig.12 Boxes 1202, 1208 and / or Fig.13 In some examples, interface circuit 410 may be instantiated by hardware logic circuitry, which may be implemented by an ASIC, an XPU, or Fig. 22 The interface circuit 410 is implemented by an FPGA circuit system 2200 that is constructed to perform operations corresponding to machine-readable instructions. Additionally or alternatively, the interface circuit 410 can be instantiated by any other combination of hardware, software, and / or firmware. For example, the interface circuit 410 can be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuit systems, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.), which are constructed to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.
[0134] In some examples, the recommendation engine circuit 400 includes means for detecting a configuration of the process control system. In some examples, the means for detecting is a first means for detecting. For example, the means for detecting can be implemented by a configuration detection circuit 420. In some examples, the configuration detection circuit 420 can be instantiated by a processor circuit, such as Fig.19 For example, the configuration detection circuit 420 can be composed of Fig.21 The example microprocessor 2100 is instantiated by executing machine-executable instructions such as at least Figure 6 Frame 602, Figure 7 Frame 704, Figure 8 Frames 806, 808, Fig.10 Box 1002 and / or Fig.11 In some examples, configuration detection circuit 420 may be instantiated by hardware logic circuitry, which may be implemented by an ASIC, an XPU, or Fig. 22The FPGA circuit system 2200 configured to perform operations corresponding to the machine-readable instructions is implemented. Additionally or alternatively, the configuration detection circuit 420 can be instantiated by any other combination of hardware, software and / or firmware. For example, the configuration detection circuit 420 can be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuit systems, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.), which are configured to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.
[0135] In some examples, the recommendation engine circuit 400 includes a device for detecting an operating state of the process control system. In some examples, the device for detecting is a second device for detecting. For example, the device for detecting can be implemented by an operating state detection circuit 430. In some examples, the operating state detection circuit 430 can be instantiated by a processor circuit, such as Fig.19 For example, the operating state detection circuit 430 may be composed of Fig.21 The example microprocessor 2100 is instantiated by executing machine-executable instructions such as at least Figure 6 Frame 602, Figure 7 Block 706 and / or Fig. 9 In some examples, the operating state detection circuit 430 can be instantiated by a hardware logic circuit system, which can be implemented by an ASIC, an XPU, or Fig. 22 The FPGA circuit system 2200 configured to perform operations corresponding to machine-readable instructions is implemented. Additionally or alternatively, the operating state detection circuit 430 can be instantiated by any other combination of hardware, software and / or firmware. For example, the operating state detection circuit 430 can be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuit systems, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.), which are configured to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.
[0136] In some examples, the recommendation engine circuit 400 includes means for executing a machine learning model. For example, the means for executing can be implemented by the machine learning circuit 440. In some examples, the machine learning circuit 440 can be instantiated by a processor circuit, such as Fig.19 For example, the machine learning circuit 440 may be composed of Fig.21 The example microprocessor 2100 is instantiated by executing machine-executable instructions such as at least Figure 6 Frame 604, Figure 7 Box 708 and / or Figure 8 In some examples, machine learning circuit 440 may be instantiated by hardware logic circuitry, which may be implemented by an ASIC, an XPU, or Fig. 22 The FPGA circuit system 2200 is constructed to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the machine learning circuit 440 can be instantiated by any other combination of hardware, software and / or firmware. For example, the machine learning circuit 440 can be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuit systems, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.), which are constructed to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.
[0137] In some examples, the recommendation engine circuit 400 includes means for generating a recommendation for modifying the process control system. For example, the means for generating can be implemented by a recommendation generation circuit 450. In some examples, the recommendation generation circuit 450 can be instantiated by a processor circuit, such as Fig.19 For example, the recommendation generation circuit 450 may be composed of Fig.21 The example microprocessor 2100 is instantiated by executing machine-executable instructions such as at least Figure 7 Frame 710, Figure 8 Blocks 810, 812 and / or Fig. 9 In some examples, recommendation generation circuit 450 may be instantiated by hardware logic circuitry, which may be implemented by an ASIC, an XPU, or Fig. 22The recommendation generation circuit 450 is implemented by an FPGA circuit system 2200 that is constructed to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the recommendation generation circuit 450 can be instantiated by any other combination of hardware, software, and / or firmware. For example, the recommendation generation circuit 450 can be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuit systems, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.) that are constructed to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.
[0138] In some examples, the recommendation engine circuit 400 includes means for updating the process control system. For example, the means for updating can be implemented by a process control update circuit 460. In some examples, the process control update circuit 460 can be instantiated by a processor circuit, such as Fig.19 For example, the process control update circuit 460 may be composed of Fig.21 The example microprocessor 2100 is instantiated by executing machine-executable instructions such as at least Figure 6 Frame 606, Figure 7 Frames 712, 714, 716, 718, 720, Figure 8 Frames 814, 816, Fig.10 Frames 1004, 1006, 1008, 1012, Fig.12 Boxes 1204, 1206, 1210, 1212, 1214, 1216 and / or Fig.13 In some examples, the process control update circuit 460 may be instantiated by hardware logic circuitry, which may be implemented by an ASIC, an XPU, or Fig. 22The process control update circuit 460 is implemented by an FPGA circuit system 2200 that is constructed to perform operations corresponding to machine-readable instructions. Additionally or alternatively, the process control update circuit 460 can be instantiated by any other combination of hardware, software, and / or firmware. For example, the process control update circuit 460 can be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuit systems, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.) that are constructed to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.
[0139] Although Figure 4 The implementation is shown in Figure 1 and / or Figure 2 Example of recommendation engine 150, but Figure 4 One or more of the elements, processes and / or devices shown in the drawings may be combined, divided, rearranged, omitted, eliminated and / or implemented in any other manner. In addition, the interface circuit 410, the configuration detection circuit 420, the operation state detection circuit 430, the ML circuit 440, the recommendation generation circuit 450, the process control update circuit 460, the data storage 470 and / or more generally, Figure 1 and / or Figure 2 The recommendation engine 150 may be implemented by hardware alone or by a combination of hardware and software and / or firmware. Thus, for example, the interface circuit 410, the configuration detection circuit 420, the operating state detection circuit 430, the ML circuit 440, the recommendation generation circuit 450, the process control update circuit 460, the data storage 470 and / or more generally, any of the example recommendation engines 150 may be implemented by a processor circuit, (multiple) analog circuits, (multiple) digital circuits, (multiple) logic circuits, (multiple) programmable processors, (multiple) programmable microcontrollers, (multiple) GPUs, (multiple) DSPs, (multiple) ASICs, (multiple) PLDs and / or (multiple) FPLDs (such as FPGAs). In addition, Figure 1 and / or Figure 2 An example recommendation engine 150 may include, in addition to Figure 4 In addition to or in place of those shown in Figure 4 One or more of the elements, processes, and / or devices shown in, and / or may include more than one of any or all of the elements, processes, and devices shown.
[0140] Figure 5is a block diagram of an example gateway circuit 500 that implements a recommendation to modify portion(s) of a process control system 102 to increase efficiency or otherwise improve the operation of the process control system 102. In some examples, Figure 1 and / or Figure 2 One (or more) of the field gateways 140 and / or one (or more) of the edge gateways 142 may be implemented by the gateway circuit 500. In some examples, one (or more) of the workstations 134, 136 may be implemented by the gateway circuit 500. In some examples, one (or more) of the controllers 126, 130, the I / O cards 128, 132, and / or more generally, one (or more) of the PLC racks 122, 124 may be implemented by the gateway circuit 500. In some examples, the installation agent 156 may be implemented by the gateway circuit 500.
[0141] Figure 5 The gateway circuit 500 may be instantiated (e.g., created as an instance, generated for any length of time, materialized, realized, etc.) by a processor circuit (such as a central processing unit) executing instructions. Additionally or alternatively, Figure 5 The gateway circuit 500 may be instantiated (e.g., created as an instance, generated in any length of time, embodied, realized, etc.) by an ASIC or FPGA, which is configured to perform operations corresponding to the instructions. It should be understood that Figure 5 Some or all of the gateway circuits 500 may thus be instantiated at the same or different times. For example, Figure 5 Some or all of the gateway circuit 500 may be instantiated in one or more threads that execute concurrently on hardware and / or serially on hardware. In addition, in some examples, Figure 5 Some or all of the gateway circuitry 500 may be implemented by a microprocessor circuit that executes instructions to implement one or more virtual machines and / or containers.
[0142] The gateway circuit 500 includes an example interface circuit 510, an example configuration detection circuit 520, an example operation state detection circuit 530, an example ML circuit 540, an example process control update circuit 560, an example data storage 570, and an example bus 590. Figure 5 In the example shown, data store 570 includes and / or otherwise stores example telemetry data 572, example configuration data 574 (indicated by CONFIG DATA), example ML model(s) 576, example executable(s) 578, example policy data 580, and example parameter data 582. In some examples, Figure 5 The telemetry data 572 or portion(s) thereof may correspond to Figure 4 In some examples, Figure 5 The configuration data 574 or part(s) thereof may correspond to Figure 4 Configuration data 474 or part(s) thereof. In some examples, Figure 5 The ML model(s) 576 or portion(s) thereof may correspond to Figure 4 In some examples, Figure 5 The policy data 580 or part(s) thereof may correspond to Figure 4 Policy data 480 or part(s) thereof.
[0143] exist Figure 5 In the example shown, the interface circuit 510, the configuration detection circuit 520, the operation state detection circuit 530, the ML circuit 540, the process control update circuit 560 and / or the data memory 570 communicate with each other via a bus 590. For example, the bus 590 can be implemented by at least one of an I2C bus, an SPI bus, a PCI bus, or a PCIe / PCIE bus. Additionally or alternatively, the bus 590 can be implemented by any other type of computing or electrical bus.
[0144] Figure 5 The gateway circuit 500 of the illustrated example includes an interface circuit 510 for receiving and / or sending data. In some examples, the interface circuit 510 is configured to execute interface instructions and / or to perform operations such as Fig.14 , Fig.15 , Fig.16 , Fig.17 and / or Fig.18 The flowchart represents the operation of a processor circuit to instantiate.
[0145] In some examples, the interface circuit 510 collects, receives, and / or otherwise obtains telemetry data 572 of the process control system 102 and / or stores the telemetry data 572 in the data store 570. For example, the interface circuit 510 may obtain (e.g., asynchronously, synchronously, aperiodically, periodically, etc.) telemetry data 572 from at least one (or more) of the first field device 110, the second field device 116, the first controller 126, the second controller 130, the first I / O device 128, the second I / O device 132, the first workstation 134, the second workstation 136, one (or more) of the field gateways 140, or one (or more) of the edge gateways 142. For example, the interface circuit 510 may collect telemetry data 572, which may include process parameter data (e.g., parameter data 582), configuration data, hardware version, software version, firmware version, configuration data 574, software license, environmental data, operating stage data, operator identification data, etc., and / or any combination (s) thereof.
[0146] In some examples, the interface circuit 510 receives a recommendation from the cloud data center 146 to modify a field device, such as the first field device 110 and / or the second field device 116. In some examples, the interface circuit 510 determines whether to continue collecting telemetry data associated with the process control system 102. In some examples, the interface circuit 510 determines whether to continue monitoring the process control system 102.
[0147] In some examples, interface circuit 510 sends portion(s) of telemetry data 572 to a server based on policy data 580. For example, interface circuit 510 may send portion(s) of telemetry data 572 having a particular type of data classification defined by policy data 580 to cloud data center 146. In some examples, interface circuit 510 sends data representing a request for recovery operations to cloud data center 146. For example, after detecting a failure or unresponsiveness of first controller 126, interface circuit 510 may send a request for recovery operations to cloud data center 146. Figure 4 A specific version of the hardware configuration and / or firmware corresponding to the first controller 126 is requested from the directory 478 of .
[0148] Figure 5 The illustrated example gateway circuit 500 includes a configuration detection circuit 520 to detect a configuration of the process control system 102 or its portion(s) and store the configuration as configuration data 574 in the data store 570. In some examples, the configuration detection circuit 520 is configured to execute configuration detection instructions and / or is configured to perform operations such as Fig.14 , Fig.15 , Fig.16 , Fig.17 and / or Fig.18 The flowchart represents the operation of a processor circuit to instantiate.
[0149] In some examples, the configuration detection circuit 520 can detect and / or otherwise identify process parameter data (e.g., parameter data 582), hardware version, software version, firmware version, component brand / model, software license, environmental data, operating stage data, operator identification data, etc. and / or any (multiple) combinations thereof, and store such data as configuration data 574 in the data storage 570.
[0150] In some examples, the configuration detection circuitry 520 can determine whether data specific to the process control system 102 application(s), container(s), etc. is stored in the cloud data center 146. Advantageously, such cloud-based storage implements a persistent storage facility to allow data to be retained during application lifecycle events, such as uninstallation, reinstallation, or recovery from a failure or unresponsiveness event.
[0151] Figure 5 The illustrated example gateway circuit 500 includes an operating state detection circuit 530 to detect an operating state of the process control system 102 or its portion(s) (e.g., an operating state of a component of the process control system 102). In some examples, the operating state detection circuit 530 is executed by executing operating state detection instructions and / or is configured to perform operations such as Fig.14 , Fig.15 , Fig.16 , Fig.17 and / or Fig.18 The flowchart represents the operation of a processor circuit to instantiate.
[0152] In some examples, the operating status detection circuit 530 can detect that the first field device 110 has failed and / or is not responding (e.g., the processor circuit of the first field device 110 has encountered a runtime error and may need to be restarted and / or the firmware of the processor circuit needs to be reinstalled or flashed). In some examples, the operating status detection circuit 530 can determine that recovery operation is required after detecting the failure / no response. In some examples, the operating status detection circuit 530 can store the identification of the failure / no response as telemetry data 572 in the data storage 570.
[0153] Figure 5 The gateway circuit 500 of the illustrated example includes an ML circuit 540 to classify the telemetry data 572 into at least first data having a first data classification and second data having a second data classification using (a plurality of) ML models 576. In some examples, the ML circuit 540 is configured to execute ML instructions and / or to perform operations such as Fig.14 , Fig.15 , Fig.16 , Fig.17 and / or Fig.18 The flowchart represents the operation of a processor circuit to instantiate.
[0154] In some examples, the ML circuitry 540 may classify the telemetry data 572 by executing (multiple) ML models 576 having the telemetry data 572 as (multiple) inputs (e.g., (multiple) model inputs, (multiple) ML model inputs, (multiple) ML inputs, etc.) to generate (multiple) outputs (e.g., (multiple) model outputs, (multiple) ML model outputs, (multiple) ML outputs, etc.), which classification may include (multiple) data classifications of the telemetry data 572. For example, the (multiple) ML model(s) 576 may be (multiple) neural network models or any type of machine learning classification model. In some examples, the (multiple) ML model(s) 576 are generated, trained, and / or compiled by the cloud data center 146. For example, Figure 4 The ML circuit 440 can generate, train Figure 4 ML model(s) 476 and / or compile them into lightweight ML model(s), which can be stored as ML model(s) 576 in Figure 5 The data is stored in 570. For example, Figure 5 The ML model(s) 576 may have a Figure 4 ML model(s) 476 have fewer layers, neurons, etc. In some examples, Figure 5 ML model(s) 576 with Figure 4 The (multiple) ML models 476 are the same.
[0155] Figure 5 The illustrated example gateway circuit 500 includes a process control update circuit 560 to update the process control circuit 560 based on the process control update circuit 560 from the Figure 1 and / or Figure 2 The process control update circuit 560 may be configured to execute process control update instructions and / or be configured to perform such as Fig.14 , Fig.15 , Fig.16 , Fig.17 and / or Fig.18 The flowchart represents the operation of a processor circuit to instantiate.
[0156] In some examples, the process control update circuit 560 may be directed, instructed, and / or otherwise invoked Figure 1 and / or Figure 2 The process control update circuitry 560 may cause the update of an application on the first workstation 134 by directing the installation agent 156 executed and / or instantiated by the first workstation 134 to update the application.
[0157] In some examples, the process control update circuit 560 can identify (multiple) portions of the telemetry data 572 to be sent to the cloud data center 146 based on the policy data 580. For example, the policy data 580 can include policies, SLAs, etc. associated with the process control system 102. In some examples, the policies, SLAs, etc. can define how changes are implemented to the process control system 102. In some examples, the policy data 580 can identify a first type of data having a first data classification, a second type of data having a second data classification, etc. For example, the first type of data can be parameter data 582, and the first data classification can be a parameter data classification. In some examples, the parameter data 582 can include sensor measurements, process parameter values (e.g., fluid pressure values, fluid temperature values, fluid flow rate values, etc.), etc. In some examples, the second type of data can be configuration data 574, and the second data classification can be a configuration data classification. For example, the configuration data 574 can include a version of the hardware configuration of the first controller 126. In some examples, the policy data 580 may define, specify, indicate, etc. that a first data classification is not to be shared externally of the process control system 102 and a second data classification may be shared externally of the process control system 102. For example, the policy data 580 may implement a data privacy policy to implement enhanced security of the process control system 102.
[0158] In some examples, the process control update circuitry 560 may determine the level of allowed access required to modify the portion(s) of the process control system 102. For example, the process control update circuitry 560 may determine the level of allowed access based on the policy data 580. In some examples, the process control update circuitry 560 may determine whether the allowed access is automatically allowed access (e.g., no human or user intervention is required), semi-automatically allowed access (e.g., a portion of the modification process may require human or user intervention), or manually allowed access (e.g., the entire modification process may require human or user intervention). In some examples, due to security concerns, the process control update circuitry 560 may modify the portion(s) of the process control system 102 after determining that the portion(s) is in at least one of a standby or maintenance phase of operation. In some examples, the process control update circuitry 560 may modify the portion(s) of the process control system 102 via a phased upgrade process, wherein one or more portions are completed without human / user intervention, and / or one or more portions are completed with human / user intervention in a specific arrangement or sequence.
[0159] Figure 5The illustrated example gateway circuit 500 includes a data store 570 to record data, such as telemetry data 572, configuration data 574, (multiple) ML models 576, (multiple) executable files 578, policy data 580, and parameter data 582. In some examples, the data store 570 is executed by executing data storage instructions and / or is configured to perform such as Fig.14 , Fig.15 , Fig.16 , Fig.17 and / or Fig.18 . In some examples, the executable file(s) 578 are executable constructs, such as executable binary files, that when executed and / or instantiated, can run applications, containers, services, etc. For example, the executable file(s) 578 can be used to run applications on the first workstation 134 and / or the second workstation 136 (e.g., a process control application that runs diagnostic operations on the first fluid flow control assembly 106, a process control application that programs the first PLC rack 122, etc.). In some examples, the executable file(s) 578 can be used to run the market application 154. In some examples, the executable file(s) 578 can be used to run the installation agent 156.
[0160] The data storage 570 may be implemented by a volatile memory (e.g., SDRAM, DRAM, RDRAM, etc.) and / or a non-volatile memory (e.g., flash memory). The data storage 570 may additionally or alternatively be implemented by one or more DDR memories, such as DDR, DDR2, DDR3, DDR4, DDR5, mDDR, DDR SDRAM, etc. The data storage 570 may additionally or alternatively be implemented by one or more mass storage devices, such as (multiple) hard disk drives ((multiple) HDDs), (multiple) CD drives, (multiple) DVD drives, (multiple) SSD drives, (multiple) SD cards, (multiple) CF cards, etc. Although the data storage 570 is shown as a single data storage in the example shown, the data storage 570 may be implemented by any number and / or type of data storage. In addition, the data stored in the data storage 570 may be in any data format, such as binary data, comma-delimited data, tab-delimited data, SQL structures, etc. In some examples, data store 570 may implement one or more databases that may store telemetry data 572 , configuration data 574 , ML model(s) 576 , executable(s) 578 , policy data 580 , and parameter data 582 .
[0161] In some examples, the gateway circuit 500 includes means for sending data to the server. For example, the means for sending can be implemented by the interface circuit 510. In some examples, the gateway circuit 500 includes means for collecting telemetry data. For example, the means for sending can be implemented by the interface circuit 510. In some examples, the interface circuit 510 can be instantiated by a processor circuit, such as Fig. 20 For example, the interface circuit 510 may be composed of Fig.21 The example microprocessor 2100 is instantiated by executing machine-executable instructions such as at least Fig.14 Frames 1404, 1406, Fig.15 Frames 1502, 1508, 1510, 1514, Fig.16 Frames 1602, 1604, 1606, 1608, 1610, 1616, Fig.17 Boxes 1704, 1710 and / or Fig.18 In some examples, interface circuit 510 may be instantiated by hardware logic circuitry, which may be implemented by an ASIC, an XPU, or Fig. 22 The interface circuit 510 is implemented by an FPGA circuit system 2200 that is constructed to perform operations corresponding to machine-readable instructions. Additionally or alternatively, the interface circuit 510 can be instantiated by any other combination of hardware, software, and / or firmware. For example, the interface circuit 510 can be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuit systems, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.), which are constructed to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.
[0162] In some examples, the gateway circuit 500 includes a device for detecting an operating state of the process control system. For example, the device for detecting can be implemented by an operating state detection circuit 530. In some examples, the operating state detection circuit 530 can be instantiated by a processor circuit, such as Fig. 20 For example, the operating state detection circuit 530 may be composed of Fig.21 The example microprocessor 2100 is instantiated by executing machine-executable instructions such as at least Fig.17 Box 1702 and / or Fig.18In some examples, the operating state detection circuit 530 can be instantiated by a hardware logic circuit system, which can be implemented by an ASIC, an XPU, or Fig. 22 The FPGA circuit system 2200 configured to perform operations corresponding to the machine-readable instructions is implemented. Additionally or alternatively, the operating state detection circuit 530 can be instantiated by any other combination of hardware, software and / or firmware. For example, the operating state detection circuit 530 can be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuit systems, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.), which are configured to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.
[0163] In some examples, gateway circuit 500 includes means for executing a machine learning model. For example, the means for executing can be implemented by machine learning circuit 540. In some examples, machine learning circuit 540 can be instantiated by a processor circuit, such as Fig. 20 For example, the machine learning circuit 540 may be composed of Fig.21 The example microprocessor 2100 is instantiated by executing machine-executable instructions such as at least Fig.14 Frame 1402, Fig.15 Box 1504 and / or Fig.16 In some examples, machine learning circuit 540 may be instantiated by hardware logic circuitry, which may be implemented by an ASIC, an XPU, or Fig. 22 The FPGA circuit system 2200 is constructed to perform operations corresponding to the machine-readable instructions. Additionally or alternatively, the machine learning circuit 540 can be instantiated by any other combination of hardware, software and / or firmware. For example, the machine learning circuit 540 can be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuit systems, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.), which are constructed to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.
[0164] In some examples, the gateway circuit 500 includes means for updating the process control system. For example, the means for updating can be implemented by a process control update circuit 560. In some examples, the process control update circuit 560 can be instantiated by a processor circuit, such as Fig. 20 For example, the process control update circuit 560 may be composed of Fig.21 The example microprocessor 2100 is instantiated by executing machine-executable instructions such as at least Fig.14 Frame 1408, Fig.15 Frames 1506, 1512, Fig.16 Frame 1614, Fig.17 Boxes 1706, 1708 and / or Fig.18 In some examples, the process control update circuit 560 may be instantiated by hardware logic circuitry, which may be implemented by an ASIC, an XPU, or Fig. 22 The process control update circuit 560 is implemented by an FPGA circuit system 2200 that is constructed to perform operations corresponding to machine-readable instructions. Additionally or alternatively, the process control update circuit 560 can be instantiated by any other combination of hardware, software, and / or firmware. For example, the process control update circuit 560 can be implemented by at least one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuit systems, FPGAs, ASICs, XPUs, comparators, operational amplifiers (op-amps), logic circuits, etc.) that are constructed to execute some or all of the machine-readable instructions and / or perform some or all of the operations corresponding to the machine-readable instructions without executing software or firmware, but other structures are equally applicable.
[0165] Although Figure 5 The implementation is shown in Figure 1 and / or Figure 2 In an example embodiment, one (or more) of the field gateways 140 and / or one (or more) of the edge gateways 142, but Figure 5 One or more of the elements, processes and / or devices shown in the drawings may be combined, divided, rearranged, omitted, eliminated and / or implemented in any other manner. In addition, the interface circuit 510, the configuration detection circuit 520, the operation state detection circuit 530, the ML circuit 540, the process control update circuit 560, the data storage 570 and / or more generally, Figure 1 and / or Figure 2One (or more) of the field gateways 140 and / or one (or more) of the edge gateways 142 may be implemented by hardware alone or by a combination of hardware and software and / or firmware. Thus, for example, the interface circuit 510, the configuration detection circuit 520, the operation status detection circuit 530, the ML circuit 540, the process control update circuit 560, the data storage 570 and / or more generally, Figure 1 and / or Figure 2 One (or more) of the field gateways 140 and / or one (or more) of the edge gateways 142 may be implemented by a processor circuit, (multiple) analog circuits, (multiple) digital circuits, (multiple) logic circuits, (multiple) programmable processors, (multiple) programmable microcontrollers, (multiple) GPUs, (multiple) DSPs, (multiple) ASICs, (multiple) PLDs, and / or (multiple) FPLDs (such as FPGAs). In addition, Figure 1 of Figure 1 and / or Figure 2 One (or more) of the field gateways 140 and / or one (or more) of the edge gateways 142 may include in addition to Figure 5 In addition to or in place of those shown in Figure 5 One or more of the elements, processes, and / or devices shown in, and / or may include more than one of any or all of the elements, processes, and devices shown.
[0166] Figure 6-18 A flowchart representing example machine-readable instructions that may be executed to configure a processor circuit to implement Figure 4 The recommendation engine circuit 400 and / or Figure 5 The machine-readable instructions may be one or more executable programs or portions of executable programs for execution by a processor circuit, such as the following in conjunction with Fig.19 The processor circuit 1912 shown in the example processor platform 1900 discussed below is combined with Fig. 20 The processor circuit 2012 shown in the example processor platform 2000 discussed below and / or in conjunction with Fig.21 and / or Fig. 22The example processor circuit discussed. The program(s) may be embodied in software stored on one or more non-transitory computer-readable storage media (such as a compact disk (CD), a floppy disk, a hard disk drive (HDD), a solid-state drive (SSD), a digital versatile disk (DVD), a Blu-ray disk, a volatile memory (e.g., any type of random access memory (RAM), etc.) or a non-volatile memory (e.g., an electrically erasable programmable read-only memory (EEPROM), flash memory, HDD, SSD, etc.) associated with a processor circuit located in one or more hardware devices, but the entire program and / or portions thereof may alternatively be executed by one or more hardware devices other than the processor circuit and / or embodied in firmware or dedicated hardware. The machine-readable instructions may be distributed across multiple hardware devices and / or executed by two or more hardware devices (e.g., a server and a client hardware device). For example, a client hardware device may be implemented by an endpoint client hardware device (e.g., a hardware device associated with a user) or an intermediate client hardware device (e.g., a radio access network (RAN) gateway that may facilitate communication between a server and an endpoint client hardware device). Similarly, non-transitory computer-readable storage media may include one or more media located in one or more hardware devices. Figure 6-18 The flowchart shown in describes (multiple) example programs, but many other methods of implementing the example recommendation engine circuit 400 and / or gateway circuit 500 may alternatively be used. For example, the execution order of the boxes may be changed, and / or some of the boxes in the described boxes may be changed, eliminated, or combined. Additionally or alternatively, any or all of the boxes in the boxes may be implemented by one or more hardware circuits (e.g., processor circuits, discrete and / or integrated analog and / or digital circuit systems, FPGAs, ASICs, comparators, operational amplifiers (op-amps), logic circuits, etc.), which are constructed to perform corresponding operations without executing software or firmware. The processor circuits may be distributed in different network locations and / or local to one or more hardware devices (e.g., single-core processors (e.g., single-core central processing units (CPUs)), multi-core processors in a single machine (e.g., multi-core CPUs, XPUs, etc.), multiple processors distributed across multiple servers of a server rack, multiple processors distributed across one or more server racks, CPUs and / or FPGAs located in the same package (e.g., the same integrated circuit (IC) package) or in two or more separate housings, etc.).
[0167] The machine-readable instructions described herein may be stored in one or more formats of a compressed format, an encrypted format, a segmented format, a compiled format, an executable format, an encapsulated format, etc. The machine-readable instructions as described herein may be stored as data or a data structure (e.g., as part of an instruction, code, code representation, etc.) that may be used to create, manufacture, and / or generate machine-executable instructions. For example, the machine-readable instructions may be segmented and stored on one or more storage devices and / or computing devices (e.g., servers) located at the same or different locations of a network or a collection of networks (e.g., in the cloud, in an edge device, etc.). The machine-readable instructions may need to be installed, modified, adapted, updated, combined, supplemented, configured, decrypted, decompressed, unpacked, distributed, redistributed, compiled, etc., so that they can be directly read, interpreted, and / or executed by a computing device and / or other machine. For example, the machine-readable instructions may be stored in a plurality of parts that are individually compressed, encrypted, and / or stored on separate computing devices, wherein the parts, when decrypted, decompressed, and / or combined, form a collection of machine-executable instructions that implement one or more operations that may together form a program such as described herein.
[0168] In another example, the machine-readable instructions may be stored in a state in which the processor circuitry can read the instructions, but a library (e.g., a dynamic link library (DLL)), a software development kit (SDK), an application programming interface (API), etc., may need to be added in order to execute the machine-readable instructions on a particular computing device or other device. In another example, the machine-readable instructions may need to be configured (e.g., stored settings, data inputs, recorded network addresses, etc.) before the machine-readable instructions and / or corresponding program(s) can be executed in whole or in part. Thus, as used herein, a machine-readable medium may include machine-readable instructions and / or program(s) regardless of the particular format or state in which the machine-readable instructions and / or program(s) are stored or otherwise at rest or in transport.
[0169] The machine-readable instructions described herein may be expressed in any past, present, or future instruction language, scripting language, programming language, etc. For example, machine-readable instructions may be expressed in any of the following languages: C, C++, Java, C#, Perl, Python, JavaScript, Hypertext Markup Language (HTML), Structured Query Language (SQL), Swift, etc.
[0170] As mentioned above, the present invention may be implemented using executable instructions (e.g., computer and / or machine readable instructions) stored on one or more non-transitory computer and / or machine readable media (such as optical storage devices, magnetic storage devices, HDD, flash memory, read-only memory (ROM), CD, DVD, cache, any type of RAM, registers, and / or any other storage device or storage disk where information is stored for any duration (e.g., long-term, permanent, transient, temporary buffering, and / or caching of information)). Figure 6-18 Example operation. As used herein, the terms non-transient computer-readable medium, non-transient computer-readable storage medium, non-transient machine-readable medium, and non-transient machine-readable storage medium are explicitly defined to include any type of computer-readable storage device and / or storage disk, and do not include propagation signals and do not include transmission media. As used herein, the terms "computer-readable storage device" and "machine-readable storage device" are defined to include any physical (mechanical and / or electrical) structure that stores information, but do not include propagation signals and do not include transmission media. Examples of computer-readable storage devices and machine-readable storage devices include any type of random access memory, any type of read-only memory, solid-state memory, flash memory, optical disks, disks, disk drives, and / or redundant arrays of independent disks (RAID) systems. As used herein, the term "device" refers to a physical structure, such as a mechanical and / or electrical device, hardware, and / or circuit system, which may or may not be configured by computer-readable instructions, machine-readable instructions, etc., and / or is manufactured to execute computer-readable instructions, machine-readable instructions, etc.
[0171] "Include" and "comprising" (and all forms and tenses thereof) are used herein as open-ended terms. Thus, whenever a claim uses any form of "include" or "comprising" (e.g., includes, comprises, includes, including, having, etc.) as a preamble or in any type of claim narrative, it should be understood that additional elements, terms, etc. may be present without falling outside the scope of the corresponding claim or narrative. As used herein, when the phrase "at least" is used as a transitional term, such as in the preamble of a claim, it is open-ended in the same manner as the terms "include" and "comprising" are open-ended. For example, the term "and / or" when used (such as in the form of A, B, and / or C) refers to any combination or subset of A, B, C, such as (1) A alone, (2) B alone, (3) C alone, (4) A and B, (5) A and C, (6) B and C, or (7) A, B, and C. As used herein in the context of describing structures, components, items, objects, and / or things, the phrase "at least one of A and B" is intended to refer to implementations that include any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. Similarly, as used herein in the context of describing structures, components, items, objects, and / or things, the phrase "at least one of A or B" is intended to refer to implementations that include any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. As used herein in the context of describing the performance or execution of processes, instructions, actions, activities, and / or steps, the phrase "at least one of A and B" is intended to refer to implementations that include any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B. Similarly, as used herein in the context of describing the performance or execution of processes, instructions, actions, activities, and / or steps, the phrase "at least one of A or B" is intended to refer to an implementation that includes any of (1) at least one A, (2) at least one B, or (3) at least one A and at least one B.
[0172] As used herein, singular references (e.g., "a," "an," "first," "second," etc.) do not exclude plural references. The term "a" or "an" object used herein refers to one or more of the object. The terms "a" (or "an"), "one or more," and "at least one" are used interchangeably herein. In addition, although listed separately, multiple devices, elements, or method actions may be implemented by, for example, the same entity or object. Additionally, although individual features may be included in different examples or claims, these features may also be combined, and inclusion in different examples or claims does not mean that the combination of features is not feasible and / or unfavorable.
[0173] Figure 6is a flow diagram representative of example machine readable instructions and / or example operations 600 that may be executed and / or instantiated by a processor circuit to cause a change to a portion of a process control system based on a recommendation. Figure 6 The example machine readable instructions and / or example operations 600 begin at block 602, where the recommendation engine circuit 400 detects at least one of a configuration or an operating state of a process control system based on telemetry data associated with the process control system. For example, the interface circuit 410 ( Figure 4 ) can obtain telemetry data associated with an application installed on the first workstation 134 and / or more generally the process control system 102. In some examples, the interface circuit 410 can provide the obtained telemetry data as telemetry data 472 ( Figure 4 ) is stored in the data storage 470 ( Figure 4 In some examples, the detection circuit 420 ( Figure 4 ) can detect the configuration of the process control system 102 based on the telemetry data. For example, the configuration detection circuit 420 can determine that the configuration of the process control system 102 includes an application, such as a software version of the application, a developer or supplier of the application, etc. In some examples, the operating state detection circuit 430 ( Figure 4 ) can detect that the process control system 102 is in a maintenance operating state. For example, the operating state detection circuit 430 can identify that an application on the first workstation 134 stores data indicating a maintenance operating state. In some examples, the stored data can indicate, represent, and / or otherwise correspond to the first field device 110 reporting that the first fluid flow control assembly 106 is in a safe state of operation, a standby state, an offline state, and / or a maintenance state.
[0174] At block 604, the recommendation engine circuit 400 executes a machine learning model to generate an output representing a recommendation to modify a portion of the process control system based on at least one of the configuration or the operating state. Figure 4 ) can execute (multiple) ML models 476 with telemetry data 472 as (multiple) inputs to generate (multiple) outputs, which can include recommendations to upgrade the application from a first software version to a second software version. In some examples, ML circuitry 440 can determine, based on the (multiple) outputs, that the second software version is in catalog 478 ( Figure 4 ) available in; the second software version is applicable to the first software version; and based on telemetry data 472 and / or configuration data 474 ( Figure 4 ) executes and / or instantiates the first software version on the first workstation 134.
[0175] At block 606, the recommendation engine circuitry 400 causes a change to a portion of the process control system based on the recommendation. For example, the process control update circuitry 460 may send a Figure 1 and / or Figure 2 In some examples, one (or more) of the field gateways 140 may send a command, instruction, etc. to the installation agent 156 of the first workstation 134 to update the application from the first software version to the second version. In some examples, after determining that the operating state of the portion(s) of the process control system 102 corresponding to the application is a maintenance operating state or other operating state indicating that an update can be safely performed, one (or more) of the field gateways 140 may determine to cause the installation agent 156 to update the application. In response to causing a change to a portion of the process control system based on the recommendation at block 606, Figure 6 The example machine readable instructions and / or example operations 600 end.
[0176] Figure 7 is a flow diagram representative of example machine readable instructions and / or example operations 700 that may be executed and / or instantiated by a processor circuit to cause an update of a process control system based on a recommendation. Figure 7 The example machine readable instructions and / or example operations 700 begin at block 702 where the recommendation engine circuit 400 obtains telemetry data associated with a process control system. For example, the interface circuit 410 ( Figure 4 ) can be obtained with Figure 1 The interface circuit 410 may provide the telemetry data as telemetry data 472 ( Figure 4 ) is stored in the data storage 470 ( Figure 4 )middle.
[0177] At block 704, the recommendation engine circuit 400 detects a configuration of the process control system based on the telemetry data. For example, the configuration detection circuit 420 may detect a configuration of the process control system 102, such as a firmware version of the first controller 126. In some examples, the configuration detection circuit 420 may store the firmware version in the configuration data 474 ( Figure 4 In some examples, configuration detection circuit 420 may compare the firmware version of first controller 126 with the firmware version of first controller 126 in previously detected and / or stored configuration data 474.
[0178] At block 706, the recommendation engine circuit 400 detects an operating state of the process control system based on the telemetry data. For example, the operating state detection circuit 430 ( Figure 4) may determine an operating state associated with the first controller 126 based on the telemetry data. For example, the operating state detection circuit 430 may determine that the telemetry data includes data representative of the first controller 126 being in a maintenance operating state. For example, the data may be a value of an operating state parameter stored in the first controller 126 (e.g., a parameter that may have values of running, starting, stopping, idle, offline, etc.).
[0179] At block 708, the recommendation engine circuit 400 executes a machine learning (ML) model with at least one of the configuration or operating state as (multiple) ML inputs to generate (multiple) ML outputs. For example, the ML circuit 440 ( Figure 4 ) may execute (multiple) ML models 476 with at least one of telemetry data 472 or configuration data 474 as (multiple) inputs to generate (multiple) outputs.
[0180] At block 710, the recommendation engine circuit 400 generates a recommendation to modify the process control system based on the ML output(s). For example, the recommendation generation circuit 450 ( Figure 4 ) may generate recommendations based on the output(s) of the ML model(s) 476. In some examples, the output(s) of the ML model(s) 476 may include data identifying a newer version of the firmware of the first controller 126.
[0181] At block 712, the recommendation engine circuit 400 determines whether to implement the recommendation without intervention based on the policy. For example, the process control update circuit 460 ( Figure 4 ) can determine whether the process control system 102 is related to the strategy data 480 ( Figure 4 In some examples, the process control update circuitry 460 may determine that the policy specifies that the first controller 126 is to be upgraded with or without intervention (eg, partial intervention, full intervention, etc.) by a user, operator, etc.
[0182] At block 712, if the recommendation engine circuit 400 determines based on policy that the recommendation will be implemented without intervention, control proceeds to block 718. At block 712, if the recommendation engine circuit 400 determines based on policy that the recommendation will be implemented with intervention, control proceeds to block 714.
[0183] At block 714, the recommendation engine circuit 400 requests authorization to implement the recommendation. For example, the process control update circuit 460 may send a request for authorization to the installation agent 156 of the first controller 126 to implement the authorization. In some examples, the request for authorization may be presented to the user, such as through a display of the first workstation 134.
[0184] At block 716, the recommendation engine circuitry 400 determines whether authorization for the recommendation is received. For example, the installation agent 156 and / or the user of the first workstation 134 may determine that the first controller 126 is offline or in a maintenance operating state. In some examples, after determining that the first controller 126 is offline or in a maintenance operating state (e.g., an operating state indicating that it is safe to perform an update or upgrade), the installation agent 156 and / or the user may approve the request for authorization to proceed with implementing the recommendation (e.g., upgrading the firmware of the first controller 126).
[0185] At block 716 , if the recommendation engine circuitry 400 determines that authorization for the recommendation has not been received, control returns to block 714 , otherwise control continues to block 718 .
[0186] At block 718, the recommendation engine circuitry 400 causes an update of the process control system based on the recommendation. For example, the process control update circuitry 460 may invoke the installation agent 156 of the first controller 126 to upgrade the firmware of the first controller 126 based on the recommendation.
[0187] At block 720, the recommendation engine circuit 400 determines whether to continue monitoring the process control system. For example, the process control update circuit 460 may determine whether to continue obtaining telemetry data associated with the process control system. At block 720, if the recommendation engine circuit 400 determines to continue monitoring the process control system, control returns to block 702, otherwise Figure 7 The example machine readable instructions and / or example operations 700 end.
[0188] Figure 8 is a flow diagram representative of example machine readable instructions and / or example operations 800 that may be executed and / or instantiated by a processor circuit to cause an update of a first process control system based on a second process control system. Figure 8 The example machine readable instructions and / or example operations 800 begin at block 802 where the recommendation engine circuit 400 obtains telemetry data of a first process control system. For example, the interface circuit 410 ( Figure 4 ) can be obtained from Figure 1 and / or Figure 2 The interface circuit 410 may retrieve telemetry data associated with the process control system 102 from telemetry data 472 stored in the data storage 470 .
[0189] At block 804, the recommendation engine circuit 400 executes a machine learning (ML) model using the telemetry data as (multiple) ML inputs to output (multiple) ML outputs including (multiple) data classifications. For example, the ML circuit 440 ( Figure 4) may execute the ML model(s) 476 with the obtained telemetry data and / or the telemetry data 472 in the data store 470 as input(s) to generate output(s), which may include data classification(s) of the obtained telemetry data and / or the telemetry data 472 in the data store 470. For example, the output(s) may include a first data classification for a first portion of the telemetry data 472, a second data classification for a second portion of the telemetry data 472, and so on.
[0190] At block 806, the recommendation engine circuit 400 identifies a second process control system based on the data classification(s). Figure 4 ) can be identified based on the first data classification, the second data classification, etc. Figure 1 and / or Figure 2 In some examples, the configuration detection circuit 420 can be configured based on the identified process control system 102 having the same Figure 1 and / or Figure 2 The process control system 102 classifies the same or substantially similar telemetry data to identify the process control system Figure 1 and / or Figure 2 Another process control system that communicates with the cloud data center 146. For example, the configuration detection circuit 420 can determine that the identified process control system is Figure 1 and / or Figure 2 The process control system may be associated with and / or similar to (eg, substantially similar, matching one or more data classifications of the telemetry data, etc.).
[0191] At block 808, the recommendation engine circuit 400 identifies a configuration of the second process control system. For example, the configuration detection circuit 420 may identify the configuration of the identified process control system. In some examples, the interface circuit 410 may obtain the configuration from the identified process control system and / or retrieve the configuration from the configuration data 474 in the data store 470.
[0192] At block 810, the recommendation engine circuit 400 identifies changes to the first process control system based on the configuration of the second process control system. For example, the recommendation generation circuit 450 ( Figure 4 ) can identify applications utilized by the identified process control system and not utilized by the process control system 102 based on a comparison of the corresponding configurations.
[0193] At block 812, the recommendation engine circuitry 400 generates a recommendation to modify the first process control system. For example, the recommendation generation circuitry 450 may generate a recommendation instructing the process control system 102 to download and / or otherwise utilize an application.
[0194] At block 814, the recommendation engine circuit 400 causes an update of the first process control system based on the recommendation. For example, the process control update circuit 460 ( Figure 4 ) can be Figure 1 and / or Figure 2 In some examples, the recommendation may cause one (or more) of the on-site gateways 140 to invoke an installation agent of the first workstation 134 and / or the second workstation 136 to download, install, and / or run the application. Advantageously, after successfully downloading and installing the application, the first workstation 134 and / or the second workstation 136 may run the application to access and / or enable the application. Figure 1 and / or Figure 2 The recommendations generated in response to execution of the ML model(s) 476 may improve the efficiency of the electronic device(s) of the process control system 102 by being configured to provide an increased number of features, functionality, etc. without increasing the number of electronic devices(s).
[0195] At block 816, the recommendation engine circuit 400 determines whether to continue monitoring the first process control system. For example, the process control update circuit 460 may determine whether to continue obtaining telemetry data associated with the process control system 102. At block 816, if the recommendation engine circuit 400 determines to continue monitoring the first process control system, control returns to block 802, otherwise Figure 8 The example machine readable instructions and / or example operations 800 end.
[0196] Fig. 9 is a flow diagram representative of example machine readable instructions and / or example operations 900 that may be executed and / or instantiated by a processor circuit to generate recommendations for application(s) based on an operating state of a process control system. Fig. 9 The example machine readable instructions and / or example operations 900 begin at block 902 where the recommendation engine circuit 400 obtains telemetry data of a process control system. For example, the interface circuit 410 ( Figure 4 ) can be obtained with Figure 1 and / or Figure 2 The first field device 110 and / or more generally Figure 1 and / or Figure 2 The telemetry data may include telemetry data associated with the first fluid flow control component 106 of the process control system 102. In some examples, the telemetry data may include the number and / or type of components of the process control system 102 or components to be added to the process control system 102. In some examples, the telemetry data may include an operating state of the process control system 102 or its portion(s), such as whether the process control system 102 is in a designed operating state, a fully operating state, a maintenance operating state, etc.
[0197] At block 904, the recommendation engine circuit 400 detects whether the process control system is in the designed operating state. For example, the operating state detection circuit 430 ( Figure 4 ) can detect, identify and / or otherwise determine that the process control system 102 is in the designed operating state. At block 904, if the recommendation engine circuit 400 detects that the process control system is not in the designed operating state, control proceeds to block 908, otherwise control proceeds to block 906.
[0198] At block 906, the recommendation engine circuit 400 generates recommendations for application(s) associated with the process control system in the designed operating state. For example, the recommendation generation circuit 450 ( Figure 4 ) can generate directory 478( Figure 4 The process control system 102 may include a process control system 102 that generates a recommendation for application(s), container(s), and / or the like in a process control system 102 that may be executed and / or instantiated based on the telemetry data. In some examples, the recommendation may include an application and / or container that may be executed and / or instantiated to design a process control system, configure a process control system, program portion(s) of a process control system, and / or the like, and / or any combination(s) thereof. After generating the recommendation for application(s) associated with the process control system in the designed operational state at block 906, control proceeds to block 908.
[0199] At block 908, the recommendation engine circuit 400 detects whether the process control system is in a fully enabled operational state. For example, the operational state detection circuit 430 may detect, identify, and / or otherwise determine that the process control system 102 is in a fully enabled operational state. At block 908, if the recommendation engine circuit detects that the process control system is not in a fully enabled operational state, control proceeds to block 912, otherwise control proceeds to block 910.
[0200] At block 910, the recommendation engine circuit 400 generates recommendations for application(s) associated with the process control system in a fully enabled operational state. For example, the recommendation generation circuit 450 may generate recommendations for application(s), container(s), etc. in the catalog 478 that may be executed and / or instantiated by the process control system 102 based on telemetry data. In some examples, the recommendations may include applications and / or containers that may be executed and / or instantiated to collect telemetry data associated with the process control system, share and / or store process parameter data, implement prognostic health monitoring of process control components based on process parameter data, etc. and / or any combination(s) thereof. At block 910, after generating recommendations for application(s) associated with the process control system in a fully enabled operational state, control proceeds to block 912.
[0201] At block 912, the recommendation engine circuit 400 detects whether the process control system 102 is in a maintenance operating state. For example, the operating state detection circuit 430 may detect, identify, and / or otherwise determine that the process control system 102 is in a maintenance operating state. At block 912, if the recommendation engine circuit 400 detects that the process control system is not in a maintenance operating state, control proceeds to block 916, otherwise control proceeds to block 914.
[0202] At block 914, the recommendation engine circuit 400 generates recommendations for application(s) associated with the process control system in a maintenance operation state. For example, the recommendation generation circuit 450 may generate recommendations for application(s), container(s), etc. in the catalog 478 that may be executed and / or instantiated by the process control system 102 based on telemetry data. In some examples, the recommendations may include applications and / or containers that may be executed and / or instantiated to diagnose process control components (e.g., field devices 110, 116, controllers 126, 130, etc.), change firmware versions of process control components, change hardware configurations of process control components, etc., and / or any combination(s) thereof. At block 914, after generating recommendations for application(s) associated with the process control system in a maintenance operation state, control proceeds to block 916.
[0203] At block 916, the recommendation engine circuit 400 determines whether to continue monitoring the process control system. For example, the interface circuit 410 may determine whether to continue obtaining telemetry of the process control system 102. At block 916, if the recommendation engine circuit 400 determines to continue monitoring the process control system, control returns to block 902, otherwise Fig. 9 The example machine readable instructions and / or example operations 900 end.
[0204] Fig.10 is a flow diagram representative of example machine readable instructions and / or example operations 1000 that may be executed and / or instantiated by a processor circuit to cause an update of a process control system based on a recommendation. Fig.10 The example machine readable instructions and / or example operations 1000 begin at block 1002, where the recommendation engine circuit 400 identifies a configuration of a process control system based on at least one of telemetry data or a stored configuration. For example, the configuration detection circuit 420 ( Figure 4) can identify a configuration of the process control system 102 based on at least one of (i) telemetry data 472 corresponding to the process control system 102 or (ii) a configuration in the configuration data 474 corresponding to the process control system 102. In some examples, the configuration detection circuitry 420 can determine that the configuration of the process control system 102 includes an application having a first software version and a first software license (e.g., a software license that enables or activates one or more first software features).
[0205] At block 1004, the recommendation engine 400 detects whether there are new versions of the application(s) associated with the configuration. For example, the process control update circuit 460 ( Figure 4 ) can detect directory 478( Figure 4 ) in a second software version corresponding to the application.
[0206] At block 1004 , if the recommendation engine 400 detects that there are no new versions of the application(s) associated with the configuration, control proceeds to block 1008 , otherwise control proceeds to block 1006 .
[0207] At block 1006, the recommendation engine 400 facilitates the upgrade of the application(s) based on the service level agreement. For example, the process control update circuitry 460 may enable the installation agent 156 of the first workstation 134 and / or the second workstation 136 to perform a process control system 102 based on the policy data 480 ( Figure 4 ) to upgrade the application to the second software version. In some examples, the process control update circuitry 460 may determine that the SLA states that the upgrade will be performed automatically, semi-automatically, or manually.
[0208] At block 1008, the recommendation engine 400 detects whether a new software license is applicable to the configuration. For example, the process control update circuitry 460 may detect a second software license corresponding to the application in the catalog 478 (e.g., a software license that enables or activates one or more second software features that are different from one (or more) of the one or more first software features).
[0209] At block 1008 , if the recommendation engine 400 detects that the new software license is not applicable to the configuration, control proceeds to block 1012 , otherwise control proceeds to block 1010 .
[0210] At block 1010, the recommendation engine circuit 400 sends an alert to the process control system indicating the availability of new software license(s). Figure 4 ) can be Figure 1 and / or Figure 2The first embodiment of the present invention provides a method for transmitting the alert, message, etc. to one (or more) of the field gateways 140 of the present invention, including data representing the notification of the availability of the second software license. In some examples, one (or more) of the field gateways 140 can provide the alert, message, etc., or portion(s) thereof, to one (or more) of the workstations 134, 136 for display or presentation to the user.
[0211] At block 1012 , the recommendation engine 400 determines whether to continue monitoring the process control system. For example, the process control update circuitry 460 may determine whether to verify whether the configuration of the process control system 102 has changed and / or whether the change(s) to the configuration are available.
[0212] At block 1012, if the recommendation engine 400 determines to continue monitoring the process control system, control returns to block 1002, otherwise Fig.10 The example machine readable instructions and / or example operations 1000 end.
[0213] Fig.11 is a flow diagram representative of example machine readable instructions and / or example operations 1100 that may be executed and / or instantiated by a processor circuit to implement recovery of a process control system following a failure of the process control system. Fig.11 The example machine readable instructions and / or example operations 1100 begin at block 1102 where the recommendation engine 400 determines whether a request to restore a process control system has been received after a process control system failure. For example, the interface circuit 410 ( Figure 4 ) may determine that a request to restore portion(s) of the process control system 102 is received from the process control system 102 after a fault associated with the process control system 102 occurs.
[0214] At block 1102 , if the recommendation engine 400 determines that a request to restore the process control system has not been received after a process control system failure, control waits, such as for a period of time, after which another determination may be made.
[0215] At block 1102 , if the recommendation engine 400 determines that a request to restore a process control system has been received after a process control system failure, control continues to block 1104 .
[0216] At block 1104, the recommendation engine circuit 400 identifies a configuration of the process control system based on at least one of the telemetry data or the stored configuration. For example, the configuration detection circuit 420 ( Figure 4 ) can be based on telemetry data 472 ( Figure 4 ) or configuration data 474( Figure 4 ) to identify the configuration of the process control system 102.
[0217] At block 1106 , the recommendation engine circuitry 400 identifies application(s) corresponding to the configuration. For example, the configuration detection circuitry 420 may identify an application, container, firmware, hardware configuration, etc. corresponding to the configuration of the process control system 102 .
[0218] At block 1108, the recommendation engine circuit 400 distributes the application(s) to the process control system to restore the process control system. Figure 1 and / or Figure 2 At least one of the edge gateway 142 or the field gateway 140 to download the application, container, firmware, hardware configuration, etc. from the directory 478 ( Figure 4 ) and / or otherwise distribute to the process control system 102. In some examples, at least one of the edge gateway 142 or the field gateway 140 can send and / or otherwise distribute the application, container, firmware, hardware configuration, etc. to the installation agent 156 of the corresponding one (or more) of the controllers 126, 130, the workstations 134, 136, or the field gateway 140 for installation, configuration, and / or deployment, thereby restoring the process control system 102.
[0219] At block 1110, the recommendation engine circuit 400 detects whether the process control system has been restored. For example, the configuration detection circuit 420 may detect whether one (or more) of the controllers 126, 130, workstations 134, 136, or field gateways 140 is operational (e.g., receiving telemetry data from these (multiple) components) after reinstalling an application, container, firmware, hardware configuration, etc.
[0220] At block 1110 , if the recommendation engine circuit 400 detects that the process control system has not been restored, control returns to block 1108 , otherwise control continues to block 1112 .
[0221] At block 1112, the recommendation engine circuit 400 determines whether to continue monitoring the process control system. For example, the interface circuit 410 may determine whether another request to resume operation has been received. At block 1112, if the recommendation engine circuit 400 determines to continue monitoring the process control system, control returns to block 1102, otherwise Fig.11 The example machine readable instructions and / or example operations 1100 end.
[0222] Fig.12 is a flow diagram representative of example machine-readable instructions and / or example operations 1200 that may be executed and / or instantiated by a processor circuit to enable execution of an application on at least one of a cloud host or a client electronic device. Fig.12The example machine readable instructions and / or example operations 1200 begin at block 1202, where the recommendation engine circuit 400 determines whether a request to access an application has been received. For example, the interface circuit 410 ( Figure 4 ) may determine that access has been received from the process control system 102 from the directory 478 ( Figure 4 ) application request.
[0223] At block 1202, if the recommendation engine circuit 400 determines that a request to access an application has not been received, control waits, such as for a period of time, after which another determination may be made. At block 1202, if the recommendation engine circuit 400 determines that a request to access an application has been received, control continues to block 1204.
[0224] At block 1204, the recommendation engine circuit 400 determines whether the request indicates that the access is for execution of the application by the cloud host. For example, the process control update circuit 460 ( Figure 4 ) may determine that the request includes data indicating execution of an application to be hosted by a cloud host (e.g., a server, a virtual server instantiated by a server, a virtual machine instantiated by a server, a container instantiated by a server, etc.) instantiated by cloud data center 146. In some examples, execution of the application to be hosted by cloud data center 146 may be achieved via a web browser application, a web browser plug-in application, etc.
[0225] At block 1204, if the recommendation engine circuitry 400 determines that the request indicates that the access is for execution of an application by a cloud host, control proceeds to block 1206. At block 1206, the recommendation engine circuitry 400 instantiates the application on the cloud host for remote execution. For example, the process control update circuitry 460 may direct the cloud data center 146 to execute and / or instantiate the requested application. In some examples, the workstations 134, 136 of the process control system 102 may interact with the application on the cloud host via a web browser to enable remote execution of the application. At block 1206, after instantiating the application on the cloud host for remote execution, control proceeds to block 1210.
[0226] At block 1204 , if the recommendation engine circuitry 400 determines that the request does not indicate that the access is for execution of an application by a cloud host, control continues to block 1208 .
[0227] At block 1208, the recommendation engine circuitry 400 causes the application to be downloaded to the client electronic device for local execution. For example, the interface circuitry 410 may cause the workstation 134, 136 to download the application for execution on the workstation 134, 136 to enable local execution of the application.
[0228] At block 1208 , after causing the application to be downloaded to the client electronic device for local execution, control continues to block 1210 .
[0229] At block 1210, the recommendation engine circuitry 400 determines whether feedback associated with the application is identified. For example, the process control update circuitry 460 may determine that the application is identified by an online message board, blog, discussion forum, etc., which may be hosted by the cloud data center 146. In some examples, the process control update circuitry 460 may determine that the application is associated with feature(s) of the application and / or more generally with feedback (e.g., user feedback), review(s) (e.g., user review(s), etc.) of the application.
[0230] At block 1210 , if the recommendation engine circuit 400 determines that no feedback associated with the application is identified, control proceeds to block 1216 , otherwise control proceeds to block 1212 .
[0231] At block 1212, the recommendation engine circuitry 400 identifies change(s) to the application based on the feedback. For example, the process control update circuitry 460 may parse language from the feedback, comment(s), etc. into machine-readable data using natural language processing techniques. In some examples, the process control update circuitry 460 may identify feature(s) associated with the application based on the machine-readable data. In some examples, the process control update circuitry 460 may identify change(s) to which the feedback, comment(s), etc. relates based on a comparison of the identified feature(s) with portions(s) of the feedback, comment(s), etc.
[0232] At box 1214, the recommendation engine circuitry 400 redeploys the application for access based on the change(s). For example, the process control update circuitry 460 may recompile the application to include and / or otherwise implement the change(s). In some examples, the process control update circuitry 460 may provide the change(s) to a developer; the developer may recompile the application with the changes; and provide the recompiled application to the process control update circuitry 460 for certification and / or storage in the directory 478. In some examples, the interface circuitry 410 may propagate alarms, notifications, etc., indicating that a new version of the application is ready for use. In some examples, the interface circuitry 410 may propagate alarms, notifications, etc. to process control systems (such as) that utilize the application. Figure 1 and / or Figure 2 The process control system 102 is provided.
[0233] At block 1216, the recommendation engine circuitry 400 determines whether to continue monitoring for requests to access the application. For example, the process control update circuitry 460 may determine whether another request to access the application is received. At block 1216, if the recommendation engine circuitry 400 determines to continue monitoring for requests to access the application, control returns to block 1202, otherwise Fig.12 The example machine readable instructions and / or example operations 1200 end.
[0234] Fig.13 is a flow diagram representative of example machine readable instructions and / or example operations 1300 that may be executed and / or instantiated by a processor circuit to implement a process control system marketplace. Fig.13 The example machine readable instructions and / or example operations 1300 begin at block 1302 where the recommendation engine circuit 400 obtains an application or container from a developer for execution by a process control network. For example, the interface circuit 410 ( Figure 4 ) may obtain applications, containers, firmware, hardware configurations, etc. from developers (e.g., third-party hardware, software, and / or firmware developers) associated with or not associated with the cloud data center 146. In some examples, the applications, containers, firmware, hardware configurations, etc. may be utilized by the process control system 102 to implement, execute, etc., process control operations.
[0235] At block 1304, the recommendation engine circuit 400 authenticates the application or container for insertion into the catalog. For example, the process control update circuit 460 ( Figure 4 ) can be performed by determining whether the application and / or developer meets the requirements for adding the application to the catalog 478 ( Figure 4 ) to authenticate applications from developers.
[0236] At block 1306 , the recommendation engine circuitry 400 determines whether the application or container is certified. For example, the process control update circuitry 460 may determine that the application is certified based on the application and / or developer satisfying terms and conditions associated with adding the application to the catalog 478 .
[0237] At block 1306, if the recommendation engine circuitry 400 determines that the application or container is not authenticated, control proceeds to block 1308. At block 1308, the recommendation engine circuitry 400 denies the application or container from being added to the catalog. For example, the process control update circuitry 460 may prevent the application from being added to the catalog 478 after determining that the application and / or developer does not meet the terms and conditions associated with adding the application to the catalog 478. At block 1308, after denying the application or container from being added to the catalog, control proceeds to block 1316.
[0238] At block 1306 , if the recommendation engine circuit 400 determines that the application or container is authenticated, control continues to block 1310 .
[0239] At block 1310, the recommendation engine circuitry 400 adds the application or container to the catalog. For example, after determining that the application and / or developer meets the terms and conditions associated with adding the application to the catalog 478, the process control update circuitry 460 can add the application to the catalog 478. At block 1310, after adding the application or container to the catalog, control continues to block 1312.
[0240] At block 1312, the recommendation engine circuitry 400 determines whether the application or container is a beta version. For example, the process control update circuitry 460 may determine that the application is a beta version, such as a version of the application that is not available for general use and can be used by users who choose to use the beta version of the application.
[0241] At block 1312 , if the recommendation engine circuitry 400 determines that the application or container is not a beta version, control proceeds to block 1316 , otherwise control proceeds to block 1314 .
[0242] At block 1314, the recommendation engine circuit 400 issues an alert to the user who selected the beta version release. For example, the interface circuit 410 may send an alert indicating the availability of the beta version of the application to the user(s) who selected to attempt and / or otherwise access the beta version of the process control application. At block 1314, after the alert is issued to the user who selected the beta version release, control continues to block 1316.
[0243] At block 1316, the recommendation engine circuit 400 determines whether the client electronic device has accessed the application or container. For example, the interface circuit 410 may obtain telemetry data from the first workstation 134 in response to the first workstation 134 accessing the application. In some examples, the application may include machine-readable code that, when executed and / or instantiated, causes the first workstation 134 to send telemetry data associated with the application to the cloud data center 146.
[0244] At block 1316, if the recommendation engine circuitry 400 determines that the client electronic device has not accessed the application or container, then the example machine readable instructions and / or example operations 1300 end.
[0245] At block 1316 , if the recommendation engine circuit 400 determines that the client electronic device has accessed the application or container, control continues to block 1318 .
[0246] At box 1318, the recommendation engine circuit 400 decrements (multiple) tokens from a first token balance recorded on the ledger, where the first token balance corresponds to the client electronic device. For example, the process control update circuit 460 may determine that access to the application cost and / or other aspects is associated with the consumption of 50 tokens. In some examples, the process control update circuit 460 may identify a first token balance corresponding to the first workstation 134 and / or an entity (e.g., a logical entity, a corporate entity, a user entity, etc.) more generally associated with the first workstation 134 as recorded on a ledger (such as a blockchain). For example, the process control update circuit 460 may decrement 50 tokens from the first token balance to effectuate payment for access to the application (e.g., payment via a digital or electronic process).
[0247] At box 1320, the recommendation engine circuit 400 increments (multiple) tokens from a second token balance recorded on the ledger, where the second token balance corresponds to a developer to enable payment for access to the client electronic device. For example, the process control update circuit 460 may identify a second token balance recorded on the ledger that corresponds to a developer of the application. In some examples, the process control update circuit 460 may increment and / or otherwise add 50 tokens to the second token balance to enable payment for access to the application to the first workstation 134 (e.g., payment via a digital or electronic process). At box 1320, after incrementing the token(s) of the second token balance recorded on the ledger, Fig.13 The example machine readable instructions and / or example operations 1300 end.
[0248] Fig.14 is a flow diagram representative of example machine readable instructions and / or example operations 1400 that may be executed and / or instantiated by a processor circuit to cause a change to a field device based on a recommendation. Fig.14 The example machine readable instructions and / or example operations 1400 begin at block 1402, where the gateway circuit 500 uses a machine learning model to classify telemetry data associated with a field device into at least first data having a first data classification and second data having a second data classification. For example, the interface circuit 510 ( Figure 5 ) can be obtained from field devices such as Figure 1 and / or Figure 2 The controller 126, 130) collects and / or otherwise obtains telemetry data 572. For example, the ML circuit 540 ( Figure 5 ) may execute (multiple) ML models 576 with telemetry data 572 as (multiple) inputs to generate (multiple) outputs, which may include a first data classification of the telemetry data 572 and a second data classification of the telemetry data 572.
[0249] At block 1404, the gateway circuit 500 sends at least one of the first data or the second data to the server based on the policy data. For example, the process control update circuit 560 ( Figure 5 ) can be based on policy data 580 ( Figure 5 ) to determine that data with a first data classification will be retained within the process control system 102. In some examples, the process control update circuitry 560 may determine that data with a second data classification may be retained with the process control system 102 based on the data security policy. Figure 1 and / or Figure 2 For example, the process control update circuit 560 may call the interface circuit 510 to send second data having a second data classification to the cloud data center 146. In some examples, the second data may include a first firmware version of the firmware installed on the controllers 126, 130.
[0250] At block 1406, the gateway circuit 500 receives a recommendation to change the field device from the server. For example, the cloud data center 146 may generate a recommendation to change the first firmware to a second firmware version, which may be newer or later than the first firmware version.
[0251] At block 1408, the gateway circuitry 500 causes a change in the field device based on the recommendation. For example, the process control update circuitry 560 may direct the installation agent 156 of the controller 126, 130 to change the firmware of the controller 126, 130 from a first firmware version to a second firmware version. At block 1408, after causing a change in the field device based on the recommendation, Fig.14 The example machine readable instructions and / or example operations 1400 end.
[0252] Fig.15 is a flow diagram representative of example machine readable instructions and / or example operations 1500 that may be executed and / or instantiated by a processor circuit to cause a change in at least one of firmware or software of a process control system based on recommendation(s). Fig.15 The example machine readable instructions and / or example operations 1500 begin at block 1502 where the gateway circuit 500 collects telemetry data from a process control system. For example, the interface circuit 510 ( Figure 5 ) can be obtained with Figure 1 and / or Figure 2 The telemetry data associated with the first workstation 134 is provided as telemetry data 572 ( Figure 5 ) is stored in the data storage 570 ( Figure 5 )middle.
[0253] At block 1504, the gateway circuit 500 classifies the telemetry data. For example, the ML circuit 540 ( Figure 5 ) can execute (multiple) ML model(s) 576 with telemetry data 572 as (multiple) data input to generate (multiple) data output(s), which can include a first data classification of a first data of telemetry data 572 and a second data classification of a second data of telemetry data 572. In some examples, the first data classification and the second data classification can be provided as policy data 580 ( Figure 5 ) as part of a stored policy (such as an SLA) and / or otherwise defined.
[0254] At block 1506, the gateway circuit 500 identifies the portion(s) of telemetry data to be sent to the server based on the service level agreement. For example, after determining that the first data has a first data classification, the process control update circuit 560 ( Figure 5 ) can identify the first data as not being sent to Figure 1 and / or Figure 2 The process control update circuit 560 may identify the second data as to be sent to the cloud data center 146, wherein the first data is defined as not being sent to the outside of the process control system 102 in accordance with the SLA. In some examples, after determining that the second data has the second data classification, the process control update circuit 560 may identify the second data as to be sent to the cloud data center 146, wherein the second data is defined as being sent to the outside of the process control system 102 in accordance with the SLA.
[0255] At block 1508, the gateway circuitry 500 sends the portion(s) of the telemetry data to the server. For example, the interface circuitry 510 may send the second data having the second data classification to the cloud data center 146. In some examples, the cloud data center 146 may generate recommendations for changes to the first workstation 134 and / or to the process control system 102 more generally based on the second data.
[0256] At block 1510, the gateway circuit 500 receives from the server a recommendation(s) to modify the process control system. For example, the interface circuit 510 may obtain data from the cloud data center 146. In some examples, the data may represent a recommendation to install an application that is not already installed on the first workstation 134.
[0257] At block 1512, the gateway circuitry 500 modifies at least one of the firmware or software of the process control system based on the recommendation(s). For example, the process control update circuitry 560 may direct the installation agent 156 of the first workstation 134 to install an application to unlock and / or enable new features (e.g., field device control features, field device diagnostic features, field device data collection features, data analysis features, prognostic health monitoring features, etc.) that may not have been previously available to the process control system 102.
[0258] At block 1514, the gateway circuit 500 determines whether to continue collecting telemetry data. For example, the interface circuit 510 may determine whether to continue collecting telemetry data. At block 1514, if the gateway circuit 500 determines to continue collecting telemetry data, control returns to block 1502, otherwise Fig.15 The example machine readable instructions and / or example operations 1500 end.
[0259] Fig.16 is a flow diagram representative of example machine readable instructions and / or example operations 1600 that may be executed and / or instantiated by a processor circuit to send telemetry data to a server. Fig.16 The example machine readable instructions and / or example operations 1600 begin at block 1602, where the gateway circuit 500 collects first data associated with a field device, including at least one of process parameter data, configuration data, hardware version, or firmware version. For example, the interface circuit 510 ( Figure 5 ) can be obtained with Figure 1 and / or Figure 2 Telemetry data associated with the field devices 110, 116, such as firmware version, hardware configuration, process parameter data (e.g., pressure sensor measurement data value, analog current measurement corresponding to the sensor measurement, voltage measurement corresponding to the sensor measurement, etc.), etc. In some examples, the telemetry data associated with the field devices 110, 116 can be provided as telemetry data 572 ( Figure 5 ) is stored in the data storage 570 ( Figure 5 )middle.
[0260] At block 1604, the gateway circuit 500 collects second data associated with the controller(s), including at least one of configuration data, hardware version(s), or firmware version(s). Figure 1 and / or Figure 2 Telemetry data associated with the controllers 126 , 130 , such as firmware version, hardware version, hardware configuration, etc. In some examples, telemetry data associated with the controllers 126 , 130 may be stored in the data store 570 as telemetry data 572 .
[0261] At block 1606, the gateway circuit 500 collects third data associated with the gateway(s), including at least one of configuration data, hardware version(s), or firmware version(s). Figure 1 and / or Figure 2Telemetry data associated with one (or more) of the field gateways 140 and / or one (or more) of the edge gateways 142, such as firmware version, hardware version, hardware configuration, etc. In some examples, telemetry data associated with one (or more) of the field gateways 140 and / or one (or more) of the edge gateways 142 can be stored in the data store 570 as telemetry data 572.
[0262] At block 1608, the gateway circuit 500 collects fourth data associated with the application(s), including at least one of configuration data, software version(s), or license(s). Figure 1 and / or Figure 2 The telemetry data associated with the first workstation 134 and / or the second workstation 136 may include telemetry data associated with the first workstation 134 and / or the second workstation 136, such as software version(s) of installed applications, configuration data associated with the process control system 102, license(s) assigned to the first workstation 134 and / or the second workstation 136, etc. In some examples, the telemetry data associated with the first workstation 134 and / or the second workstation 136 may be stored in the data store 570 as telemetry data 572.
[0263] At block 1610, the gateway circuit 500 collects fifth data associated with the process control system, including at least one of environmental data, operating stage data, or operator identification data. For example, the interface circuit 510 can collect telemetry data associated with the process control system 102, which can include the operating stage of the process control system 101 (or (multiple) parts thereof), the identifier of the operator of the process control system 102, environmental data associated with the process control system 102 (e.g., ambient temperature data, precipitation data, light sensor data, wind speed data, time of year, etc.), etc. In some examples, the telemetry data associated with the process control system 102 can be stored in the data storage 570 as telemetry data 572.
[0264] At block 1612, the gateway circuit 500 uses a machine learning (ML) model to classify at least one of the first data, the second data, the third data, the fourth data, or the fifth data. For example, the ML circuit 540 ( Figure 5 ) can be used with (multiple) ML models 576 ( Figure 5 ) to classify at least one of the first data, the second data, the third data, the fourth data or the fifth data into one or more data classifications.
[0265] At block 1614, the gateway circuit 500 identifies (a plurality of) portions of at least one of the first data, the second data, the third data, the fourth data, or the fifth data for external transmission based on the classification. For example, the process control update circuit 560 ( Figure 5 ) can determine whether to send at least one of the first data, the second data, the third data, the fourth data, or the fifth data to the cloud data center 146 based on the classification.
[0266] At block 1616, the gateway circuit 500 sends (a plurality of) portions of at least one of the first data, the second data, the third data, the fourth data, or the fifth data to the server. For example, the interface circuit 510 may send at least one of the first data, the second data, the third data, the fourth data, or the fifth data to the cloud data center 146 based on the classification.
[0267] At block 1618, the gateway circuit 500 determines whether to continue collecting data. For example, the interface circuit 510 may determine whether to continue collecting telemetry data associated with the process control system 102. At block 1618, if the gateway circuit 500 determines to continue collecting data, control returns to block 1602, otherwise Fig.16 The example machine readable instructions and / or example operations 1600 end.
[0268] Fig.17 is a flow diagram representative of example machine readable instructions and / or example operations 1700 that may be executed and / or instantiated by a processor circuit to implement a restore operation. Fig.17 The example machine readable instructions and / or example operations 1700 begin at block 1702, where the gateway circuit 500 determines whether recovery operation is required in the process control system after (multiple) failures. For example, the operating state detection circuit 530 ( Figure 5 ) may determine that portion(s) of the process control system 102 has experienced a failure or is offline or unresponsive to commands, requests, etc.
[0269] At block 1702 , if the gateway circuit 500 determines that recovery operations are not required in the process control system following the fault(s), control proceeds to block 1710 , otherwise control proceeds to block 1704 .
[0270] At block 1704, the gateway circuit 500 requests the server to perform a recovery operation. For example, the interface circuit 510 ( Figure 5 ) can send a request to the cloud data center 146 to implement recovery operations associated with (multiple) failed, offline, or unresponsive portions of the process control system 102.
[0271] At block 1706, the gateway circuit 500 installs at least one of firmware or application(s) on the device(s) in the process control system based on the configuration data stored by the server. Figure 5) may obtain at least one of firmware or application(s) to be installed (or reinstalled) on the failed, offline, or unresponsive portion(s) of the process control system 102. For example, the process control update circuitry 560 may cause the installation agent 156 of the first workstation 134 to install (or reinstall) one or more applications after the first workstation 134 fails. In some examples, the installation agent 156 may be based on Figure 4 configuration data 474 to install (or reinstall) one or more applications.
[0272] At block 1708, the gateway circuit 500 configures the device(s) in the process control system based on the configuration data stored by the server. For example, the process control update circuit 560 may invoke the installation agent of the first workstation 134 to configure the device(s) in the process control system based on the configuration data stored by the server. Figure 4 Configuration data 474 to configure one or more applications.
[0273] At block 1710, the gateway circuit 500 determines whether to continue monitoring the process control system. For example, the interface circuit 510 may determine whether to continue monitoring the process control system 102, such as if a fault exists. At block 1710, if the gateway circuit 500 determines to continue monitoring the process control system, control returns to block 1702, otherwise Fig.17 The example machine readable instructions and / or example operations 1700 end.
[0274] Fig.18 is a flow diagram representative of example machine readable instructions and / or example operations 1800 that may be executed and / or instantiated by a processor circuit to upgrade a device of a process control system. Figure 8 The example machine readable instructions and / or example operations 1800 begin at block 1802 where the gateway circuit 500 determines whether a recommendation to upgrade a device in a process control system has been received. For example, the interface circuit 510 ( Figure 5 ) can confirm that the received Figure 1 and / or Figure 2 In some examples, the recommendation may include placing Figure 1 and / or Figure 2 The first firmware version of the firmware of the first field device 110 is changed to the second firmware version to achieve the upgrade of the first field device 110 .
[0275] At block 1802 , if the gateway circuitry 500 determines that a recommendation to upgrade a device in the process control system has not been received, control waits, such as for a period of time, after which another determination may be made.
[0276] At block 1802 , if the gateway circuitry 500 determines that a recommendation to upgrade a device in the process control system has been received, control continues to block 1804 .
[0277] At block 1804, the gateway circuit 500 determines the permitted access level of the device based on the service level agreement. For example, due to security concerns of modifying the first field device 110 while the first field device 110 is in operation, the process control update circuit 560 ( Figure 5 ) can determine that the allowed access level of the first field device 110 is manually allowed access. In some examples, the allowed access level can be defined by or in the SLA of the policy data 580 and / or otherwise specified.
[0278] At block 1806, the gateway circuit 500 determines whether the allow access level is an automatic allow access level. For example, the process control update circuit 560 may determine that the allow access level associated with the first field device 110 is an automatic allow access level, which may indicate that the first field device 110 may be upgraded without user intervention.
[0279] At block 1806 , if the gateway circuit 500 determines that the allow access level is the auto-allow access level, control proceeds to block 1808 .
[0280] At block 1808, the gateway circuit 500 determines whether the device is in at least one of a standby or maintenance phase of operation. For example, the operating state detection circuit 530 ( Figure 5 ) can detect whether the first field device 110 is in at least one of a standby or maintenance phase of operation to ensure that an upgrade of the first field device 110 is safely implemented.
[0281] At block 1808 , if the gateway circuit 500 determines that the device is not in at least one of the standby or maintenance phases of operation, control waits for a period of time at block 1808 after which another determination may be made before continuing.
[0282] At block 1808 , if the gateway circuit 500 determines that the device is in at least one of the standby or maintenance phases of operation, control continues to block 1810 .
[0283] At box 1810, the gateway circuit 500 upgrades the device. For example, the process control update circuit 560 can send a message to the installation agent 156 of the first controller 130 to enable the first controller 130 to upgrade the firmware of the first field device 110 from the first firmware version to the second firmware version. In some examples, the message may include the second firmware version of the firmware. In some examples, the installation agent 156 can send a first message to initialize the firmware upgrade and a second message including the second firmware version of the firmware to the first field device 110. In the example of using a controller group in the process control system 102, the control logic or workload executed by the (multiple) first controllers in the upgraded controller group can be moved to the (multiple) second available controllers in the controller group to enable the (multiple) first controllers to be safely updated. After upgrading the device at box 1810, control continues to box 1818.
[0284] At block 1806, if the gateway circuitry 500 determines that the allow access level is not the automatic allow access level, control proceeds to block 1812. In some examples, the automatic allow access level can be discovered through a configuration discovery process. For example, when a user is granted electronic signature authority, the user can be automatically granted an allow access level applicable to the market application 154. Similarly, a user role of the process control system 102 (such as a configuration engineer or a reliability engineer) contained in a user database of the process control system 102 can be automatically granted an allow access level during the configuration discovery process.
[0285] At block 1812, the gateway circuitry 500 determines whether the allowed access level is a semi-automatic allowed access level. For example, the process control update circuitry 560 may determine whether the allowed access level associated with the first field device 110 as defined by the SLA may indicate that the allowed access level is a semi-automatic allowed access level. For example, the semi-automatic allowed access level may correspond to a staged upgrade of a device, where one or more stages or operations will be completed automatically (e.g., automatically via hardware, software, and / or firmware), and one or more stages or operations will be completed manually by a user.
[0286] At block 1812 , if the gateway circuit 500 determines that the allowed access level is not the semi-automatic allowed access level, control proceeds to block 1816 , otherwise it proceeds to block 1814 .
[0287] At block 1814 , the gateway circuitry 500 upgrades the device in stages. For example, the process control update circuitry 560 may perform one or more stages or operations to update the firmware of the first field device 110 without user intervention.
[0288] At block 1816 , the gateway circuit 500 enables the user to upgrade the device. For example, the process control update circuit 560 may alert the user to manually perform one or more stages or operations of updating the firmware of the first field device 110 .
[0289] At block 1818, the gateway circuitry 500 determines whether to continue monitoring the process control system. For example, the interface circuitry 510 may determine whether to check whether another recommendation to upgrade a device in the process control system 102 has been received. At block 1818, if the gateway circuitry 500 determines to continue monitoring the process control system, control returns to block 1802, otherwise Fig.18 The example machine readable instructions and / or example operations 1800 end.
[0290] Fig.19 is constructed to execute and / or instantiate Figure 6-13 Example machine readable instructions and / or example operations to implement Figure 4 4 is a block diagram of an example processor platform 1900 of the recommendation engine circuit 400. The processor platform 1900 may be, for example, a server, a personal computer, a workstation, a self-learning machine (eg, a neural network), or any other type of computing device.
[0291] The processor platform 1900 of the illustrated example includes a processor circuit 1912. The processor circuit 1912 of the illustrated example is hardware. For example, the processor circuit 1912 may be implemented by one or more integrated circuits, logic circuits, FPGAs, microprocessors, CPUs, GPUs, DSPs, and / or microcontrollers from any desired family or manufacturer. The processor circuit 1912 may be implemented by one or more semiconductor-based (e.g., silicon-based) devices. In this example, the processor circuit 1912 implements Figure 4 The configuration detection circuit 420 (indicated by the configuration detection circuit (CONFIG DETECT CIRCUITRY)), the operation state detection circuit 430 (identified by the OP state detection circuit (OP STATE DETECT CIRCUITRY)), the ML circuit 440 (identified by the ML circuit), the recommendation generation circuit 450 (identified by the REC GEN circuit (REC GEN CIRCUITRY)), and the process control update circuit 460 (identified by the PCNTRL update circuit (PCNTRL UPDATE CIRCUITRY)).
[0292] The processor circuit 1912 of the illustrated example includes a local memory 1913 (e.g., cache, registers, etc.). The processor circuit 1912 of the illustrated example communicates with a main memory including a volatile memory 1914 and a non-volatile memory 1916 via a bus 1918. In some examples, the bus 1918 may implement Figure 4 The volatile memory 1914 may be composed of a synchronous dynamic random access memory (SDRAM), a dynamic random access memory (DRAM), Dynamic Random Access Memory The non-volatile memory 1916 may be implemented by flash memory and / or any other desired type of memory device. Access to the main memory 1914, 1916 of the example shown is controlled by a memory controller 1917.
[0293] The processor platform 1900 of the illustrated example also includes an interface circuit 1920. The interface circuit 1920 may be implemented by hardware according to any type of interface standard, such as an Ethernet interface, a universal serial bus (USB) interface, Interface, Near Field Communication (NFC) interface, Peripheral Component Interconnect (PCI) interface and / or Peripheral Component Interconnect Express (PCIe) interface. In this example, interface circuit 1920 implements Figure 4 Interface circuit 410.
[0294] In the example shown, one or more input devices 1922 are connected to the interface circuit 1920. The input device(s) 1922 allow a user to input data and / or commands to the processor circuit 1912. The input device(s) 1922 may be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, buttons, a mouse, a touch screen, a touch pad, a trackball, an isopoint device, and / or a voice recognition system.
[0295] One or more output devices 1924 are also connected to the interface circuit 1920 of the illustrated example. The output device(s) 1924 may be implemented by, for example, a display device (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display (LCD), a cathode ray tube (CRT) display, an in-plane switching (IPS) display, a touch screen, etc.), a tactile output device, a printer, and / or a speaker. Therefore, the interface circuit 1920 of the illustrated example typically includes a graphics driver card, a graphics driver chip, and / or a graphics processor circuit (such as a GPU).
[0296] The interface circuitry 1920 of the illustrated example also includes a communication device (such as a transmitter, receiver, transceiver, modem, residential gateway, wireless access point, and / or network interface) to facilitate the exchange of data with an external machine (e.g., any kind of computing device) over a network 1926. Communications may be through, for example, an Ethernet connection, a digital subscriber line (DSL) connection, a telephone line connection, a coaxial cable system, a satellite system, a field line wireless system (e.g., a mesh wireless network), a cellular telephone system, an optical connection, etc.
[0297] The processor platform 1900 of the illustrated example also includes one or more mass storage devices 1928 to store software and / or data. Examples of such mass storage devices 1928 include magnetic storage devices, optical storage devices, floppy disk drives, HDDs, CDs, Blu-ray disk drives, redundant arrays of independent disks (RAID) systems, solid-state storage devices (such as flash memory devices and / or SSDs), and DVD drives. In this example, the one or more mass storage devices 1928 implement data storage 470, telemetry data 472 (identified by TELEMETRY), configuration data 474 (indicated by CONFIG), (multiple) ML models 476, catalogs 478, policy data 480 (indicated by POLOCY), and token repositories 482 (indicated by TOKEN).
[0298] Can be Figure 6-13 The machine-readable instructions 1932 implemented by the machine-readable instructions may be stored in the mass storage device 1928, the volatile memory 1914, the non-volatile memory 1916, and / or on a removable, non-transitory computer-readable storage medium such as a CD or DVD.
[0299] Fig.19 The example processor platform 1900 shown includes an example acceleration circuit 1940, which includes an example graphics processing unit (GPU) 1942, an example visual processing unit (VPU) 1944, and an example neural network processor 1946. In this example, the GPU 1942, VPU 1944, and neural network processor 1946 communicate with different hardware (such as volatile memory 1914, non-volatile memory 1916, etc.) of the processor platform 1900 via a bus 1918. In this example, the neural network processor 1946 can be implemented by one or more integrated circuits, logic circuits, microprocessors, GPUs, DSPs, or controllers from any desired family or manufacturer that can be used to execute AI / ML models (such as neural networks that can be implemented by (multiple) ML models 476). In some examples, instead of or in addition to processor circuit 1912, one or more of configuration detection circuit 420, operating state detection circuit 430, ML circuit 440, recommendation generation circuit 450, and / or process control update circuit 460 may be implemented in or with at least one of GPU 1942, VPU 1944, or neural network processor 1946.
[0300] Fig. 20 is constructed to execute and / or instantiate Figure 14-18Example machine readable instructions and / or example operations to implement Figure 5 5 is a block diagram of an example processor platform 2000 of a gateway circuit 500. The processor platform 2000 may be, for example, a server, a personal computer, a workstation, a self-learning machine (eg, a neural network), or any other type of computing device.
[0301] The processor platform 2000 of the illustrated example includes a processor circuit 2012. The processor circuit 2012 of the illustrated example is hardware. For example, the processor circuit 2012 may be implemented by one or more integrated circuits, logic circuits, FPGAs, microprocessors, CPUs, GPUs, DSPs, and / or microcontrollers from any desired family or manufacturer. The processor circuit 2012 may be implemented by one or more semiconductor-based (e.g., silicon-based) devices. In this example, the processor circuit 2012 implements Figure 5 The configuration detection circuit 520 (indicated by the configuration detection circuit (CONFIG DETECT CIRCUITRY)), the operation state detection circuit 530 (indicated by the OP state detection circuit (OP STATE DETECT CIRCUITRY)), the ML circuit 540 (indicated by the ML circuit), and the process control update circuit 560 (indicated by the PCNTRL update circuit (PCNTRL UPDATE CIRCUITRY)).
[0302] The processor circuit 2012 of the illustrated example includes a local memory 2013 (e.g., cache, registers, etc.). The processor circuit 2012 of the illustrated example communicates with a main memory including a volatile memory 2014 and a non-volatile memory 2016 via a bus 2018. In some examples, the bus 2018 may implement Figure 5 The volatile memory 2014 may be composed of SDRAM, DRAM, The non-volatile memory 2016 may be implemented by flash memory and / or any other desired type of memory device. Access to the main memory 2014, 2016 of the example shown is controlled by a memory controller 2017.
[0303] The processor platform 2000 of the illustrated example also includes an interface circuit 2020. The interface circuit 2020 may be implemented by hardware according to any type of interface standard, such as an Ethernet interface, a USB interface, Interface, NFC interface, PCI interface and / or PCIe interface. In this example, the interface circuit 2020 implements Figure 5 The interface circuit 510 is provided.
[0304] In the example shown, one or more input devices 2022 are connected to the interface circuit 2020. The input device(s) 2022 allow a user to input data and / or commands to the processor circuit 2012. The input device(s) 2022 may be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, buttons, a mouse, a touch screen, a touch pad, a trackball, an isopoint device, and / or a voice recognition system.
[0305] One or more output devices 2024 are also connected to the interface circuit 2020 of the illustrated example. (Multiple) output devices 2024 can be implemented by, for example, a display device (e.g., LED, OLED, LCD, CRT display, IPS display, touch screen, etc.), a tactile output device, a printer, and / or a speaker. Therefore, the interface circuit 2020 of the illustrated example typically includes a graphics driver card, a graphics driver chip, and / or a graphics processor circuit (such as a GPU).
[0306] The interface circuitry 2020 of the illustrated example also includes communication devices (such as transmitters, receivers, transceivers, modems, residential gateways, wireless access points, and / or network interfaces) to facilitate the exchange of data with external machines (e.g., any kind of computing device) over the network 2026. Communications may be through, for example, an Ethernet connection, a digital subscriber line (DSL) connection, a telephone line connection, a coaxial cable system, a satellite system, a field line wireless system, a cellular telephone system, an optical connection, etc.
[0307] The processor platform 2000 of the illustrated example also includes one or more mass storage devices 2028 to store software and / or data. Examples of such mass storage devices 2028 include magnetic storage devices, optical storage devices, floppy disk drives, HDDs, CDs, Blu-ray disk drives, redundant array of independent disks (RAID) systems, solid-state storage devices (such as flash memory devices and / or SSDs), and DVD drives. In this example, the one or more mass storage devices 2028 implement data storage 570, telemetry data 572 (indicated by TELEMETRY), configuration data 574 (indicated by CONFIG), (multiple) ML models 576, executable files 578 indicated by ((multiple) executable files (EXE(S))), policy data 580 (indicated by POLICY), and parameter data 582 (indicated by PARAMETER).
[0308] Can be Figure 14-18The machine-readable instructions 2032 implemented by the machine-readable instructions may be stored in the mass storage device 2028, the volatile memory 2014, the non-volatile memory 2016, and / or on a removable, non-transitory computer-readable storage medium (such as a CD or DVD).
[0309] Fig. 20 The example processor platform 2000 shown includes an example acceleration circuit 2040, which includes an example GPU 2042, an example VPU 2044, and an example neural network processor 2046. In this example, the GPU 2042, the VPU 2044, and the neural network processor 2046 communicate with different hardware (such as volatile memory 2014, non-volatile memory 2016, etc.) of the processor platform 2000 via a bus 2018. In this example, the neural network processor 2046 can be implemented by one or more integrated circuits, logic circuits, microprocessors, GPUs, DSPs, or controllers from any desired series or manufacturer that can be used to execute AI / ML models (such as neural networks that can be implemented by (multiple) ML models 576). In some examples, instead of or in addition to processor circuit 2012, one or more of configuration detection circuit 520, operating state detection circuit 530, ML circuit 540, and / or process control update circuit 560 may be implemented in or with at least one of GPU 2042, VPU 2044, or neural network processor 2046.
[0310] Fig.21 yes Fig.19 The processor circuit 1912 and / or Fig. 20 2012 is a block diagram of an example implementation of a processor circuit 2012. In this example, Fig.19 The processor circuit 1912 and / or Fig. 20 The processor circuit 2012 is implemented by the microprocessor 2100. For example, the microprocessor 2100 may be a general-purpose microprocessor (eg, a general-purpose microprocessor circuit). The microprocessor 2100 executes Figure 6-18 Some or all of the machine-readable instructions of the flowchart to effectively Figure 4 The recommendation engine circuit 400 and / or Figure 5 The gateway circuit 500 is instantiated as a logic circuit to perform operations corresponding to these machine-readable instructions. In some such examples, Figure 4 The recommendation engine circuit 400 and / or Figure 5The gateway circuit 500 is instantiated by the hardware circuit of the microprocessor 2100 in combination with instructions. For example, the microprocessor 2100 can be implemented by a multi-core hardware circuit system (such as a CPU, DSP, GPU, XPU, etc.). Although it may include any number of example cores 2102 (for example, 1 core), the microprocessor 2100 of this example is a multi-core semiconductor device including N cores. The cores 2102 of the microprocessor 2100 can operate independently, or can cooperate to execute machine-readable instructions. For example, machine code corresponding to a firmware program, an embedded software program, or a software program can be executed by one of the cores in the core 2102, or can be executed by multiple cores in the core 2102 at the same or different times. In some examples, the machine code corresponding to the firmware program, the embedded software program, or the software program is divided into threads and executed in parallel by two or more cores in the core 2102. The software program may correspond to a program executed by Figure 6-18 The flowchart may represent part or all of the machine-readable instructions and / or operations.
[0311] The core 2102 can communicate via a first example bus 2104. In some examples, the first bus 2104 can be implemented by a communication bus to implement communications associated with one (or more) of the cores 2102. For example, the first bus 2104 can be implemented by at least one of an inter-integrated circuit (I2C) bus, a serial peripheral interface (SPI) bus, a PCI bus, or a PCIe bus. Additionally or alternatively, the first bus 2104 can be implemented by any other type of computing or electrical bus. The core 2102 can obtain data, instructions, and / or signals from one or more external devices via an example interface circuit 2106. The core 2102 can output data, instructions, and / or signals to one or more external devices via the interface circuit 2106. Although the core 2102 of the example includes an example local memory 2120 (e.g., a level 1 (L1) cache that may be divided into an L1 data cache and an L1 instruction cache), the microprocessor 2100 also includes an example shared memory 2110 that may be shared by the cores (e.g., a level 2 (L2 cache)) for high-speed access to data and / or instructions. Data and / or instructions may be transferred (e.g., shared) by writing to and / or reading from the shared memory 2110. The local memory 2120 and the shared memory 2110 of each of the cores 2102 may be a plurality of levels of cache memory and a main memory (e.g., Fig.19 Main memory 1914, 1916, Fig. 20The cache memory is part of a hierarchy of storage devices (main memory 2014, 2016, etc.). Typically, higher level memory in the hierarchy exhibits less access time and has a smaller storage capacity than lower level memory. Changes to various levels of the cache hierarchy are managed (e.g., coordinated) by a cache coherence policy.
[0312] Each core 2102 may be referred to as a CPU, DSP, GPU, etc., or any other type of hardware circuit system. Each core 2102 includes a control unit circuit 2114, an arithmetic logic (AL) circuit system (sometimes referred to as an ALU) 2116, a plurality of registers 2118, a local memory 2120, and a second example bus 2122. Other structures may exist. For example, each core 2102 may include a vector unit circuit system, a single instruction multiple data (SIMD) unit circuit system, a load / store unit (LSU) circuit system, a branch / jump unit circuit system, a floating point processing unit (FPU) circuit system, etc. The control unit circuit 2114 includes a semiconductor-based circuit configured to control (e.g., coordinate) data movement within the corresponding core 2102. The AL circuit system 2116 includes a semiconductor-based circuit configured to perform one or more mathematical and / or logical operations on the data within the corresponding core 2102. The AL circuit system 2116 of some examples performs integer-based operations. In other examples, the AL circuit system 2116 also performs floating-point operations. In another other example, the AL circuit system 2116 may include a first AL circuit system that performs integer-based operations and a second AL circuit system that performs floating-point operations. In some examples, the AL circuit system 2116 may be referred to as an arithmetic logic unit (ALU). The register 2118 is a semiconductor-based structure to store data and / or instructions, such as the results of one or more of the operations performed by the AL circuit system 2116 of the corresponding core 2102. For example, the register 2118 may include (multiple) vector registers, (multiple) SIMD registers, (multiple) general registers, (multiple) flag registers, (multiple) segment registers, (multiple) machine-specific registers, (multiple) instruction pointer registers, (multiple) control registers, (multiple) debug registers, (multiple) memory management registers, (multiple) machine check registers, etc. The register 2118 may be arranged as Fig.21 Alternatively, registers 2118 may be organized in any other arrangement, format, or structure, including being distributed throughout core 2102 to shorten access time. Second bus 2122 may be implemented by at least one of an I2C bus, an SPI bus, a PCI bus, or a PCIe bus.
[0313] Each core 2102 and / or more generally, the microprocessor 2100 may include additional and / or alternative structures for the structures shown and described above. For example, there may be one or more clock circuits, one or more power supplies, one or more power gating, one or more cache home agents (CHA), one or more aggregation / common grid stops (CMS), one or more shifters (e.g., (multiple) barrel shifters) and / or other circuit systems. The microprocessor 2100 is a semiconductor device that is manufactured to include many transistors that are interconnected to implement the structure described above in one or more integrated circuits (ICs) contained in one or more packages. The processor circuit may include one or more accelerators and / or collaborate with one or more accelerators. In some examples, the accelerator is implemented by a logic circuit system to perform certain tasks faster and / or more efficiently than a general-purpose processor. Examples of accelerators include ASICs and FPGAs, such as those discussed herein. GPUs or other programmable devices may also be accelerators. The accelerator may be on a processor circuit, in the same chip package as the processor circuit, and / or in one or more packages separated from the processor circuit.
[0314] Fig. 22 yes Fig.19 The processor circuit 1912 and / or Fig. 20 2012 is a block diagram of another example implementation of a processor circuit 2012. In this example, Fig.19 The processor circuit 1912 and / or Fig. 20 The processor circuit 2012 of the embodiment is implemented by the FPGA circuit system 2200. For example, the FPGA circuit system 2200 can be implemented by an FPGA. For example, the FPGA circuit system 2200 can be used to perform operations that otherwise can be performed by Fig.21 The example microprocessor 2100 executes the corresponding machine-readable instructions to perform. However, once configured, the FPGA circuit system 2200 instantiates the machine-readable instructions in hardware and, therefore, can generally perform operations faster than a general-purpose microprocessor executing corresponding software.
[0315] More specifically, as described above Fig.21 The microprocessor 2100 (which can be programmed to execute Figure 6-18 Compared to a general purpose device that may contain some or all of the machine-readable instructions represented by a flowchart, but whose interconnections and logic circuitry are fixed once manufactured, Fig. 22 The example FPGA circuit system 2200 includes interconnects and logic circuit systems that can be configured and / or interconnected in different ways after manufacturing to instantiate, for example, Figure 6-18In particular, FPGA circuit system 2200 can be thought of as an array of logic gates, interconnects, and switches. The switches can be programmed to change the way the logic gates are interconnected through the interconnects, effectively forming one or more dedicated logic circuits (unless and until FPGA circuit system 2200 is reprogrammed). The configured logic circuits enable the logic gates to cooperate in different ways to perform different operations on the data received by the input circuit system. These operations can correspond to Figure 6-18 Thus, the FPGA circuit system 2200 may be constructed to include some or all of the software represented by the flowchart of FIG. Figure 6-18 Some or all of the machine-readable instructions of the flowchart are effectively instantiated as dedicated logic circuits to perform operations corresponding to these software instructions in a dedicated manner similar to an ASIC. Therefore, the FPGA circuit system 2200 can execute operations corresponding to these software instructions faster than a general-purpose microprocessor. Figure 6-18 Operations corresponding to some or all of the machine-readable instructions.
[0316] exist Fig. 22 In the example of FPGA circuit system 2200, FPGA circuit system 2200 is constructed to be programmed (and / or reprogrammed one or more times) by an end user via a hardware description language (HDL) (such as Verilog). Fig. 22 FPGA circuit system 2200 includes example input / output (I / O) circuit system 2202 to obtain and / or output data from / to example configuration circuit 2204 and / or external hardware 2206. For example, configuration circuit 2204 can be implemented by an interface circuit that can obtain machine-readable instructions to configure FPGA circuit system 2200 or (multiple) portions thereof. In some such examples, configuration circuit 2204 can obtain machine-readable instructions from a user, a machine (e.g., a hardware circuit system (e.g., a programming or special purpose circuit) that can implement an artificial intelligence / machine learning (AI / ML) model to generate instructions), etc. In some examples, external hardware 2206 can be implemented by external hardware circuit system. For example, external hardware 2206 can be implemented by Fig.21 FPGA circuit system 2200 also includes an array of example logic gate circuit system 2208, multiple example configurable interconnects 2210, and example storage circuit system 2212. Logic gate circuit system 2208 and configurable interconnect 2210 can be configured to instantiate one or more operations, which can correspond to Figure 6-18 At least some of the machine-readable instructions and / or other desired operations. Fig. 22The logic gated circuit system 2208 shown in is manufactured in the form of groups or blocks. Each block includes a semiconductor-based electrical structure that can be configured as a logic circuit. In some examples, the electrical structure includes logic gating (e.g., And gating, Or gating, Nor gating, etc.) that provides a basic building block for the logic circuit. An electrically controlled switch (e.g., a transistor) is present in each logic gated circuit system 2208 so that the configuration of the electrical structure and / or logic gating can form a circuit to perform the desired operation. The logic gated circuit system 2208 may include other electrical structures, such as a lookup table (LUT), a register (e.g., a flip-flop or latch), a multiplexer, etc.
[0317] The example configurable interconnect 2210 shown is a conductive path, trace, route, etc., which may include an electrically controlled switch (e.g., a transistor) whose state can be changed by programming (e.g., using an HDL instruction language) to activate or deactivate one or more connections between one or more of the logic gated circuit systems 2208, thereby programming the desired logic circuit.
[0318] The storage circuit system 2212 of the illustrated example is configured to store the result(s) of one or more operations performed by the corresponding logic gates. The storage circuit system 2212 may be implemented by registers, etc. In the illustrated example, the storage circuit system 2212 is distributed between the logic gate circuit system 2208 to facilitate access and increase execution speed.
[0319] Fig. 22 The example FPGA circuit system 2200 also includes an example special operation circuit 2214. In this example, the special operation circuit 2214 includes a special purpose circuit 2216, which can be called to implement common functions to avoid the need to program these functions on site. Examples of such special purpose circuits 2216 include memory (e.g., DRAM) controller circuits, PCIe controller circuits, clock circuits, transceiver circuit systems, memories, and multiplier accumulator circuits. There may be other types of special purpose circuits. In some examples, the FPGA circuit system 2200 may also include an example general purpose programmable circuit system 2218, such as an example CPU 2220 and / or an example DSP 2222. There may be other general purpose programmable circuit systems 2218, such as GPUs, XPUs, etc., which may be programmed to perform other operations in addition or alternatively.
[0320] although Fig.21 and Fig. 22 Shows Fig.19 The processor circuit 1912 and / or Fig. 20These are two example implementations of the processor circuit 2012, but many other approaches are contemplated. For example, as mentioned above, modern FPGA circuitry may include an onboard CPU, such as Fig. 22 One or more of the example CPUs 2220. Thus, Fig.19 The processor circuit 1912 and / or Fig. 20 The processor circuit 2012 may additionally be combined by Fig.21 An example microprocessor 2100 and Fig. 22 In some such hybrid examples, the example FPGA circuit system 2200 is implemented by Figure 6-18 The first portion of the machine-readable instructions represented by the flowchart of Fig.21 2102, executed by one or more of the cores Figure 6-18 The second part of the machine-readable instructions represented by the flowchart of can be represented by Fig. 22 The FPGA circuit system 2200 is executed and / or composed of Figure 6-18 The third part of the machine-readable instructions represented by the flowchart can be executed by an ASIC. It should be understood that Figure 4 The recommendation engine circuit 400 and / or Figure 5 Some or all of the gateway circuitry 500 may be instantiated at the same or different times. For example, some or all of the circuitry may be instantiated in one or more threads that execute concurrently and / or serially. Additionally, in some examples, Figure 4 The recommendation engine circuit 400 and / or Figure 5 Some or all of the gateway circuit 500 may be implemented within one or more virtual machines and / or containers executing on a microprocessor.
[0321] In some examples, Fig.19 The processor circuit 1912 and / or Fig. 20 The processor circuit 2012 may be in one or more packages. For example, Fig.21 The microprocessor 2100 and / or Fig. 22 The FPGA circuit system 2200 can be in one or more packages. In some examples, the XPU can be composed of Fig.19 The processor circuit 1912 and / or Fig. 20 The XPU may be implemented by a processor circuit 2012, which may be in one or more packages. For example, the XPU may include a CPU in one package, a DSP in another package, a GPU in yet another package, and an FPGA in yet another package.
[0322] Fig.23 It shows that software (such as Fig.19 Example machine readable instructions 1932 and / or Fig. 20 2032) to a hardware device owned and / or operated by a third party. The example software distribution platform 2305 can be implemented by any computer server, data facility, cloud service, etc. capable of storing or sending software to other computing devices. In some examples, the software distribution platform 2305 can be implemented by Figure 1 and / or Figure 2 The third party may be a customer of the entity that owns and / or operates the software distribution platform 2305. For example, the entity that owns and / or operates the software distribution platform 2305 may be a developer, seller, and / or software (such as Fig.19 Example machine readable instructions 1932 and / or Fig. 20 The third party may be a consumer, user, retailer, OEM, etc., who purchases and / or licenses the software for use and / or resells and / or transfers the license. In the example shown, the software distribution platform 2305 includes one or more servers and one or more storage devices. As described above, the storage device stores Fig.19 Example machine readable instructions 1932 and / or Fig. 20 Example machine readable instructions 2032, which may correspond to Figure 6-18 Example machine-readable instructions 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1700, 1800 of the example software distribution platform 2305. One or more servers of the example software distribution platform 2305 communicate with the example network 2310, which can correspond to any one or more of the Internet and / or any of the example networks 138, 148, 1926, 2026 described above. In some examples, one or more servers respond to a request to send software to a requesting party as part of a commercial transaction. The delivery, sale, and / or payment of the license of the software can be processed by one or more servers of the software distribution platform and / or by a third-party payment entity. The server enables purchasers and / or licensors to download software from the software distribution platform 2305. Fig.19 Example machine readable instructions 1932 and / or Fig. 20 Example machine readable instructions 2032. For example, may correspond to Figure 6-13 The software of the example machine readable instructions 600, 700, 800, 900, 1000, 1100, 1200, 1300 may be downloaded to Fig.19 The example processor platform 1900 of FIG. 1900 will execute Fig.19 Example machine readable instructions 1932 to implement Figure 4In some examples, it may correspond to Figure 14-18 The software of the example machine readable instructions 1400, 1500, 1600, 1700, 1800 may be downloaded to Fig. 20 The example processor platform 2000 of FIG. 10 is configured to execute Fig. 20 Example machine readable instructions 2032 to implement Figure 5 In some examples, one or more servers of the software distribution platform 2305 periodically provide, send, and / or force updates to the software (e.g., Fig.19 Example machine readable instructions 1932 and / or Fig. 20 Example machine readable instructions 2032) to ensure that improvements, patches, updates, etc. are distributed and applied to the software at the end-user device.
[0323] As can be appreciated from the foregoing, example systems, methods, apparatus, and articles of manufacture for an application marketplace for a process control system have been disclosed. In some disclosed examples, by allowing end users to purchase and maintain process control system software through an example marketplace application, end users can gain a near-instant experience of being granted software licenses to unlock or activate new features for use in a process control system. Advantageously, in some disclosed examples, remote systems such as cloud data centers can benefit from collecting metrics (e.g., the latest metrics) and reporting license usage and history for measurement needs (e.g., instant or near-instant measurement results).
[0324] The disclosed example systems, methods, apparatus, and articles of manufacture may recommend the purchase and installation of specific software, firmware, and / or hardware configuration instances to enhance the operation of a process control system. For example, different hardware, software, and / or firmware may be recommended based on at least one of a configuration or an operating state of the process control system.
[0325] The disclosed systems, methods, apparatus, and articles of manufacture provide for improved efficiency in the use of computing devices by recommending unlocking, activating, and / or otherwise enabling new features, functions, etc. that were not previously utilized in a process control system. Thus, the disclosed systems, methods, apparatus, and articles of manufacture are directed to one or more improvements in the operation of a machine such as a computer or other electronic and / or mechanical device.
[0326] This document discloses example methods, devices, systems, and articles of manufacture for use in a process control system application market. Further examples and combinations thereof include the following:
[0327] Example 1 includes an apparatus comprising at least one memory, machine-readable instructions, and a processor circuit that at least one of instantiates or executes the machine-readable instructions to: detect at least one of a configuration or an operating state of a process control system based on telemetry data associated with the process control system, execute a machine learning model to generate an output based on at least one of the configuration or the operating state, the output representing a recommendation to change a portion of the process control system, and cause a change to the portion of the process control system based on the recommendation.
[0328] Example 2 includes the apparatus of Example 1, wherein the processor circuit is to cause a change in a portion of the process control system after determining based on the policy that the recommendation is to be implemented without intervention by a user associated with the process control system.
[0329] Example 3 includes the apparatus of Example 1, wherein the processor circuit requests authorization from a user associated with the process control system to cause the change after determining based on the policy that the recommendation is to be implemented with intervention by the user.
[0330] Example 4 includes the apparatus of Example 1, wherein the processor circuit is used to: execute a machine learning model to classify telemetry data into first data having a first data classification and second data having a second data classification, discard the first data based on a policy, and store the second data in a data storage based on the policy.
[0331] Example 5 includes the apparatus of Example 1, wherein the configuration is a first configuration, the process control system is a first process control system, and the processor circuit is used to: execute a machine learning model to identify one or more data classifications of telemetry data, identify a second process control system based on the one or more data classifications, identify a second configuration of the second process control system, and identify a change to the first process control system based on the second configuration of the second process control system.
[0332] Example 6 includes the apparatus of Example 1, wherein the process control system is a first process control system and the processor circuit is used to: detect that the first process control system is in an operating state, and generate a recommendation to identify an application associated with a second process control system in an operating state, and the change to a portion of the first process control system includes the execution of the application.
[0333] Example 7 includes the apparatus of Example 6, wherein the processor circuit is to detect whether the operating state is a design operating state, a fully enabled operating state, or a maintenance operating state.
[0334] Example 8 includes the apparatus of Example 1, wherein the processor circuit is to: identify a first version of the application based on a configuration, and upon detecting that a second version of the application is available, facilitate upgrading the application from the first version to the second version based on a policy.
[0335] Example 9 includes the apparatus of Example 1, wherein the processor circuit is used to: obtain data representing a request to restore the process control system after a failure of the process control system, identify one or more applications corresponding to the configuration, and distribute the one or more applications to the process control system to cause recovery of the process control system.
[0336] Example 10 includes the apparatus of Example 1, wherein the processor circuit is to: obtain data representing a request to access an application, and after determining that the request indicates that the access is for execution of the application by the cloud host, instantiate the application on the cloud host for execution.
[0337] Example 11 includes the apparatus of Example 1, wherein the processor circuit is used to: obtain data representing a request to access an application, and after determining that the request indicates that the access is for local execution of the application by the client electronic device, download the application to the client electronic device for local execution on the client electronic device.
[0338] Example 12 includes the apparatus of Example 1, wherein the processor circuit is used to: identify an application associated with the process control system based on a configuration, and after determining that feedback associated with the application has been identified, identify changes to the application based on the feedback, and redeploy the application for access by the process control system based on the change.
[0339] Example 13 includes the apparatus of Example 1, wherein the processor circuit is used to: determine that an application associated with a process control system is accessed by a client electronic device of the process control system, decrement one or more tokens from a first token balance recorded on a ledger, the first token balance corresponding to the client electronic device, and increment one or more tokens for a second token balance recorded on the ledger, the second token balance corresponding to a developer of the application, and the increment of the one or more tokens implements payment for access to the application by the client electronic device.
[0340] Example 14 includes the apparatus of Example 1, wherein the recommendation includes deploying a virtual private network, a firewall, or a software data diode in the process control system, and the processor circuit is to deploy at least one of the virtual private network, the firewall, or the software data diode in the process control system.
[0341] Example 15 includes the apparatus of Example 1, wherein the configuration includes at least one of the installed products or the selected products for deployment in the process control system, and the recommendation includes support services associated with at least one of the installed products or the selected products for deployment in the process control system.
[0342] Example 16 includes the apparatus of Example 1, wherein the processor circuit is to determine that a change to a portion of the process control system is associated with a monetary cost based on an identification of a customer of the process control system.
[0343] Example 17 includes the apparatus of Example 1, wherein the processor circuit is to determine that the telemetry data includes usage data for improving product or sales funnel conversion to improve a marketing strategy associated with the product to increase conversion rates.
[0344] Example 18 includes a non-transitory machine-readable storage medium comprising instructions that, when executed, cause a processor circuit to: detect at least one of a configuration or an operating state of a process control system based at least on telemetry data associated with the process control system, execute a machine learning model to generate an output based on at least one of the configuration or the operating state, the output representing a recommendation to change a portion of the process control system, and cause a change to the portion of the process control system based on the recommendation.
[0345] Example 19 includes the non-transitory machine-readable storage medium of Example 18, wherein the instructions, when executed, cause the processor circuit to: cause a change in a portion of the process control system after determining, based on the policy, that the recommendation will be implemented without intervention by a user associated with the process control system.
[0346] Example 20 includes the non-transitory machine-readable storage medium of Example 18, wherein the instructions, when executed, cause the processor circuit to: request authorization from a user associated with the process control system to cause the change after determining based on the policy that the recommendation is to be implemented with intervention by the user.
[0347] Example 21 includes the non-transitory machine-readable storage medium of Example 18, wherein the instructions, when executed, cause the processor circuit to: execute the machine learning model to classify the telemetry data into first data having a first data classification and second data having a second data classification, discard the first data based on a policy, and store the second data in a data store based on the policy.
[0348] Example 22 includes the non-transitory machine-readable storage medium of Example 18, wherein the configuration is a first configuration, the process control system is a first process control system, and the instructions, when executed, cause the processor circuit to: execute a machine learning model to identify one or more data classifications of the telemetry data, identify a second process control system based on the one or more data classifications, identify a second configuration of the second process control system, and identify a change to the first process control system based on the second configuration of the second process control system.
[0349] Example 23 includes the non-transitory machine-readable storage medium of Example 18, wherein the process control system is a first process control system, and the instructions, when executed, cause the processor circuit to: detect that the first process control system is in an operating state, and generate a recommendation to identify an application associated with a second process control system that is in an operating state, wherein the change to a portion of the first process control system includes execution of the application.
[0350] Example 24 includes the non-transitory machine-readable storage medium of Example 23, wherein the instructions, when executed, cause the processor circuit to detect whether the operating state is a design operating state, a fully enabled operating state, or a maintenance operating state.
[0351] Example 25 includes the non-transitory machine-readable storage medium of Example 18, wherein the instructions, when executed, cause the processor circuit to: identify a first version of the application based on a configuration, and upon detecting that a second version of the application is available, facilitate upgrading the application from the first version to the second version based on a policy.
[0352] Example 26 includes the non-transitory machine-readable storage medium of Example 18, wherein the instructions, when executed, cause the processor circuit to: obtain data representing a request for recovery of the process control system after a failure of the process control system, identify one or more applications corresponding to the configuration, and distribute the one or more applications to the process control system to cause recovery of the process control system.
[0353] Example 27 includes the non-transitory machine-readable storage medium of Example 18, wherein the instructions, when executed, cause the processor circuit to: obtain data representing a request to access an application, and after determining that the request indicates that the access is for execution of the application by the cloud host, instantiate the application on the cloud host for execution.
[0354] Example 28 includes the non-transitory machine-readable storage medium of Example 18, wherein the instructions, when executed, cause the processor circuit to: obtain data representing a request to access an application, and after determining that the request indicates that the access is for local execution of the application by the client electronic device, cause the application to be downloaded to the client electronic device for local execution on the client electronic device.
[0355] Example 29 includes the non-transitory machine-readable storage medium of Example 18, wherein the instructions, when executed, cause the processor circuit to: identify an application associated with the process control system based on the configuration, and after determining that feedback associated with the application has been identified, identify a change to the application based on the feedback, and redeploy the application for access by the process control system based on the change.
[0356] Example 30 includes the non-transitory machine-readable storage medium of Example 18, wherein the instructions, when executed, cause the processor circuit to: determine that an application associated with the process control system is accessed by a client electronic device of the process control system, remove one or more tokens from a first token balance recorded on a ledger, the first token balance corresponding to the client electronic device, and add one or more tokens to a second token balance recorded on the ledger, the second token balance corresponding to a developer of the application, the increment of the one or more tokens effecting payment for access to the application by the client electronic device.
[0357] Example 31 includes the non-transitory machine-readable storage medium of Example 18, wherein the recommendation includes deploying a virtual private network, a firewall, or a software data diode in the process control system, and the instructions, when executed, cause the processor circuit to deploy at least one of the virtual private network, the firewall, or the software data diode in the process control system.
[0358] Example 32 includes the non-transitory machine-readable storage medium of Example 18, wherein the configuration includes at least one of an installed product or a selected product for deployment in a process control system, and the recommendation includes support services associated with at least one of the installed product or the selected product for deployment in the process control system.
[0359] Example 33 includes the non-transitory machine readable storage medium of Example 18, wherein the instructions, when executed, cause the processor circuit to determine that a change to a portion of the process control system is associated with a monetary cost based on an identification of a customer of the process control system.
[0360] Example 34 includes the non-transitory machine-readable storage medium of Example 18, wherein the instructions, when executed, cause the processor circuit to determine that the telemetry data includes usage data for improving product or sales funnel conversions to improve marketing strategies associated with the product to increase conversion rates.
[0361] Example 35 includes a method comprising: detecting at least one of a configuration or an operating state of a process control system based on telemetry data associated with the process control system, executing a machine learning model to generate an output based on at least one of the configuration or the operating state, the output representing a recommendation to change a portion of the process control system, and causing a change to the portion of the process control system based on the recommendation.
[0362] Example 36 includes the method of Example 35, wherein causing the change to the portion of the process control system is after determining, based on the policy, that the recommendation will be implemented without intervention by a user associated with the process control system.
[0363] Example 37 includes the method of Example 35, further comprising requesting authorization from a user associated with the process control system to cause the change after determining based on the policy that the recommendation is to be implemented with intervention by the user.
[0364] Example 38 includes the method of Example 35, further comprising: executing a machine learning model to classify the telemetry data into first data having a first data classification and second data having a second data classification, deleting the first data based on a policy, and storing the second data in a data store based on the policy.
[0365] Example 39 includes the method of Example 35, wherein the configuration is a first configuration, the process control system is a first process control system, and the method further includes: executing a machine learning model to identify one or more data classifications of telemetry data, identifying a second process control system based on the one or more data classifications, identifying a second configuration of the second process control system, and identifying a change to the first process control system based on the second configuration of the second process control system.
[0366] Example 40 includes the method of Example 35, wherein the process control system is a first process control system, and the method further includes: detecting that the first process control system is in an operating state, and generating a recommendation to identify an application associated with a second process control system in an operating state, wherein the change to a portion of the first process control system includes execution of the application.
[0367] Example 41 includes the method of Example 40, further comprising detecting whether the operating state is a design operating state, a fully enabled operating state, or a maintenance operating state.
[0368] Example 42 includes the method of Example 35, further comprising: identifying a first version of the application based on the configuration, and after detecting that the second version of the application is available, upgrading the application from the first version to the second version based on the policy.
[0369] Example 43 includes the method of Example 35, further comprising: obtaining data representing a request for recovery of the process control system after a failure of the process control system, identifying one or more applications corresponding to the configuration, and distributing the one or more applications to the process control system to cause recovery of the process control system.
[0370] Example 44 includes the method of Example 35, further comprising: obtaining data representing a request to access an application, and after determining that the request indicates that the access is for execution of the application by the cloud host, instantiating the application on the cloud host for execution.
[0371] Example 45 includes the method of Example 35, further comprising: obtaining data representing a request to access an application, and after determining that the request indicates that the access is for local execution of the application by the client electronic device, causing the application to be downloaded to the client electronic device for local execution on the client electronic device.
[0372] Example 46 includes the method of Example 35, further comprising: identifying an application associated with the process control system based on the configuration, and after determining that feedback associated with the application has been identified, identifying changes to the application based on the feedback, and redeploying the application based on the change for access by the process control system.
[0373] Example 47 includes the method of Example 35, further comprising: determining that an application associated with the process control system is accessed by a client electronic device of the process control system, decrementing one or more tokens from a first token balance recorded on the ledger, the first token balance corresponding to the client electronic device, and incrementing one or more tokens for a second token balance recorded on the ledger, the second token balance corresponding to a developer of the application, the increment of one or more tokens realizing payment for access to the application by the client electronic device.
[0374] Example 48 includes the method of Example 35, wherein the recommendation includes deploying a virtual private network, a firewall, or a software data diode in the process control system, and the method further includes deploying at least one of the virtual private network, the firewall, or the software data diode in the process control system.
[0375] Example 49 includes the method of Example 35, wherein the configuration includes at least one of the installed products or the selected products for deployment in the process control system, and the recommendation includes support services associated with at least one of the installed products or the selected products for deployment in the process control system.
[0376] Example 50 includes the method of Example 35, further comprising determining that a modification of a portion of the process control system is associated with a monetary cost based on an identification of a customer of the process control system.
[0377] Example 51 includes the method of Example 35, further comprising determining that the telemetry data includes usage data for improving product or sales funnel conversions to improve marketing strategies associated with the product to increase conversion rates.
[0378] The following claims are incorporated into this detailed description by reference. Although certain example systems, methods, devices, and articles are disclosed herein, the coverage of this patent is not limited thereto. On the contrary, this patent fairly covers all systems, methods, devices, and articles that fall within the scope of the claims of this patent.
Claims
1. A device comprising: at least one memory; machine-readable instructions; as well as a processor circuit that at least one of instantiates or executes the machine-readable instructions to: detecting at least one of a configuration or an operating state of a process control system based on telemetry data associated with the process control system; executing a machine learning model to generate an output based on the at least one of the configuration or the operating state, the output representing a recommendation for modifying a portion of the process control system; as well as A change is caused to the portion of the process control system based on the recommendation.
2. The apparatus of claim 1, wherein the processor circuit causes the modification of the portion of the process control system after determining, based on a policy, that the recommendation will be implemented without intervention by a user associated with the process control system. 3 . The apparatus of claim 1 , wherein the processor circuit, after determining based on a policy that the recommendation is to be implemented with intervention of a user associated with the process control system, is to request authorization from the user to cause the change.
4. The apparatus of claim 1 , wherein the processor circuit is configured to: executing the machine learning model to classify the telemetry data into first data having a first data classification and second data having a second data classification; discarding the first data based on a policy; as well as The second data is stored in a data store based on the policy.
5. The apparatus of claim 1 , wherein the configuration is a first configuration, the process control system is a first process control system, and the processor circuit is to: executing the machine learning model to identify one or more data classifications of the telemetry data; identifying a second process control system based on the one or more data classifications; identifying a second configuration of the second process control system; as well as The modification of the first process control system is identified based on the second configuration of the second process control system.
6. The apparatus of claim 1 , wherein the process control system is a first process control system and the processor circuit is to: detecting that the first process control system is in the operating state; and The recommendation is generated to identify an application associated with a second process control system in the operating state, the modification to the portion of the first process control system including execution of the application.
7. The apparatus of claim 6, wherein the processor circuit is to detect whether the operating state is a design operating state, a fully enabled operating state, or a maintenance operating state.
8. The apparatus of claim 1, wherein the processor circuit is configured to: identifying a first version of the application based on the configuration; and After detecting that a second version of the application is available, upgrading the application from the first version to the second version is facilitated based on a policy.
9. The apparatus of claim 1, wherein the processor circuit is configured to: obtaining data representing a request to restore the process control system following a failure of the process control system; identifying one or more applications corresponding to the configuration; as well as The one or more applications are distributed to the process control system to cause the recovery of the process control system.
10. The apparatus of claim 1, wherein the processor circuit is configured to: obtaining data representing a request to access an application; and After determining that the request indicates that the access is for execution of the application by a cloud host, the application is instantiated on the cloud host for execution.
11. The apparatus of claim 1 , wherein the processor circuit is configured to: obtaining data representing a request to access an application; and After determining that the request indicates that the access is for local execution of the application by a client electronic device, the application is caused to be downloaded to the client electronic device for local execution on the client electronic device.
12. The apparatus of claim 1, wherein the processor circuit is configured to: identifying an application associated with the process control system based on the configuration; and After determining that feedback associated with the application is identified: identifying changes to the application based on the feedback; and The application is redeployed based on the changes for access by the process control system.
13. The apparatus of claim 1, wherein the processor circuit is configured to: determining that an application associated with the process control system is accessed by a client electronic device of the process control system; decrementing one or more tokens from a first token balance recorded on a ledger, the first token balance corresponding to the client electronic device; and The one or more tokens are incremented for a second token balance recorded on the ledger, the second token balance corresponding to the developer of the application, and the incrementing of the one or more tokens is used to realize payment for the access to the application by the client electronic device.
14. An apparatus according to claim 1, wherein the recommendation includes deploying a virtual private network, a firewall, or a software data diode in the process control system, and the processor circuit will deploy at least one of the virtual private network, the firewall, or the software data diode in the process control system.
15. An apparatus according to claim 1, wherein the configuration includes at least one of an installed product or a selected product for deployment in the process control system, and the recommendation includes support services associated with the at least one of the installed product or the selected product for deployment in the process control system.
16. The apparatus of claim 1, wherein the processor circuit is to associate the determination of the modification of the portion of the process control system with a monetary cost based on an identification of a customer of the process control system.
17. The apparatus of claim 1, wherein the processor circuit is to determine that the telemetry data includes usage data for improving product or sales funnel conversion to improve marketing strategies associated with the product to increase conversion rates.
18. A non-transitory machine-readable storage medium comprising instructions that, when executed, cause a processor circuit to at least: detecting at least one of a configuration or an operating state of a process control system based on telemetry data associated with the process control system; executing a machine learning model to generate an output based on the at least one of the configuration or the operating state, the output representing a recommendation to change a portion of the process control system; as well as A change is caused to the portion of the process control system based on the recommendation.
19. The non-transitory machine-readable storage medium of claim 18, wherein the instructions, when executed, cause the processor circuit to: cause the change to the portion of the process control system after determining, based on a policy, that the recommendation will be implemented without intervention by a user associated with the process control system.
20. The non-transitory machine-readable storage medium of claim 18, wherein: The instructions, when executed, cause the processor circuit to request authorization from a user associated with the process control system to cause the change after determining, based on a policy, that the recommendation is to be implemented with intervention by the user.
21. The non-transitory machine-readable storage medium of claim 18, wherein the instructions, when executed, cause the processor circuit to: executing the machine learning model to classify the telemetry data into first data having a first data classification and second data having a second data classification; discarding the first data based on a policy; as well as The second data is stored in a data store based on the policy.
22. The non-transitory machine-readable storage medium of claim 18, wherein the configuration is a first configuration, the process control system is a first process control system, and the instructions, when executed, cause the processor circuit to: executing the machine learning model to identify one or more data classifications of the telemetry data; identifying a second process control system based on the one or more data classifications; identifying a second configuration of the second process control system; as well as The modification of the first process control system is identified based on the second configuration of the second process control system.
23. The non-transitory machine-readable storage medium of claim 18, wherein the process control system is a first process control system and the instructions, when executed, cause the processor circuit to: detecting that the first process control system is in the operating state; and The recommendation is generated to identify an application associated with a second process control system in the operating state, the modification to the portion of the first process control system including execution of the application.
24. The non-transitory machine-readable storage medium of claim 23, wherein the instructions, when executed, cause the processor circuit to detect whether the operating state is a design operating state, a fully enabled operating state, or a maintenance operating state.
25. The non-transitory machine-readable storage medium of claim 18, wherein the instructions, when executed, cause the processor circuit to: identifying a first version of the application based on the configuration; and After detecting that a second version of the application is available, upgrading the application from the first version to the second version is facilitated based on a policy.
26. The non-transitory machine-readable storage medium of claim 18, wherein the instructions, when executed, cause the processor circuit to: obtaining data representing a request to restore the process control system following a failure of the process control system; identifying one or more applications corresponding to the configuration; as well as The one or more applications are distributed to the process control system to cause the recovery of the process control system.
27. The non-transitory machine-readable storage medium of claim 18, wherein the instructions, when executed, cause the processor circuit to: obtaining data representing a request to access an application; and After determining that the request indicates that the access is for execution of the application by a cloud host, the application is instantiated on the cloud host for execution.
28. The non-transitory machine-readable storage medium of claim 18, wherein the instructions, when executed, cause the processor circuit to: obtaining data representing a request to access an application; and After determining that the request indicates that the access is for local execution of the application by a client electronic device, the application is caused to be downloaded to the client electronic device for local execution on the client electronic device.
29. The non-transitory machine-readable storage medium of claim 18, wherein the instructions, when executed, cause the processor circuit to: identifying an application associated with the process control system based on the configuration; as well as After determining that feedback associated with the application is identified: identifying changes to the application based on the feedback; as well as The application is redeployed based on the changes for access by the process control system.
30. The non-transitory machine-readable storage medium of claim 18, wherein the instructions, when executed, cause the processor circuit to: determining that an application associated with the process control system is accessed by a client electronic device of the process control system; removing one or more tokens from a first token balance recorded on a ledger, the first token balance corresponding to the client electronic device; as well as The one or more tokens are added against a second token balance recorded on the ledger, the second token balance corresponding to a developer of the application, the incrementing of the one or more tokens effecting payment for the access to the application by the client electronic device.
31. A non-transitory machine-readable storage medium according to claim 18, wherein the recommendation includes deploying a virtual private network, a firewall, or a software data diode in the process control system, and the instructions, when executed, cause the processor circuit to deploy at least one of the virtual private network, the firewall, or the software data diode in the process control system.
32. A non-transitory machine-readable storage medium according to claim 18, wherein the configuration includes at least one of an installed product or a selected product for deployment in the process control system, and the recommendation includes support services associated with the at least one of the installed product or the selected product for deployment in the process control system.
33. The non-transitory machine-readable storage medium of claim 18, wherein the instructions, when executed, cause the processor circuit to: determine that the change to the portion of the process control system is associated with a monetary cost based on an identification of a customer of the process control system.
34. The non-transitory machine-readable storage medium of claim 18, wherein the instructions, when executed, cause the processor circuit to: determine that the telemetry data includes usage data for improving product or sales funnel conversions to improve marketing strategies associated with the product, thereby increasing conversion rates.
35. A method comprising: detecting at least one of a configuration or an operating state of a process control system based on telemetry data associated with the process control system; executing a machine learning model to generate an output based on the at least one of the configuration or the operating state, the output representing a recommendation to change a portion of the process control system; as well as A change is caused to the portion of the process control system based on the recommendation.
36. The method of claim 35, wherein causing the change to the portion of the process control system is after determining based on policy that the recommendation will be implemented without intervention by a user associated with the process control system.
37. The method of claim 35, further comprising: After determining, based on policy, that the recommendation is to be implemented with intervention of a user associated with the process control system, authorization is requested from the user to effectuate the change.
38. The method of claim 35, further comprising: executing the machine learning model to classify the telemetry data into first data having a first data classification and second data having a second data classification; discarding the first data based on a policy; as well as The second data is stored in a data store based on the policy.
39. The method of claim 35, wherein the configuration is a first configuration, the process control system is a first process control system, and the method further comprises: executing the machine learning model to identify one or more data classifications of the telemetry data; identifying a second process control system based on the one or more data classifications; identifying a second configuration of the second process control system; as well as The modification of the first process control system is identified based on the second configuration of the second process control system.
40. The method of claim 35, wherein the process control system is a first process control system, and the method further comprises: detecting that the first process control system is in the operating state; as well as The recommendation is generated to identify an application associated with a second process control system in the operating state, the modification to the portion of the first process control system including execution of the application.
41. The method of claim 40, further comprising detecting whether the operating state is a design operating state, a fully enabled operating state, or a maintenance operating state.
42. The method of claim 35, further comprising: identifying a first version of the application based on the configuration; as well as After detecting that a second version of the application is available, the application is upgraded from the first version to the second version based on a policy.
43. The method of claim 35, further comprising: obtaining data representing a request to restore the process control system following a failure of the process control system; identifying one or more applications corresponding to the configuration; as well as The one or more applications are distributed to the process control system to cause the recovery of the process control system.
44. The method of claim 35, further comprising: obtain data representing a request to access an application; as well as After determining that the request indicates that the access is for execution of the application by a cloud host, the application is instantiated on the cloud host for execution.
45. The method of claim 35, further comprising: obtain data representing a request to access an application; as well as After determining that the request indicates that the access is for local execution of the application by a client electronic device, the application is caused to be downloaded to the client electronic device for local execution on the client electronic device.
46. The method of claim 35, further comprising: identifying an application associated with the process control system based on the configuration; as well as After determining that feedback associated with the application is identified: identifying changes to the application based on the feedback; as well as The application is redeployed based on the changes for access by the process control system.
47. The method of claim 35, further comprising: determining that an application associated with the process control system is accessed by a client electronic device of the process control system; decrementing one or more tokens from a first token balance recorded on a ledger, the first token balance corresponding to the client electronic device; as well as The one or more tokens are incremented for a second token balance recorded on the ledger, the second token balance corresponding to a developer of the application, the incrementing of the one or more tokens effecting payment for the access to the application by the client electronic device.
48. A method according to claim 35, wherein the recommendation includes deploying a virtual private network, a firewall, or a software data diode in the process control system, and the method also includes deploying at least one of the virtual private network, the firewall, or the software data diode in the process control system.
49. A method according to claim 35, wherein the configuration includes at least one of an installed product or a selected product for deployment in the process control system, and the recommendation includes support services associated with the installed product or the at least one of the selected products for deployment in the process control system.
50. The method of claim 35, further comprising determining that the modification of the portion of the process control system is associated with a monetary cost based on an identification of a customer of the process control system.
51. The method of claim 35, further comprising determining that the telemetry data includes usage data for improving product or sales funnel conversions to improve marketing strategies associated with the product to increase conversion rates.