Industrial Control System Architecture for Real-Time Simulation and Process Control
Patent Information
- Application Number
- JP2024010358
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2020-05-14
- Filing Date
- 2024-01-26
- Publication Date
- 2025-02-27
- Estimated Expiration
- 2040-06-04
Smart Images

Figure 0007637276000001 
Figure 0007637276000002 
Figure 0007637276000003
Abstract
Description
[Technical field]
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims priority to and the benefit of the filing date of U.S. Provisional Patent Application No. 62 / 859,508, filed June 10, 2019, entitled “Industrial Control System Architecture for Real-Time Simulation and Control,” the entire disclosure of which is expressly incorporated herein by reference.
[0002] This patent application relates generally to industrial and process control systems, and more specifically to industrial control systems that use virtualized components to provide process control and / or a simulation of run-time actual process control. [Background technology]
[0003] A process or industrial control system, such as those used in chemical, petroleum, or other industrial process plants that produce physical products from materials, typically includes one or more process controllers communicatively coupled to one or more field devices via analog, digital, or combined analog / digital buses, or via wireless communication links or networks. The field devices, which may be, for example, valves, valve positioners, switches, and transmitters (e.g., temperature, pressure, level, and flow sensors), are located within the process environment and generally perform physical or process control functions, such as opening and closing valves, measuring process parameters, and the like, to control one or more processes running within the process plant or system. Smart field devices, such as field devices conforming to the well-known FOUNDATION® Fieldbus protocol, may also perform control calculations, alarm functions, and other control functions commonly implemented within a controller. A process controller, which may be located centrally, but also in a distributed manner within a plant environment, receives signals indicative of process measurements made by the field devices and / or other information regarding the field devices, and executes a controller application that operates different control modules, e.g., to make process control decisions and generate control signals based on the received information, and interface with the control modules or blocks embodied in the field devices, such as HART®, WirelessHART®, and FOUNDATION® Fieldbus field devices. The control modules within the controller send control signals over communication lines or links to the field devices, thereby controlling the operation of at least a portion of a process plant or system.
[0004] Information from the field devices and controllers is typically made available from the controllers over a data highway to one or more other hardware devices, such as operator workstations, personal computers or computing devices, data historians, report generators, centralized databases, or other centralized computing devices, typically located in a control room or other location away from the more austere plant environment. Each of these hardware devices is typically centralized across the process plant or across a portion of the process plant. These hardware devices run applications that may enable, for example, an engineer to configure a portion of the process or an operator to perform functions related to the control of the process and / or operation of the process plant, such as changing settings of process control routines, changing the operation of control modules in a controller or field device, viewing the current state of the process, viewing alarms generated by field devices and controllers, simulating the operation of the process for purposes of training personnel or testing process control software, maintaining and updating configuration databases, etc. The data highways utilized by the hardware devices, controllers, and field devices may include wired communication paths, wireless communication paths, or a combination of wired or wireless communication paths.
[0005] As an example, the DeltaV™ control system sold by Emerson Process Management includes multiple applications stored in and executed by different devices located at various locations in a process plant. Configuration applications residing in one or more workstations or computing devices allow users to create or modify process control modules and download these process control modules over a data highway to dedicated distributed controllers. Typically, these control modules are composed of communicatively interconnected function blocks that are objects in an object-oriented programming protocol that perform functions in a control scheme based on inputs thereto and provide outputs to other function blocks in the control scheme. The configuration application may also allow the configuration designer to create or modify operator interfaces that are used by the visibility application to display data to an operator and to allow the operator to change settings, such as set points, in the process control routines. Each dedicated controller, and in some cases, one or more field devices, stores and executes a respective controller application that runs the control modules assigned to and downloaded thereto to implement the actual process control functions. A visibility application may run on one or more operator workstations (or one or more remote computing devices communicatively connected to the operator workstations and the data highway) and may receive data from the controller application via the data highway and display this data to a process control system designer, operator, or user using a user interface to provide any of a number of different views, such as an operator's view, an engineer's view, a technician's view, etc.While a data historian application is typically stored on and executed by a data historian device that collects and stores some or all of the data provided over the data highway, a configuration database application may be run on an even further remote computer attached to the data highway to store the current process control routine configuration and data associated therewith. Alternatively, the configuration database may be located in the same workstation as the configuration application.
[0006] Currently known process control plant and process control system architectures are heavily influenced by limited controller and device memory, communication bandwidth, and controller and device processor capabilities. For example, in currently known process control system architectures, the use of dynamic and static non-volatile memory in the controller is typically minimized or at least carefully managed. As a result, during system configuration (e.g., a priori), a user or configuration engineer must typically select which data in the controller should be archived or stored, how often it will be stored, and whether compression is used or not, and thus the controller is configured with this limited set of data rules. As such, data that may be useful for troubleshooting and process analysis is often not archived, and if collected, useful information may have been lost due to data compression.
[0007] Additionally, to minimize controller memory usage in currently known process control systems, data selected to be archived or stored (when dictated by the controller's configuration) is reported to a silo workstation or computing device for storage in an appropriate data historian or data silo. Current techniques used to report data underutilize communication resources and induce excessive controller load. Additionally, data collection and time stamps are often out of sync with the actual process due to time delays in communication and sampling in the historian or silo.
[0008] Similarly, in batch process control systems, to minimize memory usage on the controller, batch recipes and snapshots of the controller configuration typically remain stored on a centralized computing device or location (e.g., a data silo or historian) and are transferred to the controller only when necessary. Such a strategy creates significant burst loads on the controller and on communications between the workstation or centralized computing device and the controller.
[0009] Furthermore, current architectures of industrial control systems, such as process control systems, are primarily hardware driven in that various functions, such as control functions, input / output (I / O) functions, user interface functions, etc., are embodied in and tied to a particular piece of hardware (e.g., a user workstation or interface device, a process controller, a safety system controller, a dedicated I / O device, a marshaled I / O device, a field device, a safety logic solver, etc.), and remain stored within a particular piece of hardware at all times. For example, in current process control systems, the interconnections between a controller and an I / O device (e.g., either an individual I / O device or a bank of marshaled I / O devices) are configured based on a particular piece of hardware, such that the physical I / O relationships are tightly coupled, most commonly in a one-to-one manner, e.g., an I / O device is coupled to a controller, another I / O device to another controller, etc. This architectural design limits the resiliency, reliability, availability, responsiveness, and adaptability of the control systems because these systems are difficult to change or reconfigure quickly, are tightly tied to the proprietary hardware used to implement the proprietary control software, require hardware redundancy on a device by device basis that can be expensive to implement, and are not easily scalable or upgradeable without adding additional hardware that must be configured in a specific manner due to size limitations of individual devices, such as the specific characteristics and capabilities of physical process controllers, I / O devices, etc.
[0010] Some attempts to address these issues include virtualizing the physical controller, but controller virtualization has been limited to offline development and test systems and has not been widely used, if at all, for run-time process control in physical plants and / or production environments. Furthermore, both virtualized and physical controllers remain subject to the limitations of physical I / O devices, such as performance, bandwidth, and throughput. Summary of the Invention
[0011] A novel multi-purpose hardware / software architecture or platform for dynamic simulation and / or run-time production process control that enables an industrial or process control system of an industrial process plant to have better resilience, responsiveness, and adaptability as compared to known industrial or process control systems. More specifically, the novel architecture or platform generally decouples the hardware used in the control system from the software that governs the behavior of the hardware, making the system easier to scale, reconfigure, and change while improving overall system reliability, availability, and performance. For ease of discussion, the novel multi-purpose dynamic simulation and run-time control platform or architecture will be referred to interchangeably herein as "MPDSC," "MPDSC platform," "MPDSC system," or "MPDSC architecture."
[0012] Generally speaking, MPDSC includes a virtual process environment coupled to a physical process environment, where the virtual and physical environment components work together to perform dynamic simulation and / or run-time (e.g., actual or operational) production process control of an industrial process. For run-time process control, the MPDSC platform supports a process control system (PCS), which may include virtual components, physical components, and / or both virtual and physical components that work together to monitor and control batch and / or continuous industrial processes during run-time of the plant. In some configurations, the MPDSC platform also supports a safety instrumented system (SIS), which may have both virtual and physical components that work together to maintain safe operation of the plant during run-time and provide fail-safe operation of the plant. A virtual node (e.g., in conjunction with one or more physical devices or components disposed within the physical environment of the process plant) that performs run-time, operational process control, and / or related run-time functions is referred to herein as a "virtual run-time node."
[0013] The MPDSC platform may additionally or alternatively support a simulation environment or space that may be utilized for testing, validation, verification, and / or inspection of control and / or safety systems and / or components, operator training, case studies, ongoing process improvement, and the like. For purposes of simulation, the MPDSC platform provides virtual nodes that simulate one or more physical devices, modules, or components that may be deployed within a physical process environment. The virtual nodes that simulate various devices, modules, and / or components that may be deployed within the physical environment of a process plant are referred to herein as "simulated nodes."
[0014] The simulations provided by the MPDSC platform are "dynamic" because the simulation of the process plant or portions thereof is performed in real time, whereby the simulation may be manipulated to run at a faster or slower pace than real time execution to reflect timing and other behaviors that (will) occur during run time and / or to use different values, initial conditions, intermediate conditions, etc. The simulation space provides various features, such as, for example, the ability to save / restore different simulated scenarios, editable initial and / or intermediate conditions of different scenarios, coordination with third party simulators via various protocols, testing and inspection of operator display views, real time simulation of one or more portions of the PCS, speeding up and / or slowing down the simulation of one or more portions of the PCS, simulations that include simulated components operating in conjunction with actual (e.g., non-simulated) virtual and / or physical components, change management and synchronization with plant configuration, etc. The MPDSC platform can simultaneously support both simulation and run time operations, various interactions and intersections between simulation and run time operations (e.g., testing of upgrades, patches, "what-if" scenarios, configuration changes, user input changes, etc.). Moreover, with the MPDSC platform, system redundancy, fault tolerance, switchover, planned maintenance, etc. can be achieved seamlessly and easily.
[0015] One of the main components of the MPDSC architecture is referred to herein as an “I / O switch” or “I / O server,” which generally abstracts the I / O of a process plant away from being specifically and directly associated with specific hardware, and performs other functions related to the I / O for simulation and / or run-time process control. The I / O switch or I / O server is a node that distributes I / O data between virtual and / or physical nodes of the process plant during run-time. Each node (either virtual or physical) is typically a component of the process plant that is identified by a unique name, tag, or identifier within the MPDSC system. For example, a node may be a physical or virtual controller, a field device, a safety information controller, a safety logic solver, an I / O card or device (e.g., a wireless I / O device, an Ethernet I / O device, a marshaled I / O cabinet or component thereof, etc.), an operator workstation, another type of user interface device, a tool (e.g., a diagnostic tool, a simulation tool, etc.), a gateway, a data storage device, or other type of component. Generally speaking, the I / O switch operates as a data broker between virtual and / or physical nodes where the I / O switch distributes or switches I / O data (also referred to herein interchangeably as "process I / O data" or "PIO data") between source nodes (either virtual or physical) and destination nodes (either virtual or physical). In a sense, rather than rigidly and / or concretely coupling physical I / O cards to different source and destination nodes to distribute process I / O data, the I / O switch virtualizes the physical distribution mechanism of process I / O data between nodes of the MPDSC system, loosening the coupling between the hardware components utilized for the purpose of distributing I / O data. Additionally, the I / O switch is configured to be capable of distributing I / O data quickly enough (e.g., with sufficiently small latency) to support run-time actual production process control and / or real-time simulation of production process control.
[0016] Generally speaking, the virtual and physical nodes / components served by an I / O switch or I / O server include respective modules that govern the behavior of the virtual and physical nodes or components. Such modules are referred to herein as "component behavior modules" or "CBMs," examples of which include control modules of controllers, safety logic of safety logic solvers, and other types of modules that govern the behavior and operation of the components in which they are stored and executed, at least in part by operating on I / O data. Within an MPDSC system, the CBMs that operate the process-related payload of I / O data are agnostic or unaware of the I / O switch and its role in delivering I / O data to / from the component behavior operation modules. That is, the CBMs are unaware of whether the CBM's respective I / O delivery mechanism to / from the CBM's host node is a physical I / O card or an I / O switch.
[0017] As such, the I / O switch may be viewed as a switching fabric, router, and / or distribution mechanism for I / O data that is transparent to the component behavior modules of the MPDSC system. As such, the I / O switch distributes I / O data between virtual and / or physical nodes via the nodes' respective publisher / subscriber layers (also interchangeably referred to herein as "Pub / Sub layers") and the virtual communication network through which the I / O payload or data is transferred between the nodes. For example, a sending or publishing node may include a respective Pub / Sub layer that publishes data generated by the sending node's component behavior modules to the virtual communication network. The I / O switch may distribute or switch the published data to nodes that are recipients of the data or subscribers of the data, and each subscriber node may recover the data via its respective Pub / Sub layer for consumption by its respective component behavior module. As such, the I / O switch brokers data on demand between publisher and subscriber nodes according to the defined relationships of the nodes in the MPDSC system.
[0018] As used herein, the "physical environment" of an MPDSC platform or system refers to a production plant or environment in which physical, tangible components (e.g., field devices, tanks, valves, actuators, heaters, evaporators, sensors, etc.) are utilized to transform physical materials into physical products through a run-time controlled process. Thus, the "physical environment" is interchangeably referred to herein as the "plant environment" of an industrial process plant. As noted above, the physical environment or plant environment includes a front-end portion in which the physical or hardware components of the MPDSC system, such as field devices, sensors, transmitters, switches, positioners, tanks, heaters, etc., are disposed and operate on the physical materials to produce physical products. Thus, the "front-end" portion of the physical environment is interchangeably referred to herein as the "field" or "site" portion of the physical environment of a process plant.
[0019] The physical environment or plant environment of the MPDSC system also includes physical or hardware components such as operator workstations, personal computers or computing devices, data historians, report generators, centralized databases, and / or other centralized (or at least partially centralized) management computing devices running applications to, for example, configure the process plant and / or its components, view and monitor the run-time operation of the plant, respond to warnings or alarms during run-time operation of the plant, adjust parameters during run-time operation of the plant, generate reports, store and analyze data, etc. The back-end portion of the physical environment of the MPDSC system may be located in an area protected from the harsher field environment, such as a job site, an enclosed room, and / or a location separate or remote from the field environment.
[0020] The virtual environment of the MPDSC system is implemented using physical or hardware computing devices that are specifically configured and interconnected to provide a platform that supports the virtualization of various physical process plant components, as described in more detail in later sections of this disclosure. Generally speaking, the physical computing devices that provide and support the virtualization platform may be physically located at the plant site (e.g., within a protected and enclosed area of a field environment), may be physically located off-site, or may be physically and distributed at various locations on-site and off-site. The physical computing devices that provide and support the virtualization platform may be interconnected via any number of physical data links and / or communication / data networks. Generally speaking, the physical computing devices, data links, and communication / data networks form a computing platform on which various logical or virtual components of the MPDSC system reside, and the various logical or virtual components may be utilized for runtime process control or for process simulation purposes in combination with components of the physical process environment.
[0021] Logical or virtual components present in the virtual environment of the MPDSC system may operate (e.g., in real-time, at high speed, and / or at low speed, as desired) to provide a simulation of one or more actual or planned physical portions of the MPDSC system. In some implementations, logical or virtual components present in the virtual environment of the MPDSC system and physical components present in the physical environment of the MPDSC system may operate in concert to provide simulated and / or run-time actual production process control. Thus, in some embodiments, the physical and virtual environments of the MPDSC platform are communicatively connected via one or more communication links and / or networks, which may include any number of wired links and / or networks, wireless links and / or networks, private links and / or networks, public links and / or networks. Embodiments of standalone virtual real-time simulations, as well as embodiments of collaboration between the logical / virtual and physical components of the industrial control system and the communication connections therebetween, are described in more detail in later sections of this disclosure.
[0022] Additionally, the virtual and physical environments of the MPDSC platform utilize or share a common (e.g., the same) system configuration database, referred to herein as the “MPDSC system configuration database.” Thus, via the MPDSC system configuration database, various virtual and physical components can be uniquely identified within the MPDSC platform across both the virtual and physical environments, and intersection between simulation and run-time operations (e.g., testing, switchover, etc.) can be seamlessly and easily accomplished.
[0023] In one embodiment, a system such as a Multipurpose Dynamic Simulation and Runtime Industrial or Process Control (MPDSC) system includes a process control system including field devices, the field devices being disposed in a physical environment of an industrial process plant and performing a physical function. Additionally, the process control system includes an I / O switch communicatively disposed between the field devices and a virtual node, the virtual node being disposed in a virtual environment of the industrial process plant. The I / O switch is a subscriber of first data generated and published by the field devices, and the I / O switch is a publisher of second data indicative of the first data generated by the field devices. The process control system further includes a virtual node, the virtual node being a subscriber of the second data corresponding to the field devices and published by the I / O switch. The virtual node includes a component behavior module that operates on the second data corresponding to the field devices and thereby generates a control signal that changes the behavior of another node of the process control system. The field devices, the virtual node, and the other node operate in conjunction during runtime operation of the industrial process plant, for example, to control an industrial process.
[0024] In one embodiment, a method of controlling a node of a process control system of an industrial process plant includes communicatively connecting a field device and a virtual node via an I / O switch disposed between the field device and the virtual node, whereby the field device, the I / O switch, and the virtual node operate in conjunction during runtime operation of the industrial process plant to control the industrial process. The field device is disposed within a physical environment of the industrial process plant and performs a physical function. The I / O switch is a subscriber of first data generated and published by the field device, and the I / O switch is a publisher of second data indicative of the first data generated by the field device. The virtual node is disposed within a virtual environment of the industrial process plant, where the virtual node corresponds to the field device and is a subscriber of the second data published by the I / O switch. During runtime operation of the industrial process plant, the method includes receiving, by the virtual node, second data corresponding to the field device and published by the I / O switch, operating on the second data by utilizing a component behavior module of the virtual node, thereby generating a control signal based on the second data, and causing an indication of the control signal to be sent to another node of the process control system, thereby altering a behavior of the other node. [Brief description of the drawings]
[0025] [Figure 1] FIG. 1 is a block diagram of an example multi-purpose dynamic simulation and run-time industrial or process control (MPDSC) system for providing dynamic simulation and / or run-time industrial or process control of a process plant. [Diagram 2] FIG. 2 is a block diagram illustrating an embodiment of an example virtual node architecture that may be included within the MPDSC system of FIG. [Diagram 3] 2 is an exemplary configuration of a physical plant environment that the MPDSC system of FIG. 1 may support. [Figure 4] 2 illustrates an example configuration of multiple I / O switches that may be implemented, at least in part, in the MPDSC system of FIG. 1; [Diagram 5] 2 is a block diagram illustrating an example virtualization management system in which at least a portion of the MPDSC system of FIG. 1 may be configured and operated. [Figure 6] FIG. 1 is a flow diagram of an example method for controlling a node of a process control system of an industrial process plant. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0026] FIG. 1 is a block diagram of an exemplary multi-purpose dynamic simulation and runtime industrial or process control (MPDSC) system or platform 10 that provides dynamic simulation and / or runtime process control of an industrial or process plant. The exemplary MPDSC platform 10 supports dynamic simulation of process control of an industrial process plant and / or real-time process control using virtualized devices. For example, the virtualized devices may be utilized by the MPDSC platform 10 for physical production purposes during runtime of the process plant. As shown in FIG. 1, the MPDSC platform 10 includes a virtual plant environment portion 12 and a physical plant environment portion 15, although in embodiments in which the MPDSC platform 10 is utilized only for real-time simulation purposes, the physical plant environment portion 15 may be omitted. Generally speaking, the virtual plant environment portion 12 and the physical plant environment portion 15 collectively form one or more operational technology (OT) layers 18 of the industrial process plant, which may provide generated data to one or more information technology (IT) layers 20 associated with the industrial process plant and / or to networks external to the IT layer for enterprise and / or external use, for example, by one or more applications 21a-21n, 22a-22m. For example, the applications 21a-21m may be provided by the enterprise that owns / operates the MPDSC platform 10 and implemented in an IT layer associated with the enterprise, and the applications 22a-22m may be Internet of Things (IoT) and / or Industrial Internet of Things (IIoT) applications provided by respective third parties running on a remote network accessed via the Internet or other public network.
[0027] The enterprise's IT layer 20 may be implemented in any number of locally and / or remotely located computing devices, such as one or more locally and / or remotely located server banks, one or more computing clouds, and may include any number of applications or consumers 21a-21n of data generated by the enterprise's OT layer 18. Typically (though not necessarily), as shown in FIG. 1, the OT layer 18 is communicatively coupled to the IT layer 20 via one or more public and / or private communication networks 24 and one or more edge gateway systems 28, which provide security and efficiency of data delivery between the OT layer 18 / MPDSC platform 10 and the IT layer 20. Additionally, the one or more edge gateway systems 28 may provide security and efficiency of data delivery between the MPDSC platform 10 and external networks and / or external applications 22.
[0028] 1, the virtual plant environment 12 of the MPDSC platform 10 includes one or more virtual nodes (VNs) 30a, 30b, 30c-30p communicatively coupled to an I / O switch (interchangeably referred to herein as an "I / O server") 25. Generally speaking, each virtual node 30x is a virtual machine that simulates or virtualizes the behavior of a respective physical component that may be operational within the physical plant environment 15. Stated another way, each virtual node 30x in the virtual plant environment 12 processes data and behaves in the same manner that its physical counterpart in the physical plant environment 15 processes data and behaves.
[0029] In particular, each virtual node 30x includes a framework and one or more subsystems 32 that enable the VN 30x to communicate with other virtual nodes 30x in the virtual plant environment 12 and / or with one or more physical nodes (PNs) in the physical plant environment 15, such as physical nodes 40a, 40b, 40c and edge gateway system 28 (edge gateway 28 may be considered a particular type of PN), each of which includes a framework and one or more respective subsystems 42x that enable communication with virtual node 30x. In addition, MPDSC platform 10 may include any number of other physical nodes or components (e.g., PNa-PNk).
[0030] A virtual node may virtualize various types of physical nodes. Generally speaking, as used herein, a "physical node" is a physical device or component of the MPDSC platform 10 that includes hardware and transmits and / or receives data to / from other devices or components (virtual or physical). Examples of the types of physical nodes that may be represented by each virtual node include, but are not limited to, various types of process control controllers and various types of local and / or remote I / O devices or cards (wireless I / O cards (WIOC), Ethernet I / O cards (EIOC), etc.), as well as various components of an I / O electronic marshalling system (characterization modules (CHARMs), terminal blocks, CHARMs, etc.). The physical plant environment 15 may include, but is not limited to, various types of physical nodes, such as I / O cards (CIOCs, etc.); various types of Safety Instrumented System (SIS) nodes, such as safety controllers, safety logic solvers, SIS repeaters, safety network bridges, safety network gateways, etc.; user interface devices, including local and / or remote physical operator workstations, mobile devices, and / or other computing devices that provide user interfaces for runtime operation and / or other purposes related to the MPDSC platform 10; local and / or remote physical computing devices that provide tools related to the MPDSC platform 10, such as control configuration tools, data integration and visualization tools, data analysis and analysis configuration tools, display view configuration tools, diagnostic tools, asset management tools, application stations, etc.; various types of gateways utilized within and / or by the MPDSC platform 10, such as wireless gateways, safety gateways, firewalls, edge gateways, field gateways, system-to-system gateways, etc.; and other types of physical nodes that may be utilized within the physical plant environment 15.
[0031] In some embodiments, a single VN 30x may represent or virtualize an entire physical node. In some embodiments, a single VN 30x may represent or virtualize one or more portions of a particular physical node. For example, a single VN 30x may represent or virtualize a particular module or group of modules executing or resident on a particular PN, where such modules may include software modules or components, firmware module components, and / or hardware modules or components. For example, a first VN may represent or virtualize an entire application running on a particular PN (such as an entire control module that may be executed on a physical process controller), a second VN may represent or virtualize a subset of an entire application running on a particular PN (such as a particular control model, function, or routine utilized by a particular control module), a third VN may represent or virtualize the behavior of a protocol-specific I / O card or device associated with a particular PN, and / or a fourth VN may represent or virtualize PN sub-components of similar granularity to the hardware sub-components of a particular PN (e.g., ports or other interfaces, buses, transceivers, chips, boards, etc.) or firmware or software sub-components of a particular PN (e.g., modules, routines, functions or behaviors, network addresses of a particular PN, such as MAC (Media Access Control) addresses or other types of addresses, etc.).
[0032] Examples of types of physical I / O cards that may be utilized within the physical plant environment 15 and that may be represented and / or virtualized by virtual nodes 30x of the MPDSC 10 include, but are not limited to: discrete output cards, including high density, intrinsically safe, and redundant discrete output cards; discrete input cards, including high density, intrinsically safe, and redundant discrete input cards; analog input cards, including analog input cards supporting a Highway Addressable Remote Transducer (HART) communications protocol, redundant analog input cards supporting HART, high-density redundant analog input cards supporting HART, and high-speed analog input cards; analog output cards, including analog output cards supporting a HART communication protocol, redundant analog output cards supporting HART, high-density redundant analog output cards supporting HART, and high-speed analog output cards; a serial card, including a redundant programmable serial card; Examples of physical cards include interface cards for discrete actuators and / or sensors supporting the Fieldbus communications protocol, RTD (resistance temperature detector) cards, thermocouple cards, millivolt cards, isolated temperature cards, multi-function cards, a range of event cards, redundant Fieldbus support cards supporting the Profibus communications protocol, redundant Profibus support cards, and other types of physical cards.
[0033] As illustrated in Figure 1, VNs 30a, 30b, 30c-30p communicate with each other and with I / O switch 25 via respective publication / subscription layers 32a, 32b, 32c-32p and 35, which are interchangeably referred to herein as the "Pub / Sub layer" and are illustrated in Figure 1 by respective hash marked portions 32x, 35 of each VN 30x and I / O switch 25. In an embodiment of MPDSC platform 10 including physical nodes as illustrated in Figure 1, at least some of PNs 28, 40a, 40b, 40c disposed within physical plant environment 15 may include respective Pub / Sub layers 38, 42a, 42b, 42c. In a sense, the Pub / Sub layers 32x, 35 (and, in some configurations, the Pub / Sub layers 38, 42x) function as a virtual communications network 45 through which the various virtual nodes 30x and I / O switches 25 (and, in some configurations, the physical nodes 40x) may communicate abstracted I / O data. In an exemplary implementation, each Pub / Sub layer 32x, 35, 38, 42x is a respective interface to the virtual communications network 45.
[0034] The virtual communication network 45 may be implemented by one or more physical communication and / or data links and / or networks, which may include wired and / or wireless networks, and may be implemented using any suitable technology, such as Ethernet, optical, IP, another type of other packet network, etc. Data is communicated between nodes over the virtual communication network 45 via publication and subscription, and any or more suitable communication protocols that support publication and subscription may be utilized within the virtual communication network 45 for distribution of data. For example, private packet protocols and / or public or standardized packet protocols (such as IPv6, IoT, and / or IIoT protocols) may be utilized for publishers of I / O data and its subscribers between the various nodes 30x, 28x, 40x of the virtual communication network 45, and, optionally, distributed to other applications 21x, 22x, for example, by the edge gateway system 28.
[0035] For example, each node of the virtual communication network 45 (e.g., virtual node 30x, I / O switch 25, physical nodes 28, 40x, etc.) may publish I / O data to the virtual communication network 45 via its respective Pub / Sub layer (e.g., via Pub / Sub layers 32x, 35, 38, 42x, etc.), and each node of the virtual communication network 45 (e.g., virtual node 30x, I / O switch 25, physical nodes 28, 40x, etc.) may subscribe to and obtain I / O data published to the virtual communication network 45 via its respective Pub / Sub layer (e.g., via Pub / Sub layers 32x, 35, 38, 42x, etc.). Typically, subscriptions to the various published data have a one-to-one correspondence between the I / O switch 25 and each of the other nodes 30x, 28, 40x. In a preferred embodiment, each node 30x, 28, 40x of the virtual communications network 45 accepts subscriptions only from the I / O switch 25 and not from other nodes, and each node 30x, 28, 40x subscribes only to I / O data published by the I / O switch 25 (which may be forwarded data generated by other nodes and subscribed to by the I / O switch 25) and not to I / O data published by other nodes. Thus, in this preferred one-to-one embodiment, the undirected graph of publication / subscription relationships is limited compared to embodiments that allow a node to have multiple subscriptions by multiple other nodes, thereby reducing network complexity, simplifying network diagnostics and management, and decreasing network load / utilization. To further reduce network complexity, simplify network diagnostics and management, and reduce network load / utilization, additionally or alternatively, each node 30x, 28, 40x of the virtual communications network 45 may send to the I / O switch 25 via publication only data that is to be forwarded by the I / O switch 25 to other nodes of the MPDSC platform 10.Of course, in some embodiments, at least a portion of the undirected graph may be implemented with one-to-many, many-to-one, and / or many-to-many relationships, as desired.
[0036] Generally speaking, within the MPDSC platform 10, process-related payload data (e.g., generated by the CBM and / or physical components of the process plant) may be abstracted, published as I / O data, and distributed to subscriber nodes of the virtual communication network 45 upon request. That is, the I / O data may be distributed (e.g., via publication) when the publishing node determines that the process-related data payload requires a new publication event. For example, the publishing node may automatically publish a particular type of sensor-generated data as I / O data to the virtual communication network when the sensor-generated data value changes. Optionally, the publishing node may publish the sensor-generated data value as I / O data periodically (e.g., every 5 seconds, every 10 seconds, every minute, etc.) even when the sensor-generated data value is not changing, e.g., thereby mitigating lost messages and other fidelity issues that may occur. Thus, in some embodiments, an explicit subscription ratio is not required and / or utilized by the subscriber nodes. As a result, execution of processing logic (e.g., component behavior modules) at each subscriber node is driven by incoming data subscribed to and received via virtual communications network 45, and thus resources utilized by each node and virtual communications network 45 may be utilized more efficiently.
[0037] In one example of an exemplary scenario, VN 30a may generate and publish a particular process-related payload data set, e.g., “Data1,” to its Pub / Sub layer 32a during runtime as I / O data. I / O switch or server 25 may have a subscription to the I / O data that includes Data1 and may obtain the process-related payload Data1 via the virtual communication network 45, its respective Pub / Sub layer 35, and its respective subscription. I / O switch or server 25 may then publish the obtained process-related payload Data1 to virtual communication network 45 via its Pub / Sub layer 35 as I / O data for receipt by those nodes that have a subscription to the I / O data that includes Data1. For example, VN 30b may have a subscription to I / O data including Data1, and upon publication of Data1 as I / O data via the Pub / Sub layer 35 of I / O switch 25, VN 30b may obtain the process-related payload Data1 via virtual communications network 45, its respective Pub / Sub layer 32b, and its subscription to the I / O data. VN 30b may then operate on the obtained process-related payload Data1 value.
[0038] Thus, the MPDSC platform 10 abstracts multiple different types of I / O utilized by and originating from various physical components of the industrial process plant (e.g., discrete output, discrete input, analog output, analog input, serial I / O, railbus, HART, wireless HART, fieldbus, Profibus, Ethernet, advanced physical layer, and / or any other type of I / O) for distribution between virtual and physical nodes via I / O switch 25, and between virtual communication networks 45 via publication and subscription. Each node of the virtual communication network 45 may perform respective abstraction and de-abstraction (e.g., recovery) of the I / O data it transmits and receives through its respective Pub / Sub layer and, optionally, other subsystems.
[0039] Virtual Node To illustrate I / O abstraction and de-abstraction, FIG. 2 illustrates two exemplary architecture embodiments 52a, 52b of a virtual node 30x. Generally speaking, the virtual node 30x simulates and / or virtualizes a physical node or physical component that may be utilized and operated within the physical plant environment 15. Each VN 52a, 52b includes a respective Pub / Sub layer 55a, 55b through which the VN 52a, 52b communicates with the I / O switch 25. In addition, each VN 52a, 52b includes a respective component behavior module 58a, 58b, referred to interchangeably herein as a “component business logic module” 58a, 58b or “CBM” 58a, 58b. Generally speaking, the CBM 58x is a module whose execution governs the operational behavior of its respective virtual node 30x, e.g., at the application level. For example, the CBM 58x of a virtual controller node may be a particular instance of a control module, and other instances of the control module may be downloaded to a physical controller disposed within the physical plant environment 15 for execution during runtime of the physical plant 15. In another example, the CBM 58x of a virtual CIOC node may be a particular instance of a remote I / O module, and other instances of the remote I / O module may be executed on a physical CIOC disposed therein during runtime of the physical plant environment 15.
[0040] Because CBMs 58x may execute within a physical component, the CBMs typically communicate natively with one or more corresponding native I / O types, such as analog input / output, fieldbus, railbus, etc. Furthermore, CBMs 58x typically have no awareness of whether they are executing on a virtual node 30x of virtual plant environment 12, a physical node 40x disposed within physical plant environment 15, or another physical component disposed within physical plant environment 15, e.g., nodes PNa-PNk. Thus, regardless of whether CBMs 58x are executing within virtual plant environment 12 or physical plant environment 15, CBMs 58x send and receive data in the same manner and using the same processing logic and I / O types.
[0041] In an embodiment of virtual node 52a, process-related payload data transmitted and received by CBM 58a is abstracted for delivery to / from VN 52a via a virtual process I / O (PIO) subsystem 60. Generally speaking, virtual PIO subsystem 60 simulates the native physical PIO delivery of virtual node 52a. That is, during runtime of virtual node 52a, virtual PIO subsystem 60 communicates I / O process values and events, for example, using its native I / O, to / from CBM 58a as if the I / O process values and events originated from / were delivered to physical hardware. Thus, virtual PIO subsystem 60 may be tailored to the particular type of virtual node 52a, the virtual node type being governed by its CBM 58a. For example, if VN 52a represents a physical controller that communicates with other devices using railbus I / O, virtual PIO subsystem 60 provides I / O data to / from CBM 58a of control routines in the form utilized by railbus I / O cards. When the VN 52a represents a CIOC, the virtual PIO subsystem 60 provides I / O data to / from the remote I / O CBM 58a in a form that can be utilized by the CHARM.
[0042] Additionally, the virtual PIO subsystem 60 may handle data publication and subscription on behalf of the virtual node 52a. That is, the virtual PIO subsystem 60 may publish data generated by the CBM 58a to the Pub / Sub layer 55a, and the virtual PIO subsystem 60 may subscribe to data generated by other nodes (and forwarded by the I / O switch 25) via the Pub / Sub layer 55a. In one embodiment, subscriptions to data and its publication may be based on a tag or other identifier that is unique within the MPDSC platform 10. The tag or other identifier may uniquely identify, for example, data, a node, a device, or a component of the MPDSC platform 10. In one embodiment, the tag and / or identifier may be assigned during configuration and / or commissioning.
[0043] Thus, for each virtual node 52a in virtual environment 12, virtual PIO subsystem 60 maintains a logical separation between CBM 58a and the corresponding physical I / O (e.g., via Pub / Sub layer 55a, virtual communications network 45, and other Pub / Sub layers 32, 35, 38, 42) similar to the logical separation (e.g., via physical I / O cards or marshaled I / O configurations) maintained within physical environment 15 at each physical node having an on-board CBM 58a and its corresponding physical I / O. Generally speaking, virtual PIO subsystem 60 for any virtual node 30 maintains a logical separation between the I / O subscribers (CBM 58a, other modules, other types of I / O consumers, etc.) included in virtual node 30 and their corresponding physical I / O.
[0044] In the embodiment of the virtual node 52b shown in FIG. 2, the virtual PIO subsystem 60 is omitted or not utilized. Typically, the type of virtual node utilizing the VN architecture 52b is a node in which the CBM 58b can inherently communicate with the physical components and technologies in which the virtual communication network 45 is implemented. For example, if the virtual communication network 45 is implemented via an IP over Ethernet protocol, the virtual node 52b simulating the EIOC includes a CBM 58b that is inherently configured to communicate using the IP over Ethernet protocol. As a result, the EIOC virtual node 52b may not include the virtual PIO subsystem 60 (or may turn off or ignore its operation), and the EIOC virtual node 52b may handle the delivery of data to / from the virtual node of 52b by using only the CBM 58b and the Pub / Sub layer 55b.
[0045] Physical Node Figure 3 is a block diagram of an example physical plant environment 100 that may operate in conjunction with the MPDSC platform 10 of Figure 1. For example, the physical environment portion 15 of the MPDSC platform 10 illustrated in Figure 1 may include at least a portion of the physical plant environment 100.
[0046] The physical plant 100 controls (or, in some embodiments, operates in conjunction with a virtual plant environment, such as virtual plant environment 12, to control) an industrial process, which can be said to have one or more "process outputs" (e.g., tank levels, flow rates, material temperatures, etc.) that characterize the state of the process, and one or more "process inputs" (e.g., various environmental conditions and actuator states, operations that can change the process outputs). The physical process plant 100 of FIG. 3 includes a field environment 102 and a back-end environment 105, each of which are communicatively connected to one another by a process control backbone or data highway 108, which may include one or more wired and / or wireless communication links and / or networks, which may be implemented using any desired or suitable communication protocol, such as, for example, an Ethernet protocol, an IP protocol, or another packet protocol.
[0047] At a high level (and as shown in FIG. 3 ), the field environment 102 includes physical components (e.g., process control devices, networks, network elements, etc.) that are grounded and interconnected to operatively control an industrial process during runtime. Generally, these physical components are located, disposed, or otherwise included within the field environment 102 of the physical process plant 100, where raw materials are received and processed using the physical components disposed therein, thereby producing one or more physical products (e.g., paper, refined oil, pharmaceuticals, etc.). In contrast, the back-end environment 105 of the physical process plant 100 includes various physical components, such as computing devices, operator workstations, databases or data banks, that are shielded and / or protected from the harsh conditions and materials of the field environment 102. In some configurations, the various computing devices, databases, and other components and equipment included within the back-end environment 105 of the physical process plant 100 may be physically located at different physical locations, some of which may be local to the physical plant 100 and some of which may be remote.
[0048] 3, the field environment 102 includes one or more process controllers 110 communicatively connected to the data highway 108. Each of the process controllers 110 may be connected to one or more intermediate nodes 112, 115 (e.g., I / O cards, I / O devices, I / O systems, etc.) that facilitate communication between the controllers 110 and the field devices. Generally speaking, in the process control industry, the term "I / O" may be used in several related, but distinct, contexts. The term generally refers to a logical link or communication channel (e.g., an "I / O channel") that communicatively couples a field device to an I / O card or controller, but may also be used to refer to several other concepts, such as the physical device utilized to transmit signals to or receive signals from the field device via the I / O channel (e.g., an "I / O device" or "I / O card") and a connector or terminal associated with the I / O device (e.g., an "I / O connector"). The I / O devices and I / O cards 112, 115 may be standalone individual physical devices, each of which is connected to a respective controller and one or more respective field devices, as illustrated in Figure 3. In some configurations (not shown in Figure 3), the I / O devices, cards, connectors, and other I / O related components, such as terminal blocks, module processors, etc., are included in an I / O electronic marshalling system that enables flexible I / O distribution between multiple controllers and multiple field devices of various types, such as those described in U.S. Patent Nos. 7,684,875, 8,332,567, 8,762,618, 8,977,851, 9,083,548, 9,411,769, 9,495,313, and 9,946,240, the entire contents of which are expressly incorporated herein by reference.Thus, for clarity of discussion, as used herein, the term "I / O device" refers generally to the physical I / O devices, cards, electronic marshalling systems, and components thereof through which I / O channels are implemented, thereby communicatively coupling field devices and controllers.
[0049] Also, in the process control industry, the term "I / O" may be used generally to refer to a signal transmitted on an I / O channel (e.g., an "I / O signal"), a variable or command represented by a signal (e.g., an "I / O parameter"), or a value of the variable or command carried by a signal (e.g., an "I / O parameter value" or "I / O data payload"). Thus, for clarity of discussion, as utilized herein, I / O signals, I / O parameters, and I / O parameter values are collectively and generally referred to herein as "I / O data" or "process I / O data."
[0050] To the extent that the term "I / O" is referenced herein without a modifier, the context should make clear which of these concepts are being discussed. Additionally, it should be understood that an "I / O channel" refers to a particular type of "communications channel" or "channel." That is, unless the context suggests otherwise, references in this description to the term "channel" or the term "communications channel" without the "I / O" modifier may, in some embodiments, refer to a communications link that may be an I / O channel, but may, in some embodiments, refer to a communications link other than an I / O channel.
[0051] In any case, returning to FIG. 3, each process controller 110 of the physical process plant 100 implements a control strategy defined by one or more control routines (e.g., one or more component behavior modules), which may be stored in the memory of the controller 110. As the controller's processor executes one or more of the control routines, the controller transmits control signals (i.e., "control outputs") to the field devices over a wired or wireless process control communication link or network to other field devices for controlling the operation of the process in the plant 100. The controller may generate the control signals based on (i) one or more received signals (e.g., one or more received signals representing measurements taken by the field devices), which may be referred to as "control inputs," and (ii) the logic of one or more control routines, which may be defined by one or more software elements (e.g., function blocks). Typically, the controller manipulates process inputs (which may be referred to as "manipulated variables") to change a particular process output (which may be referred to as a "controlled variable" or simply a "process variable") based on feedback (i.e., measurements of the controlled variables) and a desired value (i.e., set point) of the process output.
[0052] Generally, at least one field device performs a physical function (e.g., opening or closing a valve, raising or lowering a temperature, taking a measurement, sensing a condition, etc.) to control the operation of a process implemented in the process plant 100. Some types of field devices communicate with a controller using an I / O device. The process controllers, field devices and I / O devices may be wired or wireless, and any number and combination of wired and wireless process controllers, field devices and I / O devices may be included within the process plant environment or platform 100.
[0053] Plant 100 Front-end Environment 102 3 illustrates a process controller 110 that is communicatively coupled to wired field devices 125-132 via input / output (I / O) devices 112 and 115, and to wireless field devices 140-146 via a wireless gateway 168 and data highway 108. In some configurations (not shown), the controller 110 may be communicatively coupled to the wireless gateway 168 using one or more communications networks other than the backbone 108, such as by using any number of other wired or wireless communications links supporting one or more communications protocols, e.g., Wi-Fi or other IEEE 802.11 compliant wireless local area network protocols, mobile communications protocols (e.g., WiMAX, LTE, or other ITU-R compatible protocols), Bluetooth®, HART®, WirelessHART®, Profibus, FOUNDATION® Fieldbus, etc.
[0054] The controller 110, which may be, by way of example, a DeltaV™ controller sold by Emerson Process Management, may operate to implement a batch or continuous industrial process using at least some of the field devices 125-132 and 140-146. In one embodiment, in addition to being communicatively connected to the process control data highway 108, the controller 110 is also communicatively connected to at least some of the field devices 125-132 and 140-146 using any desired hardware and software associated with, for example, standard 4-20 mA devices, I / O cards 112, 115, and / or any smart communication protocol, such as FOUNDATION® Fieldbus protocol, HART® protocol, WirelessHART® protocol, etc. In FIG. 3, the controller 110, the field devices 125-132, and the I / O devices 112, 115 are wired devices and the field devices 140-146 are wireless field devices. Of course, the wired field devices 125-132 and the wireless field devices 140-146 may conform to any other desired standard(s) or protocol, such as any wired or wireless protocol, including any standard or protocol developed in the future.
[0055] The process controller 110 of FIG. 3 includes a processor 120 that implements or oversees one or more process control routines 118 (e.g., stored in a memory 122 of the controller 110). The processor 120 is configured to communicate with the field devices 125-132 and 140-146, and with other nodes communicatively connected to the controller 110. It should be noted that any control routines or modules described herein may be implemented or executed in part by different controllers or other devices, if so desired. Similarly, the control routines or modules 118 described herein that are to be implemented in the process control plant 100 may take any form, including software, firmware, hardware, and the like. The control routines may be implemented in any desired software format, such as using object-oriented programming, ladder logic, sequential function charts, function block diagrams, or using any other software programming language or design paradigm. The control routines 118 may be stored in any desired type of memory 122, such as random access memory (RAM) or read-only memory (ROM). Similarly, the control routines 118 may be hard-coded into, for example, one or more EPROMs, EEPROMs, application specific integrated circuits (ASICs), or any other hardware or firmware elements. Thus, the controller 110 may be configured to implement the control strategies or control routines in any desired manner.
[0056] The controller 110 implements a control strategy using what are commonly referred to as function blocks, each of which is an object or other part (e.g., a subroutine) of an overall control routine and which works in conjunction with other function blocks (through communications called links) to implement a process control loop within the MPDSC platform 10. A control-based function block typically performs one of the following: (i) an input function (sometimes referred to as an "input block"), such as those associated with a transmitter, sensor, or other process parameter measurement device; (ii) a control function (sometimes referred to as a "control block"), such as those associated with a control routine implementing PID, fuzzy logic, etc.; or (iii) an output function (sometimes referred to as an "output block") that controls the operation of some device, such as a valve, to perform some physical function within the process control plant 100. Of course, hybrid and other types of function blocks exist.
[0057] The function blocks may be stored within and executed by the controller 110, which is typically the case when these function blocks are used for or associated with certain types of smart field devices, such as standard 4-20 mA devices and HART® devices, or the function blocks may be stored within and implemented by the field devices themselves, which may be the case for FOUNDATION® Fieldbus devices. One or more of the control routines 118 may implement one or more control loops that are performed by executing one or more of the function blocks. In a sense, the control routines 118 may be considered component behavior modules of the controller 110.
[0058] The wired field devices 125-132 can be any type of device, such as sensors, valves, transmitters, positioners, etc., while the I / O cards 112 and 115 can be any type of process control I / O devices conforming to any desired communication or controller protocol. For example, the I / O devices 112, 115 can be included in an I / O electronic marshalling system. In FIG. 3, the field devices 125-128 are standard 4-20 mA or HART® devices that communicate to the I / O card 112 via analog lines or combined analog and digital lines, while the field devices 129-132 are smart devices, such as FOUNDATION® Fieldbus field devices, that communicate to the I / O device 115 via a digital bus using the FOUNDATION® Fieldbus communication protocol. However, in some embodiments, at least some of the wired field devices 125, 126 and 128-131 and / or at least some of the I / O devices 112, 115 additionally or alternatively communicate with the controller 110 using the process control data highway 108 and / or by using other suitable control system protocols (e.g., Profibus, DeviceNet, Foundation Fieldbus, ControlNet, Modbus, HART, etc.). In some configurations (not shown in FIG. 3), at least some of the field devices 125-132 may communicate with the controller 110 through an electronic I / O marshalling system instead of through the individual I / O devices 112, 115.
[0059] In FIG. 3 , the wireless field devices 140-146 communicate over a wireless process control communication network 165 using a wireless protocol such as the WirelessHART® protocol. Such wireless field devices 140-146 may communicate directly with one or more other devices or nodes of the wireless network 165 that are also configured to communicate wirelessly (e.g., using the wireless protocol or another wireless protocol). To communicate with one or more other nodes not configured to communicate wirelessly, the wireless field devices 140-146 may utilize a wireless gateway 168 connected to the process control data highway 108 or to another process control communication network. The wireless gateway 168 provides access to the various wireless devices 140-158 of the wireless communication network 165. In particular, the wireless gateway 168 provides communication coupling between the wireless devices 140-158, the wired devices 125-132, and / or other nodes or devices of the physical process control plant 100. For example, the wireless gateway 168 may provide a communicative link by using the process control data highway 108 and / or by using one or more other communication networks of the physical process plant 100 .
[0060] Similar to the wired field devices 125-132, the wireless field devices 140-146 of the wireless network 165 perform physical control functions within the physical process plant 100, such as opening or closing a valve or taking measurements of a process parameter. However, the wireless field devices 140-146 are configured to communicate using the wireless protocol of the network 165. In this manner, the wireless field devices 140-146, the wireless gateway 168, and the other wireless nodes 152-158 of the wireless network 165 are producers and consumers of wireless communication packets.
[0061] In some configurations of the process plant 100, the wireless network 165 includes non-wireless devices. For example, in FIG. 3, the field device 148 in FIG. 3 is a legacy 4-20 mA device and the field device 150 is a wired HART® device. To communicate within the network 165, the field devices 148 and 150 are connected to the wireless communication network 165 via wireless adapters 152a, 152b. The wireless adapters 152a, 152b support wireless protocols such as WirelessHART, and may also support one or more other communication protocols such as Foundation® Fieldbus, PROFIBUS, DeviceNet, etc. Additionally, in some configurations, the wireless network 165 includes one or more network access points 155a, 155b, which may be separate physical devices in wired communication with the wireless gateway 168 or may be provided within the wireless gateway 168 as an integrated device. Additionally, the wireless network 165 may also include one or more routers 58 for forwarding packets from one wireless device to another within the wireless communication network 165. In Figure 3, the wireless devices 140-146 and 152-158 communicate with each other and with a wireless gateway 168 via wireless links 160 of the wireless communication network 165 and / or through the process control data highway 108.
[0062] Plant 100 backend environment 105 As described, the back-end environment 105 may include various components, such as computing devices, operator workstations, databases, or data banks, that are typically shielded and / or protected from the harsh conditions and materials of the field environment 102. For example, the back-end environment 105 may include (i) one or more operator workstations 170a and other local or remote user interface devices 170b, (ii) one or more configuration applications 172a and configuration databases 172b, (iii) one or more other types of applications 175a and / or databases 175b, which may include, for example, tools, diagnostics, asset management systems, simulators, and / or other types of applications, (iv) one or more other wireless access points that communicate with other devices associated with the plant 100 (e.g., the user interface devices 170b or other devices) using various wireless protocols. (v) one or more plant gateway systems 178 to other plants; (vi) one or more edge gateway systems 182 to systems 185 outside the immediate OT layer of the physical process control platform 100 (e.g., enterprise IT networks / systems and / or external data networks / systems, which may be implemented on cloud computing and / or other suitable platforms); and / or (vii) other physical components that are specifically configured via hardware and software to support the process plant 100, each of which may be communicatively connected to the data highway 108.
[0063] Operator Workstations and User Interface Devices 170a, 170b The operator workstations 170a and other user interface devices 172b may be utilized by an operator to view and monitor the runtime operation of the physical process plant 100, as well as to take any diagnostic, corrective, maintenance, and / or other actions that may be required. At least some of the operator workstations 172a may be located in various protected areas within or near the plant 100, and in some circumstances, at least some of the operator workstations 172b may be remotely located but nevertheless in communicative connection with the plant 10. The operator workstations 172a, 172b may be wired or wireless computing devices.
[0064] Configuration application 172a and configuration database 172b The configuration application 172a and configuration database 172b may be utilized to configure certain aspects of the plant 100, such as control modules / routines, user interfaces, data monitoring / analysis, etc. For example, various instances of the configuration application 172a may allow a user to create or modify process control modules and download these modules to the controller 110 via the data highway 108 to create or modify operator interfaces, through which an operator may view data and change data settings within the process control routines to create or modify data monitoring / analysis routines and functions that may be downloaded to various physical components within the field environment 102. The configuration database 172b stores the created (e.g., configured) modules, operator interfaces, data monitoring / analysis, etc. Although the configuration application 172a and configuration database 172b generally have a centralized, unified logical appearance, multiple instances of the configuration application 172a may run simultaneously within the physical process control platform 100, and the configuration database 172b may be implemented across multiple physical data storage devices. Thus, the configuration applications 172a, configuration databases 172b, and user interfaces thereto (not shown), comprise a configuration or development system 172 for various types of modules, e.g., control modules, display or operator interface modules, and / or analysis modules. Typically, but not necessarily, the user interface for the configuration system 172 differs from the operator workstation / user interface device 170 because the user interface for the configuration system 172 is utilized by configuration and development engineers whether or not the plant 100 is operating in a production mode, whereas the operator workstation / user interface device 170 is utilized by an operator during run-time operation of the physical process plant 100.
[0065] With respect to commissioning of the physical configuration of the MPDSC platform 100, the configuration database 172b may store data and other information that specifically identifies and / or addresses various physical devices or components and their interconnections that are planned or desired to be implemented on the process plant floor or field environment 102. Some of this commissioning data may be provided to components in the field environment 102 for use in commissioning the devices and loops therein, and some of this data may be utilized in the back-end environment 105 for design, development, and preparation of control modules, operator interface modules, and / or analytical modules that will operate in conjunction with the field environment 102 during live operation of the physical process plant 100. In one example, approved control modules are downloaded from the configuration database 172b to the process controller 110 such that, when executed during live operation, the process controller 110 operates according to its resident control modules to send and receive various signals to / from other components in its loop (and possibly to / from other process controllers) and thereby control at least a portion of the process in the physical process plant 100.
[0066] The configuration database 172b may store some logical identifiers of components in the field environment 102, allowing the controller 110 and other devices to refer to the components and signals associated with the components by the logical identifiers. For example, for a given field device, the configuration database 172b may store information mapping or binding the logical identifier to a specific hardware address or I / O channel. A hardware address may identify a specific controller, a specific I / O device connected to a specific controller, and / or a specific address for an I / O channel connecting a specific I / O device to a field device. In some cases, this mapping or binding may be stored in the controller 110, the user interface device 170b, the operator workstation 170a, or any other desired device (e.g., any device that needs to resolve a logical identifier). After a logical identifier is bound to a hardware address or I / O channel, the identifier is considered "assigned." In some cases, the plant 100 includes "unassigned" logical identifiers, which are identifiers that software elements (e.g., control routines and / or function blocks) reference but do not have a binding. That is, a logical identifier is considered "unassigned" when the plant 100 and configuration database 172b have no hardware addresses or I / O channels that are not bound to a tag. Thus, when an unassigned logical identifier is referenced by a control routine, values carried by signals in the plant 100 will not be read and commands will not be sent through field devices in the plant 100.
[0067] Examples of such logical identifiers include device tags (DTs), each of which represents a particular instrument, controller, valve, or other physical field device, and device signal tags (DSTs), each of which represents a particular signal received or generated by a particular device and typically corresponds to a particular parameter utilized by the field device. For some devices, the device signal tag includes a combination of the device's device tag and an identifier of a particular signal received or generated by the device, e.g., an identifier of a particular parameter referenced by a control module. For some devices, typically legacy or dumb devices, the device tag represents both the physical device and the signal generated by the device. Generally speaking, the logical identifiers of the device are used by the physical process plant 100 in both the field environment 102 and the back-end environment 105 to uniquely identify the device. The DTs and DSTs may be referred to as "system tags" or "system identifiers."
[0068] In some cases, the smart field devices 129-132 may also store logical identifiers that are unique to the smart field devices 129-132. These logical identifiers may be separate from the system tags utilized by the plant 100 to identify the field devices 129-132 and may be referred to as "source identifiers" or "source tags." The source tags may or may not be stored in the configuration database 172b, depending on the implementation.
[0069] The configuration database 172b may store data and other information that specifically identify and / or address various virtual devices or components (e.g., various virtual nodes 30) that are planned or desired to be implemented in the virtual plant environment 12. As with physical devices and components, the configuration database 172 may store logical identifiers for each of the components of the virtual environment 12, thereby allowing other devices and / or components (whether physical or virtual) to reference the virtual components. For example, as with physical nodes 40x, the various virtual nodes 30x may be uniquely identified within the MPDSC platform 10 (e.g., across both the virtual environment 12 and the physical environment 15) via their respective device tags (DTs), device signal tags (DSTs), source tags, and / or other types of unique identifiers. Further sections of this disclosure discuss the configuration and identification of virtual devices and components in more detail.
[0070] Other applications 175a and databases 175b The other applications 175a and databases 175b may include instances of applications that are specific to the process plant 100, such as diagnostic applications / databases, data historian applications / databases, system level health monitoring applications / databases, local and / or remote user interfaces, etc. Generally speaking, the other applications 175a and databases 175b may include one or more applications and their associated databases that execute on the OT tier 18 of the process plant 100. Additionally or alternatively, the other applications 175a and databases 175b may include one or more applications and their associated databases that execute on the IT tier 20 associated with the process plant 100, such as inventory management applications, human resource management applications, supply chain management applications, other types of enterprise related applications, weather / environmental applications, etc. For example, the other applications 175a and databases 175b may include applications 21a-21n and their associated databases. Additionally or alternatively, the other applications 175a and databases 175b may include one or more applications and their associated databases that are external to and / or run remotely from the process plant 100 and / or its enterprise, such as simulation applications, analytical applications, IoT applications, IIoT applications, etc. For example, the other applications 175a and databases 175b may include applications 22a-22m and their associated databases. The other applications 175a and databases 175b may include third party applications and / or applications provided by an enterprise associated with the process plant 100. At least some of the other applications 175a and databases 175b may be accessed via the edge gateway system 28 and / or some other type of security and / or firewall system.
[0071] Wireless Access Point 178 One or more other wireless access points 178 may enable devices in the back-end environment 105 (and possibly in the field environment 102) to communicate over a wireless protocol such as Wi-Fi or other IEEE 802.11 compliant wireless local area network protocols, or Worldwide Interoperability for Microwave Access (WiMAX), Long Term Evolution (LTE), or other ITU-R (International Telecommunication Union Radio Communication Sector) protocols. The wireless access points 178 enable the wireless access points 174 to communicate with other devices using a mobile communication protocol such as the Wireless Sector compatibility protocol, shortwave wireless communication such as Near Field Communication (NFC) and Bluetooth, or other wireless communication protocols. Typically, such wireless access points 178 enable handheld or other portable computing devices (e.g., user interface devices 170b) to communicate over a respective wireless process control communication network that supports a different wireless protocol than the wireless network 165. For example, the wireless or portable user interface devices 170b may be mobile workstations or diagnostic test equipment (e.g., one instance of the operator workstations 170a) utilized by an operator within the physical process plant 100. In some scenarios, in addition to the portable computing devices, one or more process control devices (e.g., the controller 110, the field devices 125-132, or the wireless devices 168, 140-158) also communicate using the wireless protocol supported by the access points 174.
[0072] Gateway system 180, 182 The gateway nodes or systems 180 and 182 may interface with systems external to the direct physical process control plant 100. Typically, such systems are consumers or suppliers of information produced or acted upon by the physical process plant 100. For example, the process control plant 100 may include a plant gateway node 180 for communicatively connecting the direct physical process plant 100 with another process plant. Additionally or alternatively, the process control plant 100 may include an edge gateway node or system 182 for communicatively connecting the direct physical process plant 100 with external public or private systems, such as a laboratory system (e.g., a laboratory information management system or LIMS), an operator round database, a data integration and visibility system, a data analysis system, a material handling system, an asset management system, a maintenance management system, a product inventory control system, a production scheduling system, a weather data system, a shipping and handling system, a packaging system, the Internet, an IOT application, an IIOT application, or other external systems.
[0073] Generally speaking, the edge gateway system 182 enables communications to be securely delivered between the process plant 100 and other networks 185. In an exemplary architecture, the edge gateway system 182 includes an internal or plant facing engine (which may be referred to as a “field gateway”) and an external or outward facing engine (which may be referred to as an “edge gateway”), where the plant facing engine and the outward facing engine cooperate to securely deliver process plant data (e.g., data generated by the OT layer) to external networks and / or applications (e.g., IT layer and / or external networks and / or systems) that are consumers of the plant data. In one of many embodiments, the plant facing engine collects data generated by various components of the process plant 100 and securely transmits the collected data to the outward facing engine over one or more secure communication links, for example, via a first publication set. The outward facing engine subscribes to various publications generated by the plant facing engines from which it obtains the collected plant data. The outward facing engine then securely transmits the acquired plant data to one or more external client applications (e.g., applications 21a-21n, 22a-22m) in network 185, e.g., via a second publication set. Publications and subscriptions at the plant facing engine and / or the outward facing engine, respectively, may be configured as needed, although typically the publication / subscription, encryption, and / or other secure data distribution mechanisms utilized between the plant facing engine and the outward facing engine are different from the publication / subscription, encryption, and / or other secure data distribution mechanisms utilized between the outward facing engine and external applications.In some embodiments, for added security, the edge gateway system 182 includes one-way data diodes disposed between the plant-facing engines and the outward-facing engines to prevent data from flowing from the external network 185 to the process plant 100. Examples of edge gateway systems may be found in U.S. Patent Publication Nos. 2018 / 0115516, 2018 / 0115528, 2018 / 0115517, and 2018 / 0113442, the entire disclosures of which are incorporated herein by reference. Of course, other edge gateway systems may additionally or alternatively be utilized by the process plant 100.
[0074] 3 illustrates only a single process controller 110, wireless gateway 168, wireless adapter 152, access point 155, router 158, and wireless process control communications network 165, including a finite number of field devices 125-132 and 140-146, included within the exemplary process plant 100, but it should be noted that this is merely an exemplary and non-limiting embodiment. Any number of controllers 110 may be included within the process control plant or platform 100, and any of the controllers 110 may communicate with any number of wired or wireless devices and networks 125-132, 140-146, 168, 152, 155, 158, and 165 to control processes within the plant 100.
[0075] 1 and 3 together with respect to physical nodes, each physical node 40a-40c and PNa-PNk shown in FIG 1 may be a respective one of the physical components or devices discussed with respect to the process control plant 100 of FIG 3. For example, PN 40b may be a process controller having a respective Pub / Sub layer 42b and communicatively connected to field device PNh via I / O card PNg. In another example, PN 40c may be a CIOC (having respective Pub / Sub layers 42c) to which six different field devices PNa-PNf are communicatively connected, or PN 40c may be a wireless access point 178 or an EIOC (having respective Pub / Sub layers 40c) to which various other physical components PNa-PNf that do not have a Pub / Sub layer are communicatively connected. In yet another example, PN 40a may be an I / O marshalling or I / O hub device that distributes process I / O data on behalf of multiple other PNs that do not have Pub / Sub, e.g., PNi-PNk, via its Pub / Sub layer 42a. I / O marshalling or hub device 40a may be a standalone device or may be included within another physical component disposed within physical plant environment 15, such as within controller 110, I / O devices 112, 115 (e.g., CIOC, ECOC, WIOC, etc.), access point 178, gateway 180, 182, etc. Furthermore, in some implementations, edge gateway system 28 and its Pub / Sub layer 38 may be a physical node (not shown in FIG. 1) communicatively connected to various physical components (e.g., PNs 40a-40c and PNa-PNk) of physical plant environment 15, e.g., in a manner such as discussed with respect to FIG. 3.
[0076] I / O Switch As mentioned above, the I / O switch 25 shown in FIG. 1 functions as a data broker, switching fabric, or router for handling I / O data between the nodes of the virtual communication network 45. That is, the I / O switch 25 forwards I / O data generated by a publishing node on behalf of the publishing node to nodes subscribing to the data. Generally speaking, the I / O switch 25 may maintain (and update) records regarding which I / O data is published by which nodes and which nodes subscribe to which published I / O data. In one embodiment, the I / O data may be identified in the records by a unique identifier, name, or tag that is unique across the MPDSC platform 10, or by a respective instruction therefor. The unique identifier may, for example, identify the I / O data and / or process-related payload data contained in that publishing node. In one embodiment, the unique identifier, name, or tag is assigned during configuration and / or commissioning. The I / O switch 25 utilizes the stored records to route incoming published data to subscribers of the published data. For example, the I / O switch 25 may subscribe to I / O data published by various nodes 28, 30x, 40x, and upon receiving published I / O data via its subscriptions, the I / O switch 25 may itself publish the received I / O data to selected subscriber nodes 28, 30x, 40x according to the stored records. Typically, but not necessarily, the I / O switch 25 does not maintain, record, or store I / O data and / or process-related payload data published by other nodes of the virtual communications network 45.
[0077] Importantly, I / O switch 25 is configured to switch or forward received process I / O data with minimal delay. Indeed, in prototypes, I / O switch 25 was able to forward received process I / O data through I / O switch 25 in time intervals measured in hundreds of microseconds, such as less than 500 microseconds, less than 200 microseconds, and less than 100 microseconds, depending on the load.
[0078] Generally speaking, I / O switch 25 may be implemented via hardware, firmware, and / or software. In one example, I / O switch 25 is implemented using one or more physical hardware devices on which dedicated software is installed to provide at least some of the I / O switch 25 functionality described herein, i.e., I / O switch 25 may be implemented as an appliance. In another example, I / O switch 25 is implemented as software (e.g., programs, routines, applications, etc.) that may be installed on and executed by a bank of servers or computing devices to provide at least some of the I / O switch 25 functionality described herein. In yet another example, I / O switch 25 is implemented via virtualization, e.g., as a virtual machine, container (Docker, LXD, etc.), or another type of virtualized implementation.
[0079] The Pub / Sub layer 35 of the I / O switch 25 is generally similar in construction and function to the Pub / Sub layers 32x, 38, 42x, 55x described elsewhere in this disclosure. However, the Pub / Sub layer 35 of the I / O switch 25 is further configured to accept and maintain subscription requests for various identified process I / O data. As discussed above, the subscriptions are recorded in and maintained by the I / O switch 25, for example, in one or more tangible, non-transitory memories. Additionally, the Pub / Sub layer 35 of the I / O switch 25 is configured to forward the published process I / O data to subscribing nodes, which may include other I / O switches.
[0080] For illustrative purposes, Figure 4 illustrates an exemplary configuration 200 of multiple I / O switches 202, 205, 208, 210 that may be included in the MPDSC platform 10 of Figure 1. In one example, each I / O switch 202, 205, 208, 210 has a respective architecture similar to that of I / O switch 25, including a respective Pub / Sub layer (as indicated by the respective hash marked portions). Also, like I / O switch 25, each I / O switch 202, 205, 208, 210 is associated with and interconnected with a respective VN and / or PN set 212a-212n, 215a-215m, 218a-218p, and 220a-220q via a virtual communication network 225, between which each I / O switch 202, 205, 208, 210 transfers process I / O data via publish and subscribe, such as in the manner described above. Configuration 200 includes four I / O switches 202, 205, 208, 210, although the concepts discussed herein with respect to configuration 200 are readily applied to a greater or lesser number of I / O switches interconnected in a mesh topology.
[0081] 4, each I / O switch 202, 205, 208, 210 may further forward process I / O data to each of the other I / O switches 202, 205, 208, 210 via virtual communication network 225. By interconnecting multiple I / O switches 202, 205, 208, 210, the number of virtual and / or physical nodes served may be expanded to support a larger system 10 and provide additional distribution bandwidth. In configuration 200, each I / O switch 202, 205, 208, 210 may publish data to the other I / O switches 202, 205, 208, 210 on behalf of its respective set of VNs / PNs. Similarly, each I / O switch 202, 205, 208, 210 may subscribe to data forwarded by the other I / O switches 202, 205, 208, 210 on behalf of their respective VN / PN sets 212a-212n, 215a-215m, 218a-218p, 220a-220q.
[0082] The configuration 200 illustrates each of the I / O switches 202, 205, 208, 210 as being directly linked to each of the other I / O switches 202, 205, 208, 210. That is, the virtual communication network 225 has a fully interconnected or mesh topology. Thus, in this implementation of the configuration 200, the maximum transmission delay from a publisher node to a subscriber node is limited because the maximum number of hops that a particular process I / O data payload can undergo is three. In other implementations of the configuration 200, the maximum number of hops may be different. For example, the maximum number of hops may be increased, such as when a time series capability, such as time series networking, or other suitable time series capability, is utilized, such as to monitor traffic. The maximum number of hops in the configuration 200 may be configured and changed as needed.
[0083] Of course, other interconnected topologies (e.g., hub-and-spoke, star, ring, tree, hybrid, etc.) may be possible in addition to or instead of the mesh topology of the virtual communication network 225. Generally speaking, publishing for processing I / O data published by a particular publishing node, e.g., node 215a, is made to and managed by its corresponding I / O switch, e.g., I / O switch 205. However, if I / O switch 205 does not have a record for the particular data for which a subscription is requested, I / O switch 205 may forward the subscription request to other I / O switches 202, 208, 210. The particular I / O switch corresponding to the node publishing the requested data, e.g., I / O switch 210 corresponding to publishing node 220q, will have the requested data and a record corresponding to that publishing node 220q and will respond to I / O switch 205 corresponding to requesting node 215a, whereupon I / O switch 105 may create and store a corresponding record for the requested data. In this manner, a traversal route for the requested data from publishing node 220q to subscribing node 215a via I / O switches 210, 205 may be established.
[0084] In one embodiment, configuration 200 may be implemented across multiple MPDSC systems 10. For example, I / O switch 202 may be included in a first MPDSC system and I / O switch 205 may be included in a different MPDSC system. Thus, the different MPDSC systems may publish and / or subscribe to each other's process I / O data via one or more links of virtual communications network 225.
[0085] Real-time virtual control and associated behavior As described above, the virtual node 30x may virtualize the behavior of various physical components operable within the physical plant environment 15. Furthermore, due to the functionality of the MPDSC platform 10, the virtualized components 30x of the virtual plant environment 12 operate in conjunction with the physical components of the physical plant environment 15 to perform real-time control of the industrial process plant during runtime, thereby producing physical products from raw materials. Referring simultaneously to FIGS. 1, 2, and 3 for illustration, the process controller 110 may be virtualized as a virtual node 30a having an architecture 52a. Thus, instead of the physical process controller 110 executing its corresponding control module or routine 118 during runtime, the virtual node 110 / 30a may include a control module or routine 118 as its CBM 58a and may execute the corresponding control module or routine 118 during runtime to send and receive signals to / from various field devices disposed within the physical environment 15 via the I / O switch 25.
[0086] For example, during runtime of the industrial process plant 100, the virtual controller 110 / 30a may receive data generated by the field device 129 via the physical I / O device 115. In this example, the physical I / O device 115 is represented in FIG. 1 by a physical node PNg, the field device 129 is represented in FIG. 1 by a physical node PNh, and the physical node 40b is an I / O hub device. The data payload generated by the field device PNh is delivered via the I / O device PNg to the I / O hub device 40b, which is a node of the virtual communication network 45. The I / O hub device 40b may publish to the I / O switch 25 the data payload generated by the field device PNh and published by the I / O hub device 40b to which the I / O switch 25 has a subscription. The I / O switch 25 may then publish the payload data generated by the field device PNh to the virtual controller 110 / 30a, which may then operate on the payload data generated by the field device PNh. The CBM 58a may generate output payload data that is to be distributed to another virtual or physical node via the virtual communication network 45.
[0087] In another example, during runtime of the industrial process plant 100, the virtual controller 110 / 30a may receive data generated by the wireless field device 142a. In this example, the physical wireless field device 142a is represented in FIG. 1 by the physical node PNa, and the physical wireless gateway 168 is represented by the PN40c. The wireless gateway PN40c receives the payload data generated by the wireless field device PNa. Because the PN40c is a node of the virtual communication network 45, the PN40c publishes to the I / O switch 25 the payload data generated by the wireless field device PNa to which the I / O switch 25 has a subscription. The I / O switch 25 may then publish the payload data generated by the field device PNa to the virtual node 30b, which is configured as a representation of an I / O device such as the I / O device 115. The virtual I / O device 30b subscribes to the payload data generated by the field device PNa and forwarded by the I / O switch 25. Thus, the virtual I / O device 30b acquires the payload data generated by the wireless field device PNa through its subscription and newly publishes the acquired payload data generated by the field device PNa to the I / O switch 25 for forwarding to the appropriate subscribers. The I / O switch 25 may then publish the acquired payload data of the field device PNa published by the virtual I / O device 30b to its respective subscribers, including (in this example) the virtual controller 30a. Upon receipt of the payload data at the virtual controller 30a through the virtual controller 30a's subscription to the payload data, the CBM 58a (e.g., control module / routine 118) of the virtual controller 30a may operate on the payload data generated by the wireless field device PNa. The CBM 58a may generate output payload data to be distributed to another virtual node or physical node via the virtual communication network 45.
[0088] Virtualization of the physical components of an industrial process plant offers many advantages over an industrial process plant that is fully implemented using physical components. The virtualized components allow the industrial process plant to flexibly expand and / or contract in size and number of components with minimal changes to the hardware area and reduced installation costs. Because a virtual node may represent an entire physical device or only a portion thereof, control may be easily scaled across, for example, as many virtual nodes as required. In addition, the MPDSC platform 10 provides I / O flexibility, for example, through I / O abstraction, such that the controller has low dependency on the assignment of I / O modules that are actually configured and downloaded. That is, I / O coupling decisions between physical I / O devices and controllers and field devices may be eliminated, at least due to the I / O switch 25. Furthermore, by using virtual physical components, software upgrades to the virtualized physical components are easily accomplished. Still further, by using the MPDSC platform 10, simulation and online testing of the behavior of physical components is also easily accomplished and improved over currently known techniques.
[0089] Virtualization Management Node FIG. 5 is a block diagram illustrating an example architecture supporting the configuration, commissioning, management, and operation of the MPDSC system 10 of FIG. 1. For purposes of clarity, and not for purposes of limitation, FIG. 5 is discussed herein with concurrent reference to FIGS. 1-4. As shown in FIG. 5, a virtualization management node 300 (interchangeably referred to herein as "VMN 300" or "virtual node 300") creates, configures, and manages virtualized components of the MPDSC system 10, such as the I / O switch 25, various virtual nodes 30x, virtual PIO subsystem 60, and publish / subscribe layers 32x, 35, 38, 42x. The VMN 300 performs at least some of the creation, configuration, and management of the virtual components automatically. Additionally or alternatively, the VMN 300 performs at least some of the creation, configuration, and management of the virtual components based on manual instructions, e.g., manual instructions received via a user interface 302 of the VMN 300, which may be a local or remote user interface. Additionally, the virtualization management node 300 drives and / or coordinates simulation activities of the virtual process environment 12, which may be performed with and / or without in-line user input during the simulation, as described in more detail below.
[0090] Configuring, administering, and managing virtual components In one embodiment, during configuration and / or commissioning of the virtual environment 12 and its components, the VMN 300 accesses the plant's system configuration database (e.g., the VMN 300 accesses the configuration database 172b of the plant 100 via the data highway 108) and based on the obtained configuration, the VMN 300 determines the type and number of virtual nodes, virtual templates and / or subsystems, I / O switches, and / or other virtual components that best support (or are desired to support) the plant configuration. The VMN 300 creates various types and numbers of virtual nodes 30x and configures the I / O switches 25 and virtual nodes 30x to communicate over the virtual communication network 45, e.g., via respective publish / subscribe layers 32x and, for some VNs 30x, via the virtual PIO subsystem 60. For some plant configurations, the VMN 300 may create and distribute instances of the publish / subscribe layer 42x (and optionally instances of the virtual PIO subsystem 60) to various physical components 40x of the physical plant environment 15. Thus, the VMN 300 may create, configure, and operate any number of nodes 25, 28, 30x, 40x of the virtual communications network 45, which may include virtual components that operate in conjunction with physical components of the physical plant to perform real-time control and / or dynamic simulation.
[0091] The configuration of the virtual communication network 45 and its nodes 25, 28, 30x, 40x may be stored in the system configuration database 172b and / or may be stored locally in the virtual environment configuration database 305. In some embodiments, a master version of the configuration of the virtual plant environment 12 is stored in the system configuration database 172b (along with the configuration of the physical plant environment 15) and a copy of the master configuration of the virtual plant environment 12 is stored locally in the virtual environment configuration database 305. In some embodiments, a master version of the configuration of the virtual plant environment 12 is stored in the virtual environment configuration database 305 and a copy of the master configuration of the virtual plant environment 12 is stored in the system configuration database 172b (along with the configuration of the physical plant environment 15). The VMN 300 coordinates change management and synchronization of the data stored in the virtual environment configuration database 305 and the associated data stored in the system configuration database 172b.
[0092] While the plant 100 is performing operational process control during runtime of the process plant 100, the VMN 300 may monitor the I / O switches 25, virtual nodes 30x, virtual communication network 45, and any associated nodes (e.g., physical nodes 40x, 28, etc.) for, e.g., resource loading, resource availability, resource bandwidth, fault occurrences, and other performance issues of hardware and / or software resources provided by the physical computing platform supporting the virtual environment 12, e.g., a platform of hardware computing devices supporting the virtual environment 12. Based on detected and / or predicted conditions, the VMN 300 may automatically implement mitigating actions during runtime operations, such as, for example, adjusting resource allocations, activating standby virtual nodes, creating and / or deleting virtual nodes, for load balancing, fault recovery, and other performance purposes. As an example, the VMN 300 may analyze performance bottlenecks and implement auto-leveling operations to mitigate any detected bottlenecks. For example, the VMN 300 may perform auto-balancing at the process data level in response to the volume of virtual network traffic on the virtual communications network 45, and / or the VMN 300 may perform auto-balancing at the physical computing device level such that CPU and / or physical network utilization is distributed across the computing devices, physical data links, and / or physical networks on which the virtual environment 12 is implemented.
[0093] Operationally, the VMN 300 may perform saves, snapshots, backups, migrations, restores, etc. of the various virtual nodes, virtual templates and subsystems and associated process data, and the VMN 300 may perform saves, snapshots, backups, migrations, etc. of the entire virtual environment 12 itself. In one embodiment, each operational action performed by the VMN 300 may be applied to the entirety of the logic simulated by the subject virtual node (e.g., the entirety of the logic performed by the collective CBM set 58 of the subject virtual node). For example, when taking and saving a snapshot of a virtual controller, the VMN 300 not only saves data received, operated on, generated by, and indicative of the virtual controller and its interconnections and operational states, but may also save as part of the snapshot the associated data of modules that execute in conjunction with the virtual controller, even if such modules are hosted on other nodes and / or simulate other physical components. In another example, when taking and saving a snapshot of a virtual CIOC, the VMN 300 may save data corresponding to the virtual machine level of the virtual CIOC, and / or the VMN 300 may save process simulation values observed by the virtual CIOC.
[0094] Dynamic Simulation As described above, the MPDSC system 10 supports dynamic simulation of the entire process plant 100 and / or portions thereof. For example, the MPDSC system 10 provides a real-time simulation that reflects run-time timing, values, and / or other behavior of at least a portion of corresponding physical components and / or physical operating processes. As used herein, the terms "simulation" and "simulation run" are used interchangeably, and a simulation or simulation run is finite; that is, each simulation or simulation run has a respective beginning and a respective end, which may be defined as needed, for example, based on time, parameter values, states, user commands, and / or other criteria.
[0095] Additionally, the MPDSC system 10 provides for manipulation of the simulation, such as, for example, speeding up or slowing down the pace of simulation execution, pausing the simulation, inserting and / or modifying various values, changing initial conditions, etc. A simulation may be performed entirely within the virtual environment 12 of the MPDSC system 10, and / or the simulation may be performed using one or more virtual or simulated components in conjunction with one or more physical components (e.g., a configuration of a controller simulated by a virtual node in the virtual environment 12 may communicate with a physical field device disposed in the physical environment 15 to test the simulated controller behavior). Generally speaking, the MPDSC system 10 provides a platform through which engineers and users can test and inspect draft control strategies and draft operator displays, investigate process improvements, perform operator training, conduct case studies, etc. The VMN 300 manages, coordinates, and drives the simulation activities supported by the MPDSC system 10.
[0096] In particular, the VMN 300 creates, configures, and operates virtual nodes 25, 30x and other virtual components 28, 32, 35, 38, 42x, 60 that simulate at least a portion of the physical plant 100. Virtual nodes 25, 30x that are utilized solely for simulation purposes (and not for runtime control purposes) are interchangeably referred to herein as "simulated nodes." For example, the VMN 300 may generate a mirror simulation system of the entire runtime control system as described by the plant configuration database 172b by utilizing simulated nodes that simulate (in some implementations, simulate down to the MAC address level) integrated physical hardware components such as, for example, the controller 110, the workstation 170a, and / or other physical devices and their corresponding network interconnections. In another example, the VMS 300 may generate respective simulations of one or more individual physical components, each of which may run in a standalone mode or in conjunction with one or more other simulated, virtual, and / or physical components. For example, VMS 300 may create a virtual counterpart in virtual environment 12 of a physical component currently operating in physical environment 15 to test, e.g., new control configurations, upgrades, patches, etc., to be applied to the physical component. In another example, VMS 300 may create a simulation of the MAC address level behavior of a particular physical component. In yet another example, VMS 300 may create a cohesive (e.g., single) simulated node that simulates the real-time operational behavior of a group of physical devices, components, or nodes, such as a control loop or operator display view.
[0097] With regard to configuring the types of data values utilized within the virtual environment 12 and physical environment 15 of the process control system 100, in one embodiment, the system process data definition (which may be configured via the system configuration application 172a and / or via the VMS 300) defines which data values (and / or their types) utilized within the process plant 100 are to be simulated, and the VMS 300 assigns respective data tags (e.g., identifiers) to the data values (and / or their types) to be simulated. For example, the VMS 300 may automatically assign data tags to at least some of the data values and / or data types to be simulated and / or the VMS 300 may receive manually generated data tags, e.g., via the user interface 302, for at least some of the data values and / or data types to be simulated. The assigned data tags of the simulated data values and / or data types may be stored in the virtual environment configuration database 305 and / or in the system configuration database 172b.
[0098] Additionally, VMN 300 drives and / or coordinates the simulation of the entire physical plant 100 and / or portions thereof. To this end, virtual environment 12 provides a simulator API (application programming interface) 310 or other suitable access mechanism through which applications such as user interface 302, IT layer applications 21x, and / or third party or external applications 22x may interface with virtual environment 12 for simulation purposes. In one embodiment, VMN 300 or other computing devices within virtual environment 12 host and / or expose simulator API 310 to other applications.
[0099] 5, the simulator API 310 communicates simulated data values (also referred to herein interchangeably as “simulation data values,” “simulated values,” and / or “simulation values”) to and from the virtual environment 12 and the simulated components contained therein via the I / O switch 25. Generally speaking, simulated runtime process data is distributed between the nodes 28, 30x, 310 and the simulator API 310 via the nodes' respective Pub / Sub layers. For example, a simulated node 28, 30x, 310 may publish runtime process data to one or more other simulated nodes 28, 30x, 310 via the I / O switch 25, and a simulated node 28, 30x, 310 may subscribe to real-time process data generated by one or more other simulated nodes 28, 30x, 310 and received via the I / O switch 25. On the other hand, in one embodiment, simulated data values that are not runtime process data (e.g., data values that are configurable and typically assigned during download time in the physical environment 15) may be distributed between simulated nodes 28, 30x, 310 on a change basis, e.g., only when the respective values of the data change.
[0100] The simulator API 310 is configured with names, data tags, identifiers, data definitions, channel data, etc. of components simulated within the virtual environment 12 (e.g., based on data stored in the virtual configuration database 305), and the simulator API 310 is also configured to communicate using one or more industrial and / or general purpose communication / data protocols, e.g., standardized protocols such as OPC, Ethernet, IPv6, etc. Thus, the simulator API 310 serves as a data distribution and transmission mechanism between the virtual environment 12 and other applications 302, 21x, 22x that are consumers and / or providers of simulation data and that utilize one or more industrial and / or general purpose communication / data protocols. For example, a third party simulation application may utilize the simulator API 310 to inject test values for use by the simulated components, modify initial conditions of a simulation run, etc.
[0101] Additionally or alternatively, the simulator API 310 handles simulation commands provided via the user interface 302 and / or by other applications 21x, 22x. For example, the simulator API 310 may receive simulation commands to speed up and / or slow down the pace of module execution (at least a portion of which is simulated within the virtual environment 12) and / or to speed up and / or slow down the pace of I / O processing, and may drive timing and actions of associated simulated nodes 30x, 28 and / or virtual communication network 45 accordingly. In another example, the simulator API 310 may receive simulation commands to inject and / or modify various data values during the simulation. Furthermore, the simulator API 310 may receive operational simulation commands, such as, for example, to save snapshots, retrieve saved snapshots, restore from saved data, etc., and may implement corresponding actions accordingly. For example, the simulator API 310 may receive simulation commands and, in response thereto, save, retrieve, restore, etc., a simulation of the entire process plant 100 (e.g., to / from the virtual environment configuration database 305 and / or to / from the system configuration database 172b), as well as save, retrieve, restore, etc., a simulation of one or more nodes or components of the process plant 100.
[0102] Generally speaking, the simulation API 310 is stateful. That is, the simulation API 310 is aware of the various states of the simulation and components associated with it during simulation execution (e.g., virtual, physical, and / or simulated devices, virtual, physical, and / or simulated modules, other types of virtual, physical, and / or simulated components, the process being at least partially simulated by the simulation, the state of the overall simulation, etc.) and responds to received commands based on the various states. For example, in response to a save command, the simulation API 310 may save the process data along with data indicating the state of the associated components. In another example, when simulating a modified control module executing in a controller for testing purposes, the simulation API 310 may allow a user to change the state of the associated module to determine how the modified control module responds to different states of the associated module.
[0103] FIG. 6 is a flow diagram of an exemplary method 400 for controlling a node of a process control system of an industrial process plant. At least a portion of an embodiment of the method 400 may be performed by one or more portions of the multipurpose dynamic simulation and runtime industrial or process control (MPDSC) system or platform 10 of FIG. 1 and / or any one or more components thereof, by one or more portions of an embodiment of the virtual nodes 52a, 52b of FIG. 2, by one or more portions of an embodiment of the physical plant environment 100 of FIG. 3 and / or one or more portions of its components, by one or more portions of an embodiment of the I / O switch configuration 200 of FIG. 4, and / or by one or more portions of an embodiment of the virtualized management node 300 of FIG. 5. For ease of illustration, and not by way of limitation, the method 400 is described herein with simultaneous reference to portions of FIGS. 1-5. Additionally, the method 400 may, in embodiments, include more, less, and / or alternative steps than those described herein.
[0104] As illustrated in Figure 6, the method 400 includes communicatively connecting the field devices and the virtual nodes via an I / O switch disposed between the field devices and the virtual nodes, such that the field devices, the I / O switch, and the virtual nodes operate in conjunction during run-time operation of the industrial process plant to, for example, control the industrial process (block 402). For example, the field devices may be similar to one of the field devices 125-132 and 140-146 shown in Figure 3, one of the physical nodes 40a, 40b, 40c, or PNa-PNk of Figure 1, and / or one of the physical nodes 212a-212n, 215a-215n, 218a-218n, or 220a-220n shown in Figure 4. The I / O switch may be implemented, for example, as an embodiment of the I / O switch 25 of Figure 1 and / or one of the I / O switches 202-210 of Figure 4. The virtual node may be similar to, for example, one of virtual nodes 30a, 30b, 30c-30p shown in FIG. 1, virtual nodes 52a, 52b shown in FIG. 2, and / or virtual nodes 212a-212n, 215a-215n, 218a-218n, or 220a-220n shown in FIG. 4.
[0105] In any case, with regard to block 402 of method 400, the field devices communicatively connected to the virtual nodes via the I / O switches are disposed within the physical environment of the industrial process plant and perform physical functions during runtime operation of the industrial process plant to control industrial processes to produce physical products from raw materials or other types of input materials, such as manufacturing, material conversion, etc. For example, the field devices may themselves be valves or other types of devices, may actuate another device, such as a valve or other type of device, may raise or lower temperatures, may take measurements, sense conditions, etc.
[0106] With respect to FIG. 6, the I / O switch is a subscriber of first data generated and published by the field device, and the I / O switch is a publisher of second data indicative of the first data generated by the field device. For example, the I / O switch may receive, via subscription, the first data generated by the field device, e.g., while the field device is operating to control an industrial process during runtime operation of the plant, and the I / O switch may publish the received first data as the second data. In general, the I / O switch may publish and subscribe various data of various devices to which the I / O switch is communicatively connected via one or more publish / subscribe layers or mechanisms, such as pub / sub layers 32a-32p, 35, 38, and 42a-42c shown in FIGS. 1 and 5, and / or pub / sub layers 55a, 55b in FIG. 2.
[0107] Additionally with respect to FIG. 6, virtual nodes are disposed within the virtual environment of the industrial process plant and correspond to field devices and are subscribers to second data published by I / O switches. For example, a virtual node may subscribe to various data of various devices to which it is communicatively connected, and may receive various data to which it subscribes (or has an indication of), via a publish / subscribe layer or mechanism of the virtual node, such as one of pub / sub layers 32a-32p of FIG. 1 or one of pub / sub layers 55a, 55b of FIG. 2. Similarly, a virtual node may publish data for consumption of other nodes via its respective pub / sub layer.
[0108] In some configurations, a virtual node may be a virtual runtime node, such as a virtual controller, a virtual safety controller or logic solver, an I / O card or marshalling system, or other type of node that is a virtualized instance of a physical node that may be utilized within the physical environment of an industrial plant, for example, as described above. In some implementations, a single virtual runtime node may virtualize a group of nodes. For example, a single virtual runtime node may behave as a physical I / O marshalling cabinet and the set of physical I / O cards contained therein.
[0109] In some configurations, a virtual node may be a simulated node that simulates one or more integrated hardware physical components of the process plant's physical environment and optionally their behavior and / or operation, such as a subsystem, device, component of a device, network connection and / or component, down to MAC address level granularity, if desired.
[0110] In either case, the virtual nodes (whether the virtual nodes are virtual runtime nodes or simulated nodes) may include respective component behavior modules (CBMs), which include instruction sets stored on one or more memories of the virtualized node and executed by one or more processors of the virtualized node. The CBMs residing on and executing on the virtualized nodes may govern at least some behavior and / or operation of the virtualized nodes in the manner described above, at least by operating on I / O data. For example, the CBMs of the virtualized nodes may be implemented as control modules or routines, safety logic modules or routines, executable objects, etc. Generally speaking, instances of the CBMs of the virtualized nodes may be utilized by physical nodes of the process plant. That is, different instances of a particular CBM may be downloaded or otherwise provided to the virtual and physical nodes, and the downloaded instances of a particular CBM may be unaware or agnostic as to whether they are executing on a virtual node or a physical node. With particular regard to the virtual nodes of method 400, a virtual node publishes data generated by its CBM via its pub / sub layer, a virtual node receives published data to which it has subscribed via its pub / sub layer, and provides the received data to its CBM so that the CBM can act on the received data.
[0111] 6, during runtime operation of the industrial process plant, the method 400 includes receiving, by the virtual node, second data corresponding to the field device published by the I / O switch (block 405). For example, the virtual node may receive, via its pub / sub layer, the second data published by the I / O switch, where the published second data is based on the first data generated by the field device and subscribed to and received by the I / O switch.
[0112] At block 408, the method 400 includes, during runtime operation of the industrial process plant and by utilizing the component behavior module of the virtual node, operating on the second data, thereby generating control signals based on the second data. For example, a CBM resident and executing on the virtual node may operate on the received second data (e.g., may utilize the received second data as an input) and generate corresponding control signals based on the operation or execution of the CBM. The CBM of the virtual node may be, for example, a control routine or module, a safety logic routine, module, or solver, or another type of object, routine, module, or executable file.
[0113] At block 410, the method 400 causes the control signal indication to be sent to another node, e.g., a receiving node, of the process control system during runtime operation of the industrial process plant, thereby altering the behavior of the other or receiving node (block 410). The other or receiving node may be another virtual node (such as another virtual runtime node or a simulated node) or the receiving node may be a physical node of the industrial process plant.
[0114] In an embodiment of block 410, causing an indication of the control signal to be transmitted to the receiving node includes transmitting, by the virtual node, an indication of the control signal directly to the receiving node.
[0115] In another embodiment of block 410, causing the indication of the control signal to be sent to the receiving node includes publishing, by the virtual node, e.g., via a pub / sub layer of the virtual node, third data indicative of the control signal. In this embodiment, the I / O switch may be a subscriber to the third data published by the virtual node, and the I / O switch may operate on the third data to generate and publish, e.g., via the pub / sub layer of the I / O switch, fourth data indicative of the received third data. In an exemplary implementation of this embodiment, the receiving node is a subscriber to the fourth data published by the I / O switch, and thus the receiving node may receive, via its pub / sub layer, the published fourth data, the fourth data indicative of the control signal.
[0116] In another exemplary implementation of this embodiment, an intervening node may be communicatively disposed between the I / O switch and the receiving node. In this exemplary implementation, the intervening node is a subscriber to the fourth data published by the I / O switch, and thus the intervening node may receive the published fourth data via its pub / sub layer. The intervening node may convert or translate the received fourth data into a communication format native or otherwise known to the receiving node, and transmit and / or publish the converted or translated fourth data to the receiving node via one or more suitable communication links and / or networks, whereby the receiving node receives the control signal indication in its native or known communication format. For example, the intervening node may be similar to one of nodes 40a-40c or 28 shown in FIG. 1, or may be another I / O switch, such as one of I / O switches 202-210 of FIG. 4. In an exemplary configuration, the intervening node may be an I / O hub communicatively disposed between an I / O switch and a plurality of physical devices disposed in the physical environment of the process plant. The plurality of physical devices may or may not include the field device that generated the first data, for example, as described above with respect to block 402. In this exemplary configuration, the I / O hub may be a publisher of data generated by any of the plurality of physical devices to which it is communicatively connected, and may be a subscriber of data utilized by any of the plurality of physical devices and published by another virtual device, an I / O switch, or other publishing node utilizing the MPDSC 10.
[0117] Further with respect to block 410, whether the receiving node receives the fourth data published directly by the I / O switch via a subscription or via an intervening node, the content of the fourth data received by the receiving node (indicative of a control signal generated by the CBM of the virtual node, as described above) may cause the receiving node to change its behavior. As described above, the receiving node may be another virtual node of the industrial process plant (which may be a virtual runtime node or a simulated node), or the receiving node may be a physical node of the industrial process plant. Thus, the content of the fourth data received by the receiving node (via the I / O switch or via an intervening node) may be acted upon by the CBM of the receiving node, thereby causing a change in the behavior and / or operation of the receiving node, e.g., runtime behavior and / or runtime operation. For example, the content of the received fourth data may be indicative of a control signal generated by the virtual node, and the CBM of the receiving node may act on the control signal and change its behavior and / or operation accordingly, e.g., while the industrial process plant is operating at runtime to control an industrial process. In some cases, depending on the role of the receiving node, at least a portion of the control of the industrial process within the process plant may be changed based on the content of the data received by the receiving node and corresponding to the fourth data published by the I / O switch.
[0118] In one embodiment of method 400 (not shown in FIG. 6 ), the virtual nodes described with respect to block 402 are virtual runtime nodes, and method 400 includes communicatively connecting one or more simulated nodes to an I / O switch, the one or more simulated nodes being virtual nodes disposed within a virtual environment of an industrial process plant. At least a portion of the one or more simulation nodes and the I / O switch may be included in a simulation system, for example, that simulates the runtime behavior and / or runtime operation of one or more virtual and / or physical components and / or nodes of the industrial process plant. Indeed, in some scenarios, the one or more simulated nodes may simulate the runtime behavior of their respective virtual and / or physical components and / or nodes in conjunction with the runtime operation of one or more virtual runtime and / or physical nodes of the industrial process plant, for example, while the one or more actual virtual runtime and / or physical nodes are operating during runtime while the industrial process plant is controlling a process.
[0119] To provide a simulation of runtime behavior, each of the one or more simulation nodes may execute, via one or more processors, a respective CBM that is stored on one or more memories of the respective simulation node. As described above, the respective CBMs of the simulated nodes are agnostic or unaware of whether they are running on a simulated node, a virtual runtime node, or a physical node, and thus instances of the respective CBMs may be deployed in various respective physical and / or virtual runtime nodes, components, and / or devices within the physical environment of the process plant. Generally speaking, a simulated node simulates any physical device or component thereof that can be deployed and / or disposed within an industrial process plant, including, but not limited to, a process controller, a safety controller, a safety logic solver, an I / O node, card or device, a wireless device, an Ethernet device, an operator workstation, a user interface device, a tool, a gateway, an electronic marshalling cabinet, a network connection, a MAC address, another type of physical device or component that can be deployed and / or disposed within the physical environment of the industrial process plant, a module, a routine, a function or behavior, a MAC address, a hardware subcomponent of a particular physical device or component, or another portion of a particular physical device or component that can be deployed and / or disposed within the physical environment of the industrial process plant.
[0120] In some embodiments, the method 400 includes executing a simulation run that includes a particular simulated node of one or more simulated nodes of the system or MPDSC 10 (not shown in FIG. 6). In particular, executing the simulation run includes executing a respective CBM of the particular simulated node. A respective component behavior module of the particular simulated node may be executed, thereby generating data, and the data generated by the particular simulated node may be communicated to another node of the MPDSC 10, e.g., a receiving node of the data generated by the particular simulated node. For example, the data generated by the particular simulated node may be transmitted directly from the particular simulated node to the receiving node. In another example, the data generated by the particular simulated node may be published via a pub / sub layer of the particular simulated node, and the receiving node, an I / O switch, or an intervening node communicatively disposed between the receiving node and the I / O switch may be a subscriber of the generated data published by the simulated node. The receiving node may receive the contents of the generated data via a subscriber of the generated data published by the simulated node, as described above. The receiving node may be another virtual node (e.g., another simulated node or another virtual runtime node), or the receiving node may be a physical node. In some implementations, at least one of the simulated nodes or the receiving node may operate in conjunction with other runtime virtual and / or physical nodes during runtime operation of the industrial process plant.
[0121] In some scenarios, following performing a simulation run involving a particular simulation node, method 400 may include downloading or otherwise providing a respective instance of the CBM of the particular simulation node to a virtual runtime node or a physical node of the industrial process plant. For example, the simulation run may test or otherwise prove a desired behavior of the CBM at the particular simulated node, and after the simulated behavior has been proven good and / or approved, the instance of the CBM may be downloaded to the runtime node (whether virtual or physical). Thus, via the MPDSC 10, the simulated behavior may be easily tested and proven (possibly under runtime conditions) and, once approved, easily downloaded or provided for execution at the respective virtual and / or physical runtime node.
[0122] However, not all simulation runs need to be performed in real time or under run-time conditions. Thus, the simulation system may provide a simulation management node and a simulator access mechanism through which the simulation runs may be operated under various conditions as needed. For example, the simulation management node may be implemented using an embodiment of the VMN 300 of FIG. 5, and the simulator access mechanism may be implemented by using an application programming interface (API), function, service, and / or another type of mechanism accessible and exposed to a user and / or other applications, such as the simulator API 310 of FIG. 5. The method 400 may include utilizing the simulator access mechanism to provide and / or receive one or more simulated values utilized during the execution of a simulation run that includes a particular simulated node, for example. Additionally or alternatively, the method 400 may include utilizing the simulator access mechanism to operate on one or more simulation run and / or operation commands, as provided, for example, by a user and / or by other applications (e.g., OT layer applications associated with or associated with an enterprise providing an industrial process control system and / or plant, and / or third party applications).For example, method 400 may include utilizing the simulator access mechanism to perform, as described above, running a simulation run at a run-time pace, speeding up a simulation run to run faster than the run-time pace, slowing down a simulation run to run slower than the run-time pace, setting simulated values of the simulation run, setting initial conditions of the simulation run, pausing the simulation run, setting intermediate conditions of the simulation run, changing the pace of the simulation run, changing simulated values associated with the simulation run, saving or storing data associated with at least a portion of the simulation run, retrieving at least a portion of a saved or stored simulation run, saving or storing a configuration of the simulation run, retrieving a saved or stored configuration of the simulation run, and / or the like.
[0123] In one embodiment, the simulator access mechanism may maintain one or more states associated with a simulation run. The one or more states may be associated with various one or more portions of the simulation run and / or with components and / or devices associated therewith, respectively. For example, the one or more states may correspond to a state of a virtual component, a state of a physical component, a state of a simulated component, a state of a virtual device, a state of a physical device, a state of a simulated device, a state of a virtual module, a state of a physical module, a state of a simulated module, a state of a process being at least partially simulated by the simulation run, a state of the simulation run, and / or another type of state associated with the simulation run, as described above.
[0124] In view of the above, therefore, the novel multi-purpose platform for dynamic simulation and runtime control platform 10 provides many benefits and advantages over known process control systems. For example, because the MPDSC platform 10 supports both simulation and runtime control via virtual components, testing of changes (e.g., upgrades, patches, etc.) can be performed in the virtual environment 12 via simulated components, and upon successful inspection, the simulated components can be easily activated as virtual components of the process plant 100 (e.g., a "load, evaluate, run" bumpless or warm switchover, etc.). Thus, switchover of simulated components to runtime components is more easily accomplished, reducing downtime due to upgrades, patches, and planned maintenance. Additionally, the amount of resources utilized to provide virtualized hot spares of various components and bring the virtualized hot spares online during failure or error scenarios is also significantly reduced.
[0125] Additionally, the provision of run-time virtual components by the MPDS platform 10 enables independence between hardware and software within the plant 100. For example, controller software utilized during run-time of the process control system 100 may be upgraded within the run-time virtual controller without requiring upgrading or modifying any physical controller hardware. Similarly, due to hardware / software independence, the MPDS platform 10 enables the hardware of the process plant 100 to be upgraded independently of software upgrades.
[0126] It should be noted that the provision of run-time virtual components and their operation and / or management (e.g., via VMS 300 of MPDSC platform 10) also enables easy and low-cost system scalability, as additional virtual components can be easily implemented within virtual environment 12 without having to pay for installing, testing, commissioning, and inspecting different physical hardware components and the required cabinets, wiring, etc. Indeed, as additional virtual components are needed to support system 100, the virtual components can be created as needed, up to the processing and / or memory limitations of the physical computing devices and / or hardware on which the virtual components 12 are implemented, and then the additional physical computing devices and / or hardware can simply be added thereto.
[0127] The virtual environment 12 provided by the MPDS platform 10 allows for the creation of digital pairs of various components and / or virtual simulations of the entire process plant 100, for example, for testing, hot spare, upgrades, patches, planned maintenance, and / or other purposes. The digital pairs (e.g., of specific components and the entire process plant 100) may be updated in lock-step with updates to their respective specific physical components. That is, state information may be passed from physical nodes to virtual nodes via the MPDSC platform 10. In effect, the MPDSC platform 10 provides enhanced online testing of changes and / or different scenarios (e.g., "what-if" scenarios), in some circumstances in conjunction with run-time virtual and / or physical components of the process plant 100. Due to the common MPDS platform 10 (and, in particular, the virtual environment 12 of the MPDS platform 10) being architected and utilized for both simulation and run-time control purposes, off-simulation is easily accomplished without any configuration changes.
[0128] Still further, because the MPDS platform 10 abstracts the I / O of the process plant 100 away from being specifically and directly associated with specific hardware, the I / O configuration within the plant 100 is more flexible and easily changed and adapted not only during run-time, but also during upgrades, maintenance, failures, and the like. Importantly, communication connections between I / O devices and other components (e.g., CIOCs and controllers) are no longer limited by the physical ports available on the physical I / O devices. With I / O abstracted within the MPDS platform 10, any number of communication connections between virtual I / O devices and other components is logically possible up to the processing and / or memory limitations of the physical computing device and / or hardware on which the virtual environment 12 is implemented, after which additional physical computing devices and / or hardware may simply be added to it. Similarly, due to the abstraction of I / O within the MPDS platform 10, control modules and / or other CBMs 58 may be assigned to any virtual host device or component without concern for the I / O location and / or loading of the host device or component that is required when utilizing a physical host device or component. That is, as described above, virtual components (whether utilized for simulation or runtime control purposes) may operate utilizing I / O from physical components or from other virtual components. Thus, MPDS platform 10 can abstract redundancy, retries, and other mechanisms currently tied to specific implementations of currently known technology (e.g., by utilizing I / O switches 25) so that the abstractions can be utilized across multiple different types of applications, scenarios, and implementations, e.g., with selected customization and dedication of various abstractions for specific implementations and / or applications. As a result, MPDS platform 10 can support a greater number and types of I / O systems (compared to currently known technology) in a consistent and easily scalable manner.
[0129] When implemented in software, the applications, services, virtual devices, virtual machines, virtual entities, etc. described herein may be stored in any tangible, non-transitory computer-readable memory, such as on a magnetic disk, laser disk, solid-state memory device, molecular memory storage device, or other storage medium, in the RAM or ROM of a computer or processor. It should be noted that while the exemplary systems disclosed herein are disclosed as including software and / or firmware running on hardware, among other components, such systems should be considered merely exemplary and not limiting. For example, it is contemplated that any or all of these hardware, software, and firmware components may be embedded solely in hardware, solely in software, or in any combination of hardware and software. Thus, while the exemplary systems described herein are described as implemented in software running on a processor of one or more computing devices, those skilled in the art will readily appreciate that the examples provided are not the only way to implement such systems.
[0130] Thus, while the invention has been described with reference to specific examples, it will be apparent to those skilled in the art that these examples are illustrative only and are not intended to be limitations of the invention, and that modifications, additions, or deletions may be made to the disclosed embodiments without departing from the spirit and scope of the invention.
Claims
1. 1. A system for an industrial process plant, comprising: a process control system including one or more control loops operative to control an industrial process during run-time operation of the industrial process plant; each control loop of the one or more control loops includes a respective field device disposed within a physical environment of the industrial process plant and a respective process control device disposed within a virtual environment of the industrial process plant; each of the control loops utilizes an I / O switch to distribute each of the abstracted I / O data within each of the control loops, the I / O switch being communicatively disposed between each of the field devices and each of the process control devices, the I / O switch being a subscriber of first data generated and published by each of the field devices, and the I / O switch being a publisher of second data indicative of the first data generated by each of the field devices; system.
2. The system of claim 1 , wherein the I / O switch distributes abstracted I / O data of at least one control loop to multiple recipient nodes or devices.
3. 2. The system of claim 1, wherein the I / O switch and each of the respective process control devices include a respective publisher / subscriber layer through which the respective abstracted I / O data is distributed within the respective process control loop.
4. The system of claim 1 further comprising the I / O switch.
5. Each of the process control devices is a subscriber to the second data and generates a control signal for controlling the industrial process based on content of the second data; or 5. The system of claim 4, wherein the I / O switch is a subscriber of third data indicative of the control signal published by the respective process control device and is a publisher of fourth data indicative of the third data.
6. a first intervening device communicatively disposed between the respective field device or the I / O switch and the respective field device is a subscriber of the fourth data, and the field device operates in response to the contents of the fourth data; or 6. The system of claim 5, wherein another process control device or a second intervening device communicatively disposed between the I / O switch and the other process control device is a subscriber of the fourth data, and the other process control device controls the industrial process based on the content of the fourth data.
7. 7. The system of claim 6, wherein at least one of the first intervening device or the second intervening device is a respective I / O hub communicatively disposed between the I / O switch and each of a plurality of physical devices of the industrial process plant.
8. The system of claim 6 , wherein the another process control device is a physical process controller or a physical safety controller.
9. The system of claim 1 , wherein at least one of the one or more process control devices is a virtual process controller or a virtual safety controller that utilizes the I / O switch.
10. 10. The system of claim 9, wherein at least one of the one or more process control devices is a simulated process controller that utilizes the I / O switch.
11. the simulated process controller is a virtual run-time node that operates as the simulated process controller during the run-time operation of the industrial process plant; 11. The system of claim 10, wherein when the simulated process controller is approved, the virtual runtime node changes from operating as the simulated process controller to operating as a virtual process controller or a virtual safety controller for controlling the industrial process during the runtime operation of the industrial process plant.
12. the one or more process control devices are included in a number of virtual nodes disposed within the virtual environment of the industrial process plant; 5. The system of claim 1, wherein the I / O switch communicates at least a portion of the abstracted I / O data to at least one of one or more other virtual nodes included in the plurality of virtual nodes or one or more physical nodes of the industrial process plant.
13. the plurality of virtual nodes comprises at least one of a virtual process controller, a virtual safety controller, a virtual safety logic solver, a virtual I / O card, device, or node, a virtual wireless device, a virtual Ethernet device, a virtual operator workstation, a virtual user interface device, a virtual tool, a virtual gateway, a virtual electronic marshalling cabinet or system, a virtualization of another type of physical device or component disposed within the physical environment of the industrial process plant, or a simulated node that simulates at least a portion of a physical node disposed within the physical environment of the industrial process plant; or The system of claim 12 , wherein the plurality of physical nodes comprises one or more physical process controllers and / or one or more physical safety controllers.
14. 13. The system of claim 12, further comprising a virtualization management node that creates, configures, and operates the plurality of virtual nodes based on one or more configurations of the process control system stored in a configuration database of the process control system.
15. The system of claim 14 , wherein the virtualization management node further creates and configures the I / O switches.
16. the virtualization management node operates the plurality of virtual nodes in response to one or more conditions of a physical computing platform supporting the virtual environment, the physical computing platform including one or more computing devices, the one or more conditions of the physical computing platform occurring dynamically during run-time operation of the industrial process plant; 15. The system of claim 14, wherein the operation of the plurality of virtual nodes by the virtualization management node responsive to the dynamic occurrence of the one or more conditions of the physical computing platform includes at least one of: deleting a virtual node included in the plurality of virtual nodes, creating another virtual node, activating a standby virtual node, reallocating resources, storing respective configurations of at least some of the virtual nodes, storing runtime data corresponding to at least some of the virtual nodes, storing simulation data corresponding to at least some of the virtual nodes, storing states of at least some of the virtual nodes, storing other data corresponding to at least some of the virtual nodes, restoring at least some of the virtual nodes from respective stored data, or another operational action.
17. 5. The system of claim 1, further comprising an edge gateway communicatively connected to one or more applications, each of the one or more applications being a respective consumer of at least a portion of a respective one of the abstracted I / O data.
18. 20. The system of claim 17, wherein the I / O switch, the respective process control device, and the edge gateway system each include a respective publish / subscribe layer through which one or more portions of the abstracted I / O data are transmitted and / or received.
19. 20. The system of claim 17, wherein the edge gateway system includes one or more safety mechanisms utilized in delivering at least the portion of each of the abstracted I / O data between the I / O switch and the one or more applications.
Citation Information
Patent Citations
Integration of process modules and expert systems in process plants
JP2013041596A
Open architecture industrial control system
US20180321662A1
Distributed software-defined industrial systems
WO2019099111A1