Distributed deployment of process automation software applications
The automated deployment of FBAPs across process automation nodes, considering constraints and system details, addresses inefficiencies and risks in existing systems, enhancing reliability and efficiency.
Patent Information
- Application Number
- JP2024510384
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2021-08-20
- Filing Date
- 2022-08-18
- Publication Date
- 2025-08-13
- Estimated Expiration
- 2042-08-18
AI Technical Summary
Existing process automation systems face challenges in optimizing the deployment of function block application programs (FBAPs) across distributed control nodes, as they often overlook underlying hardware and network details, leading to inefficiencies and potential failures.
A method for automated and distributed deployment of FBAPs across process automation nodes, considering constraints such as computing resources, spatial relationships, network topology, and environmental factors, to ensure optimal execution.
Enhances the efficiency and reliability of FBAP deployment by ensuring timely and consistent execution, reducing human error and labor intensity, and minimizing risks of failure in critical processes.
Smart Images

Figure 0007722560000001 
Figure 0007722560000002 
Figure 0007722560000003
Abstract
Description
[Technical Field]
[0001] The present disclosure relates generally to process automation systems, and more particularly to the automated deployment of function block application programs (FBAPs) across process automation nodes. [Background technology]
[0002] Process automation systems are typically implemented as distributed computing environments, with numerous process automation hardware nodes, e.g., distributed control nodes (DCNs), connected to a process automation network. Function block application programs (FBAPs) control various aspects of the process automation workflow and are deployed on execution control engines (or simply "execution engines") on these numerous nodes, some at the "edge" of the process automation network. In some cases, these execution control engines may be implemented as or within virtual machines or other similar containers, e.g., on the DCN. Summary of the Invention [Problem to be solved by the invention]
[0003] Execution engines are increasingly required to communicate with each other according to open process automation standards, provide an execution environment for function blocks, and hide the underlying details (e.g., hardware architecture, operating system) about individual process automation nodes. This ostensibly frees managers and designers from these underlying details when designing or managing a process automation system. Nevertheless, these underlying details may still be relevant for designing an optimal process automation system. [Means for solving the problem]
[0004] Described herein are implementations for automated and distributed deployment of function block application programs (FBAPs) across process automation nodes of a process automation system. More particularly, but not by way of limitation, the techniques described herein facilitate distributed deployment of FBAPs across multiple execution engines while accounting for underlying details about the process automation nodes, the relationships between the process automation nodes, and constraints associated with the FBAPs.
[0005] In various implementations, various types of constraints associated with one or more FBAPs may be identified by analyzing the FBAPs (e.g., by evaluating the underlying source code), documentation describing the one or more FBAPs and / or their desired or required behavior, runtime testing of the FBAPs, manual entry, etc. As used herein, "source code" refers to instructions for a computer written in a common programming language such as C, C++, Java, Python, or a lower-level language such as assembly code that can be compiled into and / or interpreted as an executable computer program.
[0006] Based on these constraints, a process automation system including multiple process automation nodes (running multiple execution engines) may be analyzed to determine, for example, the operational parameters and / or execution capabilities of the process automation nodes (e.g., DCN system management information and capabilities), the functional, spatial, high availability requirements, and / or network relationships between the process automation nodes, and / or other relevant environmental information (e.g., temperature, humidity, particle levels, etc.). Based on the analysis of the process automation system, a subset of two or more process automation nodes that provide execution engines may be selected for deployment of the FBAP. Various types of process automation nodes, such as distributed control nodes (DCNs), input / output nodes with processing capabilities, containers, or virtual machines, to name a few, may operate execution engines that can execute portions of the FBAP.
[0007] In some implementations, the method may be implemented using one or more processors and may include identifying one or more constraints associated with execution of a function block application process (FBAP); analyzing a process automation system including a plurality of process automation nodes based on the one or more constraints; selecting a subset of two or more process automation nodes from the plurality of processing nodes on which to distributely deploy the FBAP based on the analysis; and, in response to the selection of the subset, deploying the FBAP in a distributed manner across the two or more process automation nodes of the subset.
[0008] In various implementations, the method may include assembling the FBAP into a plurality of function blocks, and the distributed deploying step includes installing a respective one of the plurality of function blocks on a respective one execution engine of two or more process automation nodes of the subset. In various implementations, the assembling step may include generating one or more communication modules for each of the plurality of respective function blocks, the one or more communication modules facilitating publishing or subscribing of data between the plurality of function blocks.
[0009] In various implementations, one or more constraints associated with the execution of the FBAP may include a limit on the number of process automation nodes on which the FBAP may be distributed. In various implementations, the limit on the number of process automation nodes may be determined based on the available computing resources of the multiple process automation nodes.
[0010] In various implementations, the one or more constraints associated with the execution of the FBAP include a time limit for the execution of a control loop that includes or is implemented by the FBAP. In various implementations, the one or more constraints associated with the execution of the FBAP include one or more location constraints. In various implementations, one or more of the location constraints are imposed between two or more function blocks of the FBAP. In various implementations, one of the location constraints includes a maximum physical distance between a first process automation node of the subset and another process automation node. In various implementations, the method further includes determining the maximum physical distance based on a communication protocol used between the first process automation node of the subset and the another process automation node. In various implementations, the another process automation node may include a sensor that generates sensor data that is processed by the FBAP.
[0011] In various implementations, one of the location constraints includes a maximum number of network hops between a first process automation node of the subset and another process automation node. In various implementations, one of the location constraints includes a maximum number of network hops between a first process automation node of the subset and a sensor that generates sensor data processed by the FBAP. In various implementations, one of the location constraints includes a maximum number of smart junction boxes between the first process automation node of the subset and another process automation node. In various implementations, one of the location constraints may include a requirement that the first process automation node of the subset and the another process automation node be co-located in a room of a process automation facility in which at least a portion of the process automation system is implemented.
[0012] In various implementations, the analyzing step includes identifying a first candidate process automation node from the plurality of process automation nodes that satisfies one or more of the constraints associated with executing the FBAP; evaluating actual or potential exhaustion of computing resources of the first candidate process automation node; and, based on the evaluation, selecting another process automation node having a closest spatial or network relationship to the first candidate process automation node as at least one of the subset of two or more process automation nodes.
[0013] In various implementations, the FBAP may be a first FBAP of a plurality of FBAPs to be deployed among a plurality of process automation nodes, and the method may further include ranking the plurality of FBAPs based on a priority of each of the plurality of FBAPs, and selecting, for each of the plurality of FBAPs in an order determined based on the ranking, a respective subset of the plurality of process automation nodes on which to distributely deploy the FBAP.
[0014] Additionally, some implementations include one or more processors of one or more computing devices, the one or more processors operable to execute instructions stored in associated memory, the instructions configured to effect performance of any of the aforementioned methods. Some implementations also include one or more non-transitory computer-readable storage media that store computer instructions executable by the one or more processors to effect performance of any of the aforementioned methods.
[0015] It should be appreciated that all combinations of the above concepts and additional concepts described in more detail herein are considered to be part of the subject matter disclosed herein, for example, all combinations of claimed subject matter listed at the end of this disclosure are considered to be part of the subject matter disclosed herein. [Brief explanation of the drawings]
[0016] [Figure 1] FIG. 1 illustrates a schematic diagram of an exemplary process automation environment in which selected aspects of the present disclosure may be implemented, according to various implementations. [Figure 2] FIG. 10 is a diagram illustrating an example of how various components configured in selected aspects of the present disclosure, according to various implementations, may cooperate to facilitate distributed deployment of FBAPs. [Figure 3] 1A and 1B are schematic diagrams illustrating an example of how function blocks may be distributed among multiple execution engines of multiple DCNs, according to various implementations. [Figure 4] 1A and 1B are schematic diagrams illustrating an example of how function blocks may be distributed among multiple execution engines of multiple DCNs, according to various implementations. [Figure 5] 1A-1C illustrate exemplary methods for implementing selected aspects of the present disclosure. [Figure 6] 1A-1C illustrate exemplary methods for implementing selected aspects of the present disclosure. [Figure 7]FIG. 1 illustrates a schematic diagram of an exemplary computer architecture in which selected aspects of the present disclosure may be implemented. DETAILED DESCRIPTION OF THE INVENTION
[0017] Described herein are implementations for automated and distributed deployment of function block application programs (FBAPs) across process automation nodes of a process automation system. In various implementations, various types of constraints associated with one or more FBAPs may be identified by analyzing the underlying source code of the one or more FBAPs, documentation describing the one or more FBAPs and / or their desired or required behavior, runtime testing of the FBAPs, manual input, etc. Based on these constraints, a process automation system including multiple process automation nodes may be analyzed to determine, for example, the operating parameters and / or execution capabilities of the process automation nodes, as well as the functional, spatial, and / or network relationships between the process automation nodes. Based on the analysis of the process automation system, a subset of two or more process automation nodes that offer suitable execution engines may be selected for deployment of the FBAP. Various types of process automation nodes may offer execution engines capable of executing portions of the FBAP, such as distributed control nodes (DCNs), input / output nodes with processing capabilities, or virtual machines, to name a few.
[0018] A process automation system may be analyzed in various ways. In some implementations, documents such as input / output (I / O) lists or lists, process flow diagrams (PFDs), piping and instrumentation diagrams (P&IDs), etc., may be analyzed using, for example, natural language processing, markup language processing, optical character recognition (OCR), object recognition, graph analysis, etc., to identify the aforementioned operational parameters and / or performance capabilities of the process automation nodes, and / or various types of relationships between them. In other implementations, information about the process automation system may be stored in one or more databases, for example, when the process automation system is constructed, and these data may be utilized in analyzing the process automation system.
[0019] Network relationships between process automation nodes may be identified in some implementations using a network crawler that systematically browses, maps, and / or indexes various process automation nodes of a process automation system. Additionally or alternatively, network resources such as domain name server (DNS) routing tables and other networking components (e.g., routers, switches) may be queried for network relationship data.
[0020] The spatial relationships between process automation nodes may be determined, for example, from data contained in a blueprint, a P&ID document, a map of the process automation facility, or by determining the location coordinates of the physical process automation nodes, such as in a DCN. The location coordinates of the physical process automation nodes may be determined in a variety of ways, such as by using wireless triangulation, global positioning system (GPS) coordinates, or by localization performed by a human or robot. The map of the process automation facility may be used to determine (or at least estimate) the spatial relationships between the process automation nodes by identifying defined areas, such as field equipment rooms (FERs) or central control rooms (CCRs), where the process automation nodes are physically hosted. The physical distance between those rooms (e.g., between their centers or between entry / exit points) may be used as a proxy distance between the process automation nodes housed therein.
[0021] Constraints on the execution of an FBAP may be selected and / or designed to ensure that mission-critical processes are performed in a timely, predictable, and / or consistent manner. FBAPs may be subject to various types of constraints. Performance constraints may include, for example, limits on the number of process automation nodes on which the FBAP may be implemented in a distributed manner. Implementing a particularly important FBAP on multiple devices may be considered too risky, especially if some of those devices do not meet some criteria for reliability or availability. More generally, in some implementations, FBAPs may be assigned minimum reliability thresholds, and only process automation nodes that also meet those thresholds (individually or collectively) may be selected for deployment.
[0022] Additionally or alternatively, performance constraints may include time limits for the execution of a task, such as operating a portion of a control loop or issuing an alarm based on a sensor signal. For example, a particular control loop may rely on a sensor signal being processed at a particular frequency or within a particular time interval. If the frequency or time interval is not met, adverse consequences (e.g., unintended chemical reactions, improper processing, safety hazards, partial failures) may occur. Time limits for the execution of an FBAP may be set manually or may be determined automatically, for example, based on time limits included in the underlying source code.
[0023] Location constraints for an FBAP may include, for example, a maximum physical distance between process automation nodes that implement all or a portion of the FBAP, and / or between process automation nodes that implement all or a portion of the FBAP and other process automation nodes, such as sensors that generate sensor data processed by the FBAP. In some implementations, location constraints may include a maximum number of network hops and / or smart junction boxes (SJBs) between process automation nodes that implement or interact with the FBAP.
[0024] In some implementations, the maximum distance, maximum network hop, maximum number of nodes on which an FBAP may be deployed, and / or maximum SJB constraints may be dynamically selected based on one another and / or other factors, such as time limit constraints imposed on the FBAP. For example, a maximum physical distance constraint may be determined based at least in part on the communication protocol used between process automation nodes included with the FBAP implementation. Data may travel faster and / or at a greater data rate over Ethernet than over Wi-Fi, ZigBee, or Z-Wave, for example. Thus, the maximum allowed physical distance may be greater when the nodes in question are connected by a series of Ethernet connections than when one or more hops between nodes are implemented using Wi-Fi (which may result in a bottleneck). In some cases, the maximum distance and / or network hops allowed between aspects of the FBAP may be further calculated based on the time limit imposed on the FBAP.
[0025] Environmental data may also be taken into consideration when evaluating a process automation system. For example, a process automation node may have limited temperature tolerances (low or high). Various factors may contribute to a process automation node reaching and even exceeding these temperature tolerances. For example, a process automation node may be overburdened with computational tasks, causing its temperature to rise from moderate to high. Additionally or alternatively, sources of heat in the node's environment, such as equipment, chemicals, heat sources, etc., may increase the node's temperature. Similarly, some chemicals and / or processes (e.g., those requiring the addition of liquid nitrogen) may reduce the ambient temperature below the process automation node's tolerance. Thus, in various implementations, temperatures measured by temperature sensors (e.g., internal to the process automation node, at or within a junction box, within an FER, etc.) may be accounted for when evaluating a process automation node for potential deployment of function blocks. Other tolerances of a process automation node, such as tolerances for particles, air acidity, humidity, etc., may be accounted for in a similar manner.
[0026] In many instances, the FBAPs implemented in a process automation system may number in the thousands. Similarly, there may be hundreds or thousands of process automation nodes that could potentially be used to implement all or part of an individual FBAP, such as a function block. To reduce the time and / or computational resources that may be required to perform a brute force analysis of all potential permutations of FBAP assignments across process automation nodes, in some implementations, FBAPs may be assigned priorities, e.g., manually and / or automatically. These priorities may be used to rank the FBAPs so that process automation nodes may be selected and used to deploy the higher priority FBAPs first. As the higher-ranked FBAPs are distributedly deployed across the process automation nodes, the computational resources of the process automation system may be reevaluated based on other factors resulting from the previous deployment, such as, for example, constraints associated with the execution of remaining unassigned FBAPs and increasing temperatures of the nodes and / or their environments. Lower-ranked FBAPs may then be deployed based on the reevaluation.
[0027] As used herein, "FBAP" includes a process that is collaboratively implemented within a process automation system by one or more process automation nodes, often with little or no human intervention. In some cases, the degree to which an FBAP is automated may exist along a gradient, range, or scale of automation. Processes that are partially automated but still require human intervention may be at or near one end of the scale. Processes that require less human intervention may approach the other end of the scale, representing fully autonomous processes. In general, process automation may be used to automate processes in a variety of areas, such as the manufacturing, development, and / or improvement of chemicals (e.g., chemical processing), catalysts, machinery, etc.
[0028] One common example of an FBAP is a process loop in which one or more actuators are automatically actuated (without human intervention) based on the output of one or more sensors. Often, an FBAP may be logically divided into separate logic modules or builds, referred to herein as "function blocks." Each function block may implement one or more sub-aspects of the FBAP as a whole. In various implementations, multiple function blocks forming an FBAP may be deployed in a distributed manner across multiple process automation nodes selected using the techniques described herein. As used herein, "process automation node" may refer to a DCN, other types of controllers, input / output nodes, virtual machines, and any other computing component capable of running an execution engine on which function blocks may be deployed.
[0029] 1, an exemplary environment 100 in which various aspects of the present disclosure may be implemented is generally illustrated. A process automation management system 102 is operably coupled to a process automation network 106 of process automation equipment 108. The process automation equipment 108 (alternatively referred to herein as a "process automation system 108") may take many forms and may be designed to implement any number of at least partially automated processes. For example, the process automation equipment 108 may form all or part of a chemical processing plant, an oil or natural gas refinery, a catalyst plant, a manufacturing facility, etc.
[0030] The process automation network 106 may be implemented using various wired and / or wireless communication technologies, including, but not limited to, cellular networks such as the Institute of Electrical and Electronics Engineers (IEEE) 802.3 standard (Ethernet), IEEE 802.11 (Wi-Fi), 3GPP® Long Term Evolution ("LTE") or other wireless protocols designated as 3G, 4G, 5G, and beyond, mesh networks, and / or other types of communication networks of various types of topologies (e.g., mesh). Process automation is often employed in scenarios where the cost of failure tends to be high, both in terms of human safety and economic costs to stakeholders. Thus, in various implementations, the process automation network 106 may be configured with redundancy and / or backups to provide high availability (HA) and / or high quality of service (QoS). Additionally, nodes exchanging data through the process automation network 106 may implement time-sensitive networking (TSN) to facilitate time synchronization and / or real-time control streams.
[0031] The process automation management system 102 may include a matching engine 103, a plant data inlet (PDI) 104, and a database 105 that stores information used by the PDI 104 and the matching engine 103 to practice selected aspects of the present disclosure. Various aspects of the process automation management system 102, such as the matching engine 103 and / or the PDI 104, may be combined and implemented using any combination of hardware and software. In some implementations, the process automation management system 102 may be implemented across multiple computer systems as part of what is often referred to as a “cloud infrastructure” or simply “cloud.” However, this is not required; for example, in FIG. 1 , the process automation management system 102 is implemented within the process automation facility 108, e.g., in a single building or across a single campus of buildings or other industrial infrastructure. In such implementations, the process automation management system 102 may be implemented on one or more local computing systems, such as on one or more server computers.
[0032] In addition to the process automation management system 102, various other nodes / devices are operatively coupled to the process automation network 106. For example, in FIG. 1, N (a positive integer) DCNs 110 1~N are operably coupled to the process automation network 106. Each DCN may include circuitry or logic 112 that may take a variety of forms, such as a processor that executes instructions in memory, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc. The DCNs 110 may range in hardware capabilities from small single-board computers (with or without I / O) to highly available rack-mounted servers.
[0033] Each DCN 110 may have one or more roles to play in the process automation equipment 108. For example, a "compute" DCN may control a process loop (e.g., a chemical process loop) in which various "field" devices (e.g., devices with sensors and / or actuators) interact with each other to execute several function blocks (FBs). Although not shown in FIG. 1, in various implementations, each logic 112 may operate one or more execution engines in which the function blocks of the FBAP may be deployed. Exemplary execution engines are shown in FIG. 2.
[0034] Each DCN 110 may have various input / output (I / O) and other hardware components that define at least a portion of its operational technology (OT) capabilities and, more generally, its role in the process automation equipment 108. OT capabilities may vary widely between industries. In some cases, OT capabilities may include, but are not limited to, I / O channel count, available I / O channel types, nominal range limits, nominal units of measure, nominal update frequency, one or more analog-to-digital conversion parameters, one or more signal conditioning parameters, supported open standard protocols such as Open Platform Communications (OPC) Unified Architecture (OPC UA) and / or Modbus, or any combination thereof.
[0035] In FIG. 1 , a first DCN 1101 is operably coupled to flow transmitter (FT) components 1141 and actuators (e.g., valves) 116. A second DCN 1102 is operably coupled to FT components 1142 and sensors 1182, but does not have actuators. A third DCN 1103 is operably coupled to sensors 1183, but does not have actuators. The actuators 116 may be any electric, hydraulic, mechanical, and / or pneumatic components that are controllable to affect some aspect of the process automation workflow occurring in the process automation equipment 108. Often, the actuators 116 may perform their functions in response to various signals, such as sensor signals, or commands from a computational DCN (which may itself monitor the sensor signals). Some non-limiting examples of actuators 116 include, but are not limited to, valves, pistons, rotors, switches, heaters, coolers, agitators, syringes, devices that create vacuums, belts, tracks, gears, grippers, motors, relays, servo mechanisms, etc. The sensor 118 may take a variety of forms, including, but not limited to, a pressure sensor, a temperature sensor, a flow sensor (e.g., FT component 114), various types of proximity sensors, an optical sensor (e.g., a photodiode), a pressure wave sensor (e.g., a microphone), a humidity sensor (e.g., a humistor), a radiation dosimeter, and a laser absorption spectrometer (e.g., a multi-pass optical cell).
[0036] DCN110 1~3 Unlike DCN N does not include inputs / outputs (actuators or sensors). Instead, the DCN N may be a "compute only" DCN, whose role is to facilitate collaboration between itself and one or more other DCNs 110 on the process automation network 106 to implement at least partially automated processes. For example, Nmay control a single process loop (e.g., a chemical process control loop) that includes one or more other DCNs 110. In some cases, such a computational DCN 110 may act similarly to an autopilot in an aircraft, receiving various signals and controlling various actuators based on those signals and various criteria and / or thresholds. For example, the computational DCN 110 may monitor various sensors 118 and / or FT components 114 to ascertain data about chemical levels, flow rates (e.g., between valves), tank temperatures, control rates, etc., and may control one or more actuators 116 based on that data and / or comparisons of that data with various criteria and / or thresholds. For example, the computational DCN 110 N can control the actuator 116 by sending corresponding commands to the first DCN 1101, which may optionally follow a protocol specific to and / or implemented by the first DCN 1101.
[0037] In various implementations, one or more out-of-band communication channels 109 are connected to the DCN 110 of FIG. 1~3 An out-of-band communication channel 109 may be established between two or more DCN-compatible wired or wireless communication interfaces 113, such as between two or more DCNs. The out-of-band communication channel 109 may be outside of (e.g., separate from, implemented using a different communication technology, etc.) the process automation network 106 of the process automation system 108. While a single out-of-band communication channel 109 is shown in the figure, this is not intended to be limiting. Any number of out-of-band communication channels may be established between any number of process automation nodes.
[0038] In scenarios where the process automation network 106 is implemented using Ethernet, the connection 107 between the DCN 110 and the process automation network 106 may be a registered jack (RJ) 45 connection in some implementations. In many such cases, the out-of-band communication channel 109 may be implemented using a different communication technology, such as USB, NFC, Bluetooth, etc. However, in other implementations, the out-of-band communication channel 109 may be implemented using the same type of communication technology (e.g., Ethernet) as the process automation network 106, albeit as a separate network / subnet sandboxed from the process automation network 106. In various implementations, the out-of-band communication channel 109 may communicatively couple the communication interfaces 113 of three or more process automation nodes, as in FIG. 1 , and thus may alternatively be referred to as an “out-of-band network.”
[0039] Managing a process automation system 108 can present a variety of technical challenges. There may be hundreds or even thousands of FBAPs that need to be implemented across a similarly large number of process automation nodes. Each FBAP may be subject to various constraints, for example, related to performance, location, latency, etc. For example, some FBAPs or aspects thereof (e.g., function blocks) may need to be fully executed within a certain time limit. If function blocks are distributed among process automation nodes connected by high-latency network connections, there is a risk that this time limit will be violated, which can lead to a myriad of adverse consequences, such as damage or failure of a chemical process.
[0040] Additionally, each process automation node may have different information technology (IT) and / or OT capabilities. When FBAPs are deployed at least in part in a distributed manner, their IT and / or OT capabilities may change. For example, the DCN's computational resources (e.g., memory, processor cycles) may be exhausted, the DCN's internal temperature may approach its temperature threshold, and / or the node's input / output elements may no longer be available. In short, allocating a large number of FBAPs among a large number of process automation nodes tends to be extremely labor-intensive, require significant expertise and / or experience, and is prone to human error.
[0041] Accordingly, implementations for automated deployment of FBAPs across process automation nodes of a process automation system are described herein. In various implementations, the PDI 104 may analyze the process automation system 108 by, for example, processing (e.g., parsing, performing OCR, NLP, etc.) various schematics, source code, specifications, I / O enumerations / lists, control narratives, P&ID documents, etc., to process (e.g., organize into data structures, de-duplicate, normalize, etc.) the data contained therein. This data about the process automation system 108 may be stored, for example, in the database 105. Once processed and stored in the database 105, this data may then be used by various components described herein for distributed deployment of FBAPs across multiple process automation nodes.
[0042] Based on the analysis performed by the PDI 104, the matching engine 103 can be configured to match the FBAP and / or aspects thereof (e.g., function blocks) with a suitable execution engine. For example ... across multiple processing nodes 110 forming a process automation system that distributes the FBAP. 1~NThe FBAP may be configured to select a subset of two or more process automation nodes from the process automation network 106. This selection may be based on constraints associated with the execution of the FBAP, as well as any number of aspects of the process automation system 108 as a whole, the physical and / or virtual network topology of the process automation network 106 or portions thereof, the out-of-band communication channels 109, the physical layout of the process automation equipment 108, measured environmental parameters such as temperature, humidity, particles, air acidity, etc.
[0043] 2 illustrates, in schematic form, one example of how various components configured in selected aspects of the present disclosure, according to various implementations, may cooperate to facilitate a distributed deployment of an FBAP. In FIG. 2, a computing device 220 (shown as a laptop, but this is not intended to be limiting) communicates with multiple process automation nodes 110. 1~N The IDE 222 implements an integrated development environment (IDE) 222 that is operable by a user (not shown) to distribute the FBAP among multiple process automation nodes 110. More specifically, the IDE 222 implements the FBAP among multiple process automation nodes 110. 1~N Multiple execution engines provided by 238 1~X The FBAP may be operable by a user to distributely deploy (e.g., compile and install) the FBAP among the FBAPs. As noted above, manually performing this distributed deployment may be labor-intensive, cumbersome, and / or error-prone.
[0044] Multiple Execution Engines238 1~XThe execution engine 238 may take various forms. In some implementations, the execution engine 238 may be a computing environment that is facilitated via the computing resources (e.g., memory, processor) of the DCN 110 and that obscures the details of the DCN 110's underlying hardware and / or operating system. As an example, the execution engine 238 may take the form of a virtual machine, such as a Java Virtual Machine (JVM), configured to execute, interpret, or possibly implement function blocks. To this end, the function blocks may take various forms, such as fully compiled binaries, executable bytecode, etc. N Some process automation nodes, such as X~Y may be provided.
[0045] The PDI 104 may be configured to acquire, search, ingest, receive, or otherwise process a variety of different types of data about the process automation system 108 from a variety of different sources. These data may include, for example, tag information 224, physical layout information 226, network topology information 228, execution engine ("XE" in FIG. 2 ) capabilities 230, FBAP capabilities 232, FBAP constraints 234, and high availability (HA) constraints 235. The PDI 104 may analyze this data 224-235 using various techniques, such as NLP, OCR, etc., and store various aspects and / or extracted features in the database 105.
[0046] The tag information 224 may include, for example, “tags” assigned to FBAPs, individual process nodes, etc. Tags may be, for example, alphanumeric strings or other indicia that provide an indication of the role these elements are expected to play and / or the category of tasks the elements are expected to perform. Tags may be assigned to process control loops, for example. FBAPs or process automation nodes (e.g., DCNs, sensors, etc.) that are similarly considered to be involved in the execution of that process control loop may be assigned the same tag. In some implementations, tags may have a significant impact and even determine the direction on which execution engines 238 of which process automation nodes an FBAP is distributedly deployed to. In this manner, tags assigned to FBAPs may be used to determine one or more FBAP constraints 234. For example, two FBAPs assigned to the same tag may be constrained to be deployed on execution engines 238 of process automation nodes that are within a certain maximum number of network hops from each other, or to be co-located in the same room (e.g., FER or CCR).
[0047] The physical layout information 226 may include architectural drawings, maps, schematics, P&IDs, process flow diagrams, information gathered while a robot performs simultaneous localization and mapping (SLAM), etc. showing the physical layout of components and / or rooms / areas of a process automation system. The PDI 104 may extract various types of features and / or other information from such data, including, but not limited to, spatial relationships between process automation nodes, rooms in which the process automation nodes are housed (e.g., FER, CCR), etc.
[0048] The network topology information 228 may include information about one or more physical and / or virtual network topologies of one or more portions of the process automation network 106. This data may include, for example, the location and / or placement of subnets, local area networks, wireless networks (including their coverage areas), network bandwidth, the location and / or bandwidth of out-of-band channels 109, etc. In some implementations, this network topology information may be entered manually, for example, by IT personnel. Additionally or alternatively, in some implementations, the network topology information 228 may be automatically ascertained, for example, by one or more software processes (sometimes referred to as “bots” or “crawlers”) that automatically map computer networks. The PDI 104 may represent and / or store this network topology information 228 in various forms in the database 105, for example, as a routing table, a table of network nodes, a graph in which nodes represent components of the process automation system 108 and edges represent portions of the process automation network 106 connecting those components, etc.
[0049] Execution engine (XE) capability information 230 may include computational resources, such as memory, processing cycles, OT capabilities, availability of out-of-band channels (e.g., 109) to other nodes, processing speed, processor specifications, network bandwidth, etc., associated with the process automation node 110 implementing the individual execution engine 238. Processor specifications may include, but are not limited to, processor type, clock speed, bus speed, registers, arithmetic logic unit (ALU) type, etc. 1~NProcess automation nodes such as DCN 110 may include various types of processors, such as a general central processing unit (CPU), a graphics processing unit (GPU), a tensor processing unit (TPU), etc. If a process automation node such as DCN 110 provides one execution engine 238, the capabilities of these execution engines may simply correspond to the hardware of the node itself, such as available memory, processing cycles or speed, network bandwidth, etc. N Process automation nodes such as multiple execution engines 238 X~Y If you provide the DCN110 as a whole, N The execution capacity of the may be allocated among multiple execution engines.
[0050] FBAP capabilities 232 may include, for example, one or more tasks performed by the FBAP, one or more roles played by the FBAP in the process automation system 108, the capabilities and / or roles of constituent FBAP components (e.g., function blocks), etc. FBAP constraints 234 related to the execution of the FBAP or its components may include, for example, time restrictions, location constraints (e.g., maximum distance between the FBAP or its components, room-based constraints), security constraints, the maximum number of nodes the FBAP can be distributedly deployed on, network constraints (e.g., time-sensitive network or "TSN," maximum network hops allowed between elements, etc.), reliability constraints (e.g., tolerable downtime), etc. High availability constraints 235 may include rules, policies, or other heuristics governing aspects of the process automation, such as tolerable downtime or required uptime, quality of service, etc.
[0051] The matching engine 103 may be configured to analyze various extracted data (e.g., 224-235) stored in the database to automatically match FBAPs to suitable process automation nodes for deployment. For example, in FIG. 2, the matching engine 103 includes an execution engine 238. 1~Y and therefore the process automation node 1101~N The FBAP may generate a function block assignment 236 indicating to which of the FBAPs the FBAP should be distributed.
[0052] In some implementations, user-selected or defined FBAP components (e.g., function blocks) manually entered in the IDE 222 may be exported, alone or in combination with user-selected assignments of those FBAP components to process automation nodes, to the matching engine 103, as indicated by the arrows. In this manner, the deployment of potentially numerous FBAPs among numerous candidate process automation nodes may be initiated, or possibly guided, at least in part, by the user. Actions taken by the matching engine 103 may extend, modify, replace, etc., these user-selected FBAP deployments based on various data 224-235 processed by the PDI 104 and stored in the database 105. For example, the techniques described herein may be used to generate recommendations, alarms, or other helpful feedback presented to a user in the IDE 222 as the user designs a process automation system.
[0053] In other implementations, the matching engine 103 may start from scratch and make all decisions regarding the deployment of the FBAP. In some such implementations, the matching engine 103, the PDI 104, or another component may identify and / or define (e.g., carve out) the FBAP components, such as function blocks. Additionally or alternatively, a user operating the IDE 222 may manually identify and / or define these function blocks. In either case, the results of the distributed deployment may be presented to the user in the IDE 222. The user of the IDE 222 may manually identify and / or define the FBAP components, such as function blocks, in the DCN 110. 1~N Execution engine 238 1~Y There may be various opportunities to view the assigned deployment of FBAPs between them and change these if necessary.
[0054] 3 and 4 show an example of how function blocks can be distributed among multiple FBAPs according to various implementations. In FIG. 3, FBAP 350 includes two loops 3521 and 3522. The first loop 3521 includes five function blocks 354. 1~5 First function block 3541 includes a first analog input (AI) process 3561, which may obtain an analog input from, for example, a sensor. The output of first AI process 3561 is provided to, for example, a first proportional-integral-derivative (PID) controller 3581, which may take various actions based on the analog input provided by first AI process 3561. In FIG. 3 , first PID controller 3581 provides the output it generates based on this input to second PID controller 3582, which itself runs on third function block 3543.
[0055] The second AI process 3562 may also obtain analog input, for example from a sensor, which it may provide to the second PID controller 3582. Similar to the first PID controller 3581, the second PID controller 3582 may also provide a PID signal to the first and second AI processes 3562. 1~2 The second PID controller 3582 may output various data and / or perform various actions based on inputs it receives from the first PID controller 3582. The data output by the second PID controller 3582 may include, for example, data controlling process automation variables such as flow regulation, temperature, pressure, etc. In FIG. 3, the second PID controller 3582 provides its output (e.g., commands) to a first analog output (AO) process 3601, which is part of the fifth function block 3545. The first AO process 3601 may, for example, operate an actuator (e.g., 116) based on the data it receives using an analog output signal.
[0056] The second loop 3522 includes three function blocks 354 6~8The sixth function block 3546 includes a third AI process 3563, which may, for example, obtain input from a sensor. The third AI process 3563 may provide this sensor data as output to the third PID controller 3583. Similar to other PID controllers, the third PID controller 3583 may issue, perform, and / or output various data based on the sensor data it receives from the third AI process 3563. For example, the third PID controller 3583 may output data to the second AO process 3602, which may control an actuator or other component based on the data received from the third PID controller 3583.
[0057] FIG. 4 illustrates how the various components shown in FIG. 3 are implemented as multiple execution engines 238 executed by multiple process automation nodes. 1~3 3 shows a schematic example of how a process automation node may be distributed among three corresponding logic nodes 312. 1~3 Three DCN310 with 1~3 The first loop 3521 includes a first execution engine 2381. The first, second, and fourth function blocks 3541, 3542, and 3544 of the first loop 3521 are assigned to a first execution engine 2381 executed by the first DCN 3101, which itself includes a sensor 118 and a first FT component 3141. The sensor 118 may generate sensor data that is ingested by the first AI process 3561, and the FT component 3141 may generate sensor data that is ingested by the second AI process 3542. The third function block 3543 is assigned to a second execution engine 2382 executed by the second DCN 3102, which itself does not include any input or output elements.
[0058] The fifth function block 3545, which includes the first AO process 3601, is assigned to a third execution engine 2383 executed by a third DCN 3103, which itself is connected to a second FT component 3142 and first and second actuators 316. 1~2 The eighth function block 3548, which includes the second AO process 3602, is also assigned to the third DCN 3103. Therefore, the first AO process 3601 controls the actuator 316. 1~2 AO process 3602 may control one of the two, and a second AO process 3602 may control the other.
[0059] As part of function blocks 3541 and 3542, the first AI process 3561 and the first PID controller 3581, respectively, are assigned to the same DCN 3101. They can therefore exchange data locally via the buses and / or circuits of the first DCN 3101. In contrast, as part of the fourth function block 3544, the second AI process 3562 is assigned to one process automation node (the first DCN 3101) but sends its output to a different process automation node, i.e., the second DCN 3102, to which the second PID controller 3582 (and the third function block 3543) are assigned.
[0060] Thus, to deploy an FBAP (e.g., first loop 3521 or second loop 3522) or portions thereof in a distributed manner across different process automation nodes, in various implementations, communication modules, also referred to herein as “publish” and “subscribe” components, may be implemented to facilitate communication between these components, e.g., across a computer network. For example, for the second AI process 3562 to provide its output to the second PID controller 3582, a publish (“PUB” in FIG. 3 ) component is created in association with the fourth function block 3544 (e.g., as part of the first execution engine 2381). Similarly, a subscribe (“SUB” in FIG. 3 ) component is created in association with the third function block 3543 (e.g., shown immediately to the left of the second PID controller 3582 as part of the second execution engine 2382) and subscribes to the data published by the publish component of the fourth function block 3544. Similar publish and subscribe components are shown in FIG. 3 for other FBAP components (eg, function blocks) distributed across different process automation nodes.
[0061] In some implementations, publish and subscribe components may be generated by the execution engine 238 based on the function blocks assigned to them. Alternatively, publish and subscribe components may be pre-compiled and linked to inputs and / or outputs of function blocks, for example, during deployment. Publish or subscribe components may take various forms, such as additional function blocks (e.g., created specifically to enable communication between other function blocks), standard interfaces provided by the execution engine 238 according to open standards, web application programming interfaces (APIs) according to the representational state transfer (REST) architectural style, software network interfaces, remote procedure calls, ports, network sockets, etc.
[0062] 5 is a flowchart illustrating an example method 500 for practicing selected aspects of the present disclosure, according to implementations disclosed herein. For convenience, the operations of the flowchart are described with reference to a system that performs the operations. This system may include various components of various computer systems, such as PDI 104 and / or matching engine 103, and / or DCN 110. 1~N Additionally, although the operations of method 500 are shown in a particular order, this is not intended to be limiting. One or more operations may be reordered, omitted, or added.
[0063] In block 502, the system may identify one or more constraints associated with the execution of the FBAP, e.g., via PID 104 (if during ingestion) or matching engine 103 (if during distributed deployment). Various examples of constraints are described elsewhere herein and include, e.g., location constraints, time constraints, network constraints, computing resource constraints, etc. The FBAP as a whole (e.g., 3521 or 3522) may be subject to various constraints and / or the function blocks (e.g., 354 1~5 , 354 6~8 Individual components of an FBAP, such as a suffix 222, a suffix 224, or a suffix 226, may be subject to constraints. Constraints may be identified by PDI 104 by analyzing comments and / or code snippets contained in source code files underlying the FBAP, in documentation related to the FBAP, such as from manually provided constraints (e.g., provided in IDE 222), from tags associated with the FBAP (e.g., 224), or by analyzing data 232-235 stored in database 105 by matching engine 103.
[0064] In block 504, the system, e.g., via matching engine 103, executes a match based on one or more constraints, often using multiple execution engines (e.g., 238 in FIG. 2). 1~Y ,238 in Figure 4 1~3 ) providing multiple process automation nodes (for example, DCN110 1~N , DCN310 1~3), including the process automation system (e.g., 108). In particular, the matching engine 103 may analyze data and / or features stored in the database 105 and / or obtained in real time (e.g., processed by the PDI 104). These data and / or features may include, but are not limited to, computational resources and / or capabilities (e.g., 230), network topology (e.g., 228), location information (e.g., 226, which may include, e.g., location coordinates, placement within a particular room or area, etc.), measured environmental factors such as temperature and / or humidity, etc.
[0065] In some implementations, the FBAP may be deployed in a distributed manner across the process automation system in stages. Earlier deployments may affect later deployments, for example, because computational resources may be exhausted or overworked when the FBAP is deployed in a distributed manner, and / or individual nodes and / or the environments in which they operate may heat up as computational strain increases. Thus, in some implementations, the analysis of block 504 may include identifying a first candidate process automation node among multiple process automation nodes that satisfies one or more of the constraints associated with executing the FBAP and assessing the actual or potential depletion of computational resources of the first candidate process automation node. This assessment may include, for example, monitoring memory and / or CPU utilization of the first candidate process automation node and comparing it to the constraints associated with the FBAP currently under consideration. If, based on the evaluation, the first candidate process automation node is overworked or likely to be overworked (overheated), another process automation node having (i) sufficient computing resources and (ii) the closest spatial or network relationship to the first candidate process automation node may be selected instead.
[0066] Based on the analysis of block 504, in block 506, the system may select, e.g., via matching engine 103, a subset of two or more process automation nodes (or, more specifically, execution engines) from the plurality of processing nodes that deploy the FBAP in a distributed manner. In various implementations, matching engine 103 may select process automation nodes that satisfy the FBAP constraints identified in block 502. For example, if the FBAP is required to execute a control loop within a certain time limit, process automation nodes that can collectively execute the control loop within that time limit may be selected. The ability of the nodes to satisfy such time constraints may be based on various factors, such as execution engine capabilities (230), availability of computational resources given already deployed FBAPs, spatial distance between nodes (data may require more time to travel greater distances), network hops between nodes, availability or characteristics of out-of-band channels, smart junction boxes between nodes (smart junction boxes may affect latency and / or bandwidth in some cases), etc.
[0067] In response to the selection of the subset in block 506, the system may distributely deploy the FBAP across two or more process automation nodes of the subset in block 508, e.g., via the matching engine 103 and / or the IDE 222. In some implementations, this distributed deployment may include compiling the FBAP's underlying source code into multiple builds, e.g., bytecode or binary function blocks, in block 510. For example, the function block assignments determined by the matching engine 103 in block 506 may be communicated as application data to components, such as the execution engine 238 of the assigned process automation node 110. This application data may be provided, for example, from the assigned process automation node to the IDE 222. Based on this application data, the IDE 222 may compile the FBAP and deploy the resulting builds to the assigned process automation nodes.
[0068] In some implementations, this distributed deployment may include installing each one of a plurality of function blocks on each one of two or more process automation nodes of the subset, in block 512. In some implementations, the function blocks may be compiled on-board the process automation nodes to which they are deployed. In other implementations, the function blocks may be compiled, or possibly generated, remotely into binary executable files, bytecode files, executable scripts, etc., and then pushed to the target process automation nodes.
[0069] 6 is a flowchart illustrating an example method 600 for practicing selected aspects of the present disclosure, according to implementations disclosed herein. For convenience, the operations of the flowchart are described with reference to a system that performs the operations. This system may include various components of various computer systems, such as PDI 104 and / or matching engine 103, and / or DCN 110.1~N Additionally, although the operations of method 600 are shown in a particular order, this is not intended to be limiting. One or more operations may be reordered, omitted, or added.
[0070] In block 602, the system may assign input and / or output blocks (e.g., AI 356 and / or AO 360) to execution environments (e.g., 238) with matching I / O tags, e.g., at the command of a user operating IDE 222 or automatically. In block 604, the system may assign computing blocks (e.g., PID 358) to execution environments (e.g., 238) that have been assigned input and output blocks (e.g., 356, 360) with the same I / O tags, e.g., at the command of a user operating IDE 222 or automatically.
[0071] In block 606, the system may insert communication blocks (e.g., the PUB and SUB blocks of FIG. 4) between I / O and / or computing blocks distributed across different physical process automation nodes as a result of the allocation of blocks 602-604. An example of this is shown in FIG.
[0072] At block 608, the system may analyze the assignments of blocks 602-604 based on one or more FBAP constraints (e.g., identified at block 502 of method 500) to determine whether any of those constraints have been violated at block 610. If the answer at block 610 is yes, in some implementations, method 600 may proceed back to block 502 and / or block 504. However, if the answer at block 610 is no, method 600 may proceed to block 612.
[0073] In block 612, the system may evaluate, e.g., via matching engine 103, the computing resource usage (e.g., memory, processor cycles, etc.) of the execution environments to which the various blocks are assigned, as previously described. Based on the evaluation in block 612, in block 614, the system may reallocate I / O and / or computing blocks to the execution environments of the nearest alternative process automation nodes. In block 616, the system may issue an alarm or warning to a user (e.g., the operating IDE 222) if any of the reallocations of blocks 614 are not possible, e.g., because they would violate the FBAP constraints previously described.
[0074] 7 is a block diagram of an exemplary computing device 710 that may optionally be utilized to implement one or more aspects of the techniques described herein. The computing device 710 generally includes at least one processor 714 that communicates with several peripheral devices via a bus subsystem 712. These peripheral devices may include a storage subsystem 724, including, for example, a memory subsystem 725 and a file storage subsystem 726, a user interface output device 720, a user interface input device 722, and a network interface subsystem 716. The input and output devices enable user interaction with the computing device 710. The network interface subsystem 716 provides an interface to a network (physical and / or virtual) and is coupled to corresponding interface devices of other computing devices.
[0075] The user interface input devices 722 may include a keyboard, a pointing device such as a mouse, a trackball, a touchpad, or a graphics tablet, a scanner, a touchscreen integrated into a display, a voice recognition system, an audio input device such as a microphone, and / or other types of input devices. In general, use of the term "input device" is intended to include all conceivable types of devices and methods for inputting information into the computing device 710 or into a communications network.
[0076] The user interface output devices 720 may include a display subsystem, a printer, a fax machine, or a non-visual display such as an audio output device. The display subsystem may include a cathode ray tube (CRT), a flat panel device such as a liquid crystal display (LCD), a projection device, or some other mechanism for producing a visible image. The display subsystem may also provide a non-visual display, such as via an audio output device. In general, use of the term "output device" is intended to include all conceivable types of devices and methods for outputting information from the computing device 710 to a user or to another machine or computing device.
[0077] Storage subsystem 724 stores programming and data constructs that provide the functionality of some or all of the modules described herein. For example, storage subsystem 724 may include logic for performing selected aspects of the methods of Figures 5 and 6 and for implementing the various components shown in Figures 1-4.
[0078] These software modules are typically executed by the processor 714 alone or in combination with other processors. The memory 725 used by the storage subsystem 724 can include several memories, including a main random access memory (RAM) 730 for storing instructions and data during program execution and a read-only memory (ROM) 732 in which fixed instructions are stored. A file storage subsystem 726 can provide persistent storage for program and data files and may include a hard disk drive, a floppy disk drive with associated removable media, a CD-ROM drive, an optical drive, or a removable media cartridge. Modules that implement the functionality of some implementations may be stored by the file storage subsystem 726, in the storage subsystem 724, or on other machines accessible by the processor (714).
[0079] The bus subsystem 712 provides a mechanism for allowing the various components and subsystems of the computing device 710 to communicate with each other as intended. Although the bus subsystem 712 is shown schematically as a single bus, alternative embodiments of the bus subsystem may use multiple buses.
[0080] Computing device 710 may be of different types, including a workstation, a server, a computing cluster, a blade server, a server farm, or any other data processing system or computing device. Due to the ever-changing nature of computers and networks, the description of computing device 710 shown in Figure 7 is intended as a specific example only for purposes of illustrating some implementations. Many other configurations of computing device 710 are possible, having more or fewer components than the computing device shown in Figure 7.
[0081] While several implementations have been described and illustrated herein, various other means and / or structures for performing the functions and / or obtaining the results and / or one or more of the advantages described herein may be utilized, and each such variation and / or modification is considered to be within the scope of the implementations described herein. More generally, all parameters, dimensions, materials, and configurations described herein are intended to be exemplary, and the actual parameters, dimensions, materials, and / or configurations will depend on the particular application in which the teachings are used. Those skilled in the art will recognize or be able to ascertain using no more than routine experimentation, many equivalents to the specific implementations described herein. Accordingly, it should be understood that the above-described implementations are presented by way of example only, and that, within the scope of the appended claims and their equivalents, implementations may be practiced otherwise than as specifically described and claimed. Implementations of the present disclosure are directed to each individual feature, system, article, material, kit, and / or method described herein. In addition, any combination of two or more such features, systems, articles, materials, kits, and / or methods is included within the scope of the present disclosure, if such features, systems, articles, materials, kits, and / or methods are not mutually inconsistent. [Explanation of symbols]
[0082] 100 Example Environments 102 Process Automation Management System 103 Matching Engine 104 Plant data intake 105 databases 106 Process Automation Network 107 Connections 108 Process Automation Equipment 109 Out-of-Band Communication Channels 110 Process Automation Nodes (DCN) 112 Logic 113 Communication Interface 114 Flow Transmitter (FT) Components 116 Actuator 118 Sensors 220 Computing Devices 222 Integrated Development Environment (IDE) 224 Tag Information 226 Physical Layout Information 228 Network Topology Information 230 execution engine capacity 232 FBAP Capability 234 FBAP Constraints 235 High Availability (HA) Constraints 236 Function Block Allocation 238 Execution Engine 310 Distributed Control Node (DCN) 312 Logic 314 FT components 316 Actuator 350 FBAP 352 Loops 354 Function Blocks 356 Analog Input (AI) Process 358 Proportional-Integral-Derivative (PID) Controller 360 Analog Output (AO) Process 710 Computing Devices 712 Bus Subsystem 714 processor 716 Network Interface Subsystem 720 User Interface Output Device 722 User Interface Input Devices 724 Storage Subsystem 725 Memory Subsystem 726 File Storage Subsystem 730 Random Access Memory (RAM) 732 Read-Only Memory (ROM)
Claims
1. 1. A method implemented using one or more processors, comprising: identifying one or more constraints associated with execution of a process automation software application (FBAP); analyzing a process automation system including a plurality of process automation nodes based on the one or more constraints; selecting a subset of two or more process automation nodes from the plurality of process automation nodes based on the analysis, on which to deploy the FBAP in a distributed manner; Depending on the selection of said subset, deploying the FBAP in a distributed manner across the two or more process automation nodes of the subset; assembling the FBAP into a plurality of function blocks, wherein the distributed deployment includes installing each one of the plurality of function blocks on an execution engine of each one of the two or more process automation nodes of the subset; Including, The method, wherein the assembling step includes generating one or more communication modules for each of the plurality of respective function blocks, the one or more communication modules facilitating publishing or subscribing of data between the plurality of function blocks.
2. The method of claim 1 , wherein the one or more constraints associated with the execution of the FBAP include a limit on the number of process automation nodes on which the FBAP can be distributedly deployed.
3. The method of claim 2 , wherein the limit on the number of process automation nodes is determined based on available computing resources of the plurality of process automation nodes.
4. A method implemented using one or more processors, comprising: identifying one or more constraints associated with execution of a function block application program (FBAP); analyzing a process automation system including a plurality of process automation nodes based on the one or more constraints; selecting a subset of two or more process automation nodes from the plurality of process automation nodes based on the analysis, on which to deploy the FBAP in a distributed manner; Depending on the selection of said subset, deploying the FBAP in a distributed manner across the two or more process automation nodes of the subset; Including, The method, wherein the one or more constraints associated with the execution of the FBAP include a time limit for the execution of a control loop that includes or is implemented by the FBAP.
5. A method implemented using one or more processors, comprising: identifying one or more constraints associated with execution of a function block application program (FBAP); analyzing a process automation system including a plurality of process automation nodes based on the one or more constraints; selecting a subset of two or more process automation nodes from the plurality of process automation nodes based on the analysis, on which to deploy the FBAP in a distributed manner; Depending on the selection of said subset, deploying the FBAP in a distributed manner across the two or more process automation nodes of the subset; Including, The method, wherein the one or more constraints associated with the execution of the FBAP include one or more location constraints.
6. The method of claim 5 , wherein one or more of the location constraints are imposed between two or more function blocks of the FBAP.
7. The method of claim 5 , wherein one of the location constraints comprises a maximum physical distance between a first process automation node and another process automation node of the subset.
8. 8. The method of claim 7, further comprising determining the maximum physical distance based on a communication protocol used between a first process automation node of the subset and the other process automation node.
9. The method of claim 7 , wherein the other process automation node includes a sensor that generates sensor data that is processed by the FBAP.
10. The method of claim 5 , wherein one of the location constraints comprises a maximum number of network hops between a first process automation node and another process automation node of the subset.
11. 6. The method of claim 5, wherein one of the location constraints comprises a maximum number of network hops between a first process automation node of the subset and a sensor that generates sensor data processed by the FBAP.
12. The method of claim 5 , wherein one of the location constraints comprises a maximum number of smart junction boxes between a first process automation node and another process automation node of the subset.
13. 6. The method of claim 5, wherein one of the location constraints includes a requirement that a first process automation node and another process automation node of the subset be co-located in a room of a process automation facility in which at least a portion of the process automation system is implemented.
14. A method implemented using one or more processors, comprising: identifying one or more constraints associated with execution of a function block application program (FBAP); analyzing a process automation system including a plurality of process automation nodes based on the one or more constraints; selecting a subset of two or more process automation nodes from the plurality of process automation nodes based on the analysis, on which to deploy the FBAP in a distributed manner; Depending on the selection of said subset, deploying the FBAP in a distributed manner across the two or more process automation nodes of the subset; Including, the analyzing step: identifying a first candidate process automation node from the plurality of process automation nodes that satisfies one or more of the constraints associated with execution of the FBAP; assessing actual or potential depletion of computing resources of the first candidate process automation node; selecting, based on the evaluation, another process automation node having a closest spatial or network relationship with the first candidate process automation node as at least one of the subset of two or more process automation nodes; A method comprising:
15. A method implemented using one or more processors, comprising: identifying one or more constraints associated with execution of a function block application program (FBAP); analyzing a process automation system including a plurality of process automation nodes based on the one or more constraints; selecting a subset of two or more process automation nodes from the plurality of process automation nodes based on the analysis, on which to deploy the FBAP in a distributed manner; Depending on the selection of said subset, deploying the FBAP in a distributed manner across the two or more process automation nodes of the subset; Including, the FBAP includes a first FBAP of a plurality of FBAPs deployed among the plurality of process automation nodes, and the method comprises: ranking the plurality of FBAPs based on a priority of each of the plurality of FBAPs; for each of the plurality of FBAPs in an order determined based on the ranking, selecting a respective subset of the plurality of process automation nodes on which to distributely deploy the FBAP; The method further comprises:
16. 1. A system comprising one or more processors and a memory storing instructions, the instructions causing the one or more processors to: Identifying one or more constraints associated with execution of a process automation software application (FBAP); analyzing a process automation system including a plurality of process automation nodes based on the one or more constraints; selecting a subset of two or more process automation nodes from the plurality of process automation nodes based on the analysis to distribute the FBAP; Depending on the selection of said subset, Distributingly deploying the FBAP across the two or more process automation nodes of the subset; assembling the FBAP into a plurality of function blocks, wherein the distributed deployment includes installing a respective one of the plurality of function blocks on an execution engine of each of the two or more process automation nodes of the subset; generating one or more communication modules for each of the plurality of respective function blocks, the one or more communication modules facilitating publishing or subscribing of data between the plurality of function blocks; A system that allows the following to be performed.
17. 1. A system comprising one or more processors and a memory storing instructions, the instructions causing the one or more processors to: identifying a plurality of function blocks that cooperate to implement a control loop within a process automation system and one or more constraints for the control loop; analyzing a plurality of candidate distributed control nodes (DCNs) of the process automation system to identify a subset of two or more DCNs from the plurality of candidate DCNs that collectively satisfy the one or more constraints of the control loop; deploying the plurality of function blocks in a distributed manner across execution engines provided by the two or more DCNs of the subset; generating one or more communication modules for each of the plurality of respective function blocks, the one or more communication modules facilitating publishing or subscribing of data between the plurality of function blocks; A system that allows the following to be performed.
Citation Information
Patent Citations
Field bus system builder
JP2003124937A
Software defined automation system and architecture
US20180024537A1
System, method and computer-accessible medium for a domain decomposition aware processor assignment in multicore processing system(s)
WO2020251850A1