Smart Search Capabilities in Process Control Systems
Patent Information
- Application Number
- JP2020154068
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2019-09-20
- Filing Date
- 2020-09-14
- Publication Date
- 2025-02-26
- Estimated Expiration
- 2040-09-14
Smart Images

Figure 0007636146000001 
Figure 0007636146000002 
Figure 0007636146000003
Abstract
Description
[Technical field]
[0001] The present disclosure relates generally to process plants and process control systems, and more specifically to providing search capabilities for performing search queries of process plant related data in a process plant / process control system and securing the delivery of process plant related data from the process plant / process control system to external systems to present the process plant related data to devices remote from the process plant. [Background technology]
[0002] Distributed process control systems, such as those used in chemical, petroleum, pharmaceutical, paper product processing, or other process plants, typically include one or more process controllers communicatively coupled to one or more field devices via an analog, digital, or integrated analog / digital bus, or via a wireless communication link or network. The field devices, which may be, for example, valves, valve positioners, switches, and transmitters (e.g., temperature, pressure, level, and flow sensors), are positioned within the process environment and generally perform physical or process control functions, such as opening and closing valves, measuring process parameters such as pressure, temperature, etc., 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 Fieldbus protocol, may also perform control calculations, alarm functions, and other control functions typically implemented within a controller. A process controller, also typically located within a plant environment, executes a controller application that executes different control modules that receive signals indicative of process measurements made by and / or other information regarding the field devices, e.g., make process control decisions, generate control signals based on the received information, and interface with control modules or blocks that execute 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.
[0003] Information from the field devices and controllers is typically made available 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 throughout the process plant, or throughout a portion of the process plant. These hardware devices execute applications that may enable operators to perform functions related to the control of the process and / or operation of the process plant, such as, for example, changing settings of process control routines, modifying the operation of control modules in controllers or field devices, 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 and wireless communication paths.
[0004] As an example, the DeltaV™ control system sold by Emerson Automation Solutions includes multiple applications stored in and executed by different devices located at various locations within 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 within 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 viewing applications to display data to an operator and to allow the operator to change settings such as set points within a process control routine. Each dedicated controller, and in some cases one or more field devices, stores and executes respective controller applications that execute the control modules assigned to them and downloaded 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 on the same workstation as the configuration application.
[0005] Generally speaking, a process control system of a process plant includes field devices, controllers, workstations, and other devices interconnected by a set of hierarchical networks and buses. Similarly, the process control system may be connected with various business and external networks to, for example, reduce manufacturing and operation costs, increase productivity and efficiency, provide timely process call control and / or process plant information, and the like. Meanwhile, the interconnection of the process plant and / or process control system to enterprise and / or external networks and systems increases the risk of cyber intrusion and / or malicious cyber attacks that may result from anticipated vulnerabilities in commercial systems and applications, such as those used in enterprise and / or external networks. Cyber intrusion and malicious cyber attacks of the process plant, network, and / or control system may adversely affect the confidentiality, integrity, and / or availability of information assets, which are generally similar vulnerabilities to those of general-purpose computing networks. However, unlike general-purpose computer networks, cyber intrusion of the process plant, network, and / or control system may result in damage, destruction, and / or loss of plant equipment, products, and other physical assets, as well as loss of human life. For example, a cyber intrusion may cause processes to become uncontrollable, thereby resulting in explosions, fires, floods, exposure to hazardous materials, etc. Therefore, protecting communications associated with process control plants and systems is of paramount importance.
[0006] As a result, process plant personnel, such as operators, are unable to view process plant related data indicative of the run-time operation of the process plant from remote sources, such as mobile devices or vehicle head units. Additionally, process plant personnel interact with operator display applications that provide displays and generate reports on the operational status of control systems or devices within the process plant, but the operator display applications typically do not allow users to search for items within the process plant, such as control modules, alarms, the amount of product being produced in a particular time period, etc. Each data point within the process plant may have several descriptors and aspects, such as a run-time status, which represents a physical measurement or set value, configuration, current value, mode, range, status, quality, and other descriptors of that data point. As a result, the complexity of process plant related data within a process plant can be very high, making it difficult to search for specific data items within such large data sets. Without a context that provides situational awareness of the run-time data, the search becomes even more difficult. Summary of the Invention
[0007] Disclosed herein are techniques, systems, apparatus, components, devices, and methods for providing search capabilities within a process plant and for remotely receiving and viewing process plant related data. Such techniques, systems, apparatus, components, devices, and methods may be applied to industrial process control systems, environments, and / or plants, which are also referred to interchangeably herein as "industrial control," "process control," or "process" systems, environments, and / or plants. Typically, such systems and plants provide control of one or more processes that operate to manufacture, refine, transform, create, or produce a physical substance or product in a distributed manner.
[0008] To provide search capabilities within the process plant, the process plant search query server receives and analyzes process plant search queries from software modules and / or user interface devices, such as operator workstations, mobile devices such as smart phones or tablets, vehicle head units, etc. The process plant search queries may be search queries related to process plant entities within the process plant, such as control modules, alarms, process flow modules, process parameter data for the process plant entities, product parameter data for products produced by the process plant entities, amount of product being produced in a particular time period, etc.
[0009] The process plant search query may be provided by a user in a natural language format, such as "show me the alarms in the boiler unit." The process plant search query server then analyzes the process plant search query to identify the subject of the search query (e.g., alarms), modifiers or filters for filtering search results (e.g., alarms specific to boiler units), and identify the context of the process plant search query (e.g., the user is a plant supervisor at a process plant in Houston, Texas, and monitors plant area A, which has one boiler unit). The process plant search query server then retrieves process plant related data related to the process plant search query. For example, the process plant search query server may retrieve the process plant related data from a context knowledge repository that organizes the process plant related data according to semantic relationships between the process plant related data and process plant entities. In the above example, the process plant search query server may retrieve process plant related data from the context knowledge repository for each of the alarms corresponding to the boiler units in plant area A of the Houston plant.
[0010] The process plant search query server then generates a set of process plant search results using the retrieved process plant related data. For example, the set of process plant search results may include six process plant search results, each corresponding to a different alarm. The process plant search query server may then provide the set of search results for presentation by a user interface device. For example, the search results may be presented graphically on a user interface or in audio form via a speaker. In some implementations, each search result includes a selectable link to additional information about the search result. For example, a display of the search results on a user interface device may present a name for each of the alarms (e.g., alarm A, alarm B, alarm C, etc.), each of which may include a selectable link to additional information about the alarm. When one of the names is selectable, the user interface device may present detailed information about the alarm (e.g., the type of alarm, the alarm priority, the alarm message, the control module associated with the alarm, etc.). The user interface device may also present a process flow module that graphically depicts the alarm and the process plant entity that corresponds to the alarm. The display of search results may present a preview of detailed information about the alarm, such as a thumbnail image of a control module or process flow module that graphically depicts the alarm.
[0011] In some implementations, the process plant search results may be ranked and presented in ranked order on the search result display. For example, the process plant search query server may assign a score to each of the process plant search results according to their relevance to the process plant search query. More specifically, the process plant search query server may determine that high priority or critical alarms are more relevant to the process plant search query than low priority alarms. Thus, process plant search results corresponding to high priority or critical alarms may be ranked higher than process plant search results corresponding to low priority alarms. Thus, process plant search results corresponding to high priority or critical alarms may be presented above process plant search results corresponding to low priority alarms on the search result display.
[0012] Additionally, the presentation of the process plant search results may be tailored based on the type, size, and / or capabilities of the user interface device. If the user interface device has a display but no speakers, the process plant search results may be presented graphically. If the user interface device has speakers but no display, the process plant search results may be presented audibly. Additionally, if the user interface device is of a particular type or has a screen size below a threshold size (e.g., a mobile device), the process plant search query server may provide a single process plant search result for display on the user interface device (e.g., the highest ranked process plant search result). On the other hand, if the user interface device has a screen size above the threshold size (e.g., an operator workstation), the process plant search query server may provide a set of process plant search results for display on the user interface device.
[0013] In some implementations, the process plant search query server interacts with process plant related data generated within the process plant. In this manner, the process plant search query server may provide a user interface device with search results of process flow modules, control modules, etc. that are communicatively coupled to controllers and field devices within the process plant. A user may then interact with the process flow modules, control modules, etc. such that modifying the process plant related data contained within the process flow modules, control modules, etc. results in modifications to the online process plant. For example, a user may adjust a set point value via a user control on a display of the process flow module. The user interface device may then communicate with the controller to adjust the set point value in the online process plant.
[0014] In other implementations, the process plant search query server does not directly interact with the process plant related data generated within the process plant. Instead, a portion of the process plant related data generated within the process plant is replicated and provided to the edge-facing components via a unidirectional data diode. In this manner, a user may view a replica of the process plant related data representing activity at the online process plant without interacting with controllers, field devices, or other devices operating at the online process plant. Thus, the process plant search results and / or other data from the process plant search query server may be exposed to external sources that are not authorized to communicate with the process plant equipment, such as mobile devices, vehicle head units, etc., including the level of security required for authorized devices. [Brief description of the drawings]
[0015] [Figure 1] FIG. 1 is a block diagram of an example edge gateway system for a process plant or process control system. [Diagram 2] 1 is a block diagram of an example process plant or process control system showing, among other things, interconnections between various example components of the process control system, the process control system itself, and other systems and / or networks. [Diagram 3] 1 illustrates a graphical representation of an example contextual knowledge repository that stores process plant related data for a process plant or process control system. [Figure 4] 1 illustrates a block diagram of an example process plant search query server. [Diagram 5] 1 illustrates an example process plant display including a search bar for entering a process plant search query. [Figure 6] 1 illustrates an example search result display of process plants, including process plant search results responsive to a process plant search query. [Figure 7] 7 illustrates an example detailed search result display that may be presented in response to selection of the process plant search result included in FIG. 6. [Figure 8] 1 illustrates another example process plant search result display, including process plant search results responsive to a process plant search query. [Figure 9] 1 illustrates a display of a vehicle head unit for presenting process plant related data at a location remote from the process plant. [Figure 10] 1 illustrates an example of process plant related data presented to a vehicle head unit. [Figure 11] 1 illustrates another example of process plant related data presented to a vehicle head unit. [Figure 12] FIG. 1 is a flow diagram illustrating an example method for providing process plant search results in response to a process plant search query. [Figure 13] FIG. 1 is a flow diagram illustrating an example method for presenting process plant search results in response to a process plant search query. [Figure 14]FIG. 1 is a flow diagram depicting an example method for presenting process plant related data in a vehicle head unit. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0016] As discussed above, the process plant related data is replicated and received at the computing device in a secure manner. Once the process plant related data is received in a secure manner, it may be provided to an external source, such as a mobile device or a vehicle head unit, that is not authorized to communicate with the process plant, controllers, field devices, or other devices within the process plant. The process plant related data may be provided to the external source to present reports, graphical representations of control modules and process flow modules, and other information related to the process plant that process plant personnel would normally view at a plant workstation. In this manner, process plant personnel may view this information remotely without the risk that unauthorized personnel may be able to control devices within the process plant from the external source.
[0017] Additionally, process plant related data may be presented as process plant search results in response to a process plant search query generated on a user interface device, which may operate within the process plant (e.g., an operator workstation, a mobile workstation) or externally (e.g., a mobile device, a vehicle head unit, a desktop or laptop computer, a wearable device, etc.).
[0018] Protecting process plants and process control systems from cyber intrusions and malicious cyber attacks typically involves the use of a hierarchical or leveled security hierarchy, with at least some layers or levels protected using firewalls and other security mechanisms. Using the Purdue Model for Control Hierarchy logical framework standardized by the International Society of Automation (ISA) 95.01-International Electrotechnical Commission (IEC) 62264-1 as an exemplary framework, process control systems are typically classified as security levels 0-2 (e.g., levels with a high level of confidence in the safety and validity of messages, packets, and other communications), while manufacturing, corporate, and enterprise systems are typically classified as security levels 3-5 (e.g., levels with a low level of confidence). For example, process plant systems, networks, and devices at security levels 0-3 may be protected from threats from corporate networks at security levels 4-5 and / or from any external networks above security level 5 that utilize the corporate network, for example, by using a demilitarized zone (DMZ) and / or one or more firewalls. However, as more services and applications that manipulate process plant related data move to run remotely, e.g., outside of the network and process plant (e.g., security levels 4 and / or 5 within the enterprise or business) or on external systems, and / or even on networks and systems external to the enterprise or business (e.g., above security level 5 over the Internet or other public networks), more powerful techniques are needed to prevent the process plant systems, networks, and devices from being compromised.
[0019] The novel systems, components, apparatus, methods, and techniques described herein address these and other security issues associated with process plants and their networks, and are particularly directed to securely delivering process plant-related data to one or more external systems that are consumers of the process plant-related data.
[0020] To illustrate, FIG. 1 is a block diagram of an exemplary edge gateway system 1 that securely distributes process plant related data from a process plant 5 to one or more external systems 8. The edge gateway system 1 includes a field facing component 10 that is communicatively connected to an edge facing component 12 via a data diode 15. The field facing component 10 includes one or more processors 18 and one or more non-transitory memory or data storage devices 20 that store at least one set of data and at least one set of computer executable instructions, the at least one set of computer executable instructions being executable by the one or more processors 18. For example, as shown in FIG. 1, the one or more memories 20 of the field facing component 10 store respective data sets, such as one or more interest lists 22, a releasable data type system 24, and optionally other data sets (not shown). The one or more memories 20 of the field facing component 10 further store computer executable instructions for a data typer 25, and may also store other sets of computer executable instructions (not shown). The field facing components 10 are communicatively connected to one or more process plant communication networks, data networks, and / or links 28, which may include any number of wired and / or wireless communication networks, data networks, and / or links that communicatively connect various devices, and / or other data sources 30 associated with the process plant 5 and that generate data during operation of the process plant 5 to control an industrial process, for example. A more detailed description of embodiments of the field facing components 10 and subcomponents thereof of the edge gateway system 1 are provided elsewhere within this disclosure.
[0021] The edge-facing component 12 of the edge gateway system 1 includes one or more processors 35 and one or more non-transitory memory or data storage devices 38 that store at least one set of data and at least one set of computer-executable instructions, the at least one set of computer-executable instructions being executable by the one or more processors 35. For example, as shown in FIG. 1, the one or more memories 38 of the edge-facing component 12 store respective data sets corresponding to the data lake 40 and the context knowledge repository 42, and the one or more memories 38 of the edge-facing component 12 store at least a partial copy 24B or replica of the exposeable data type system 24A of the field-facing component 10, respective computer-executable instructions for the context knowledge miners 45, and one or more access mechanisms 48 for the context knowledge repository 42. Although not shown in FIG. 1, it will be appreciated that the one or more memories 38 of the edge-facing component 12 can store other data sets and / or other sets of computer-executable instructions. As also shown in FIG. 1 , the edge-facing components 12 of the edge gateway system 1 are communicatively connected to one or more external systems 8 via one or more external communication networks, data networks, and / or links 50. The one or more external communication networks, data networks, and / or links 50 may include any number of wired and / or wireless communication networks, data networks, and / or links, and may include any number of private and / or public networks and / or links. The one or more external systems 8 may each be implemented using any suitable technology, such as server banks, cloud computing systems, and may include any number of public and / or private computing systems that may run various applications (third-party applications, websites, etc.). A more detailed description of embodiments of the edge-facing components 12 and their subcomponents is provided elsewhere within this disclosure.
[0022] As shown in FIG. 1, the field facing component 10 and the edge facing component 12 are interconnected via a data diode 15 (although in some implementations (not shown) of the edge gateway system 1, the data diode 15 may be omitted and the field facing component 10 and the edge facing component 12 may be directly connected or may be integral and be a single logical and / or physical component). In any case, as shown in FIG. 1, the data diode 15 includes one or more transmission media through which data (e.g., electronic data) is transmitted from the field facing component 10 to the edge facing component 12, and the data diode 15 is the only communication connection between the field facing component 10 and the edge facing component 12. In a preferred embodiment, the data diode 15 is unidirectional, such that any and all types of data (e.g., signaling data, control data, management data, payload data, etc.) flow only from the field facing component 10 to the edge facing component 12 and do not flow (and indeed, in some embodiments, cannot physically flow) from the edge facing component 12 to the field facing component 10. That is, data diode 15 may be physically and / or logically configured to prevent any and all types of data (e.g., signaling data, control data, management data, payload data, etc.) from flowing from edge facing component 12 to field facing component 10. In one example, unidirectional data diode 15 is implemented using fiber optic links or cables. In another example, the software and / or hardware of unidirectional data diode 15 may alternatively be configured to prevent the flow of any type of data (e.g., signaling data, control data, management data, payload data, etc.) from edge facing component 12 to field facing component 10. For example, physical ports of edge facing component 12 that would otherwise receive data from one or more external systems 8 may be blocked, disabled, and / or omitted.
[0023] Generally speaking, the edge gateway system 1 securely connects and / or bridges the process plant 5 and associated systems at a lower numerical security level with one or more systems 8 at a higher numerical security level. For example, with reference to the Purdue model (or other similar security hierarchy), the data sources 30 and networks / links 28 through which the edge gateway system 1 obtains process plant related data may be at lower numerical security levels (e.g., security level 0 to security level 2) and may include, for example, process control systems, safety instrumented systems, configuration systems, analysis systems, communication / networking systems, asset management systems, diagnostic and / or testing tools and / or systems, commissioning tools and / or systems, user devices and / or operator interfaces, historian systems, batch systems, and other systems, networks, and / or applications associated with the process plant 5. Thus, for ease of discussion herein, and not for purposes of limitation, the term "process plant 5" is used to collectively refer to the physical process plant and other systems associated with and communicatively coupled to the physical process plant that generate and / or communicate data at the lower numerical security levels.
[0024] In the edge gateway system 1 of FIG. 1 , the field facing components 10 that acquire and initially process the process plant related data generated by the process plant 5 may be at security level 2 to security level 3, and the data diode 15 and edge facing components 12 may be at security level 3. The one or more external systems 8 may be at security level 4 or higher and may include any number of public and / or private systems and various applications running thereon, such as enterprise applications, third party applications, publicly available applications, websites, etc. In this manner, the edge gateway system 1 securely distributes data generated by the process plant related systems, networks, and / or applications 5 at a lower numbered security level to systems, networks, and / or applications 8 at a higher numbered security level.
[0025] In particular, as shown in FIG. 1, the field facing components 10 of the edge gateway system 1 obtain or collect data from data sources 30 according to one or more interest lists 22 stored in the field facing components 10. The interest lists 22 indicate particular process plant related data generated by the process plant 5 in association with the plant 5 operating to control an industrial process, the indicated process plant related data being exposable (e.g., exposable) to external systems, networks, and / or applications 8. In this manner, the interest lists 22 included in the edge gateway system 1 provide an initial level field facing security such that protected data is not inadvertently released from the process plant 5 to the external systems 8. The interest lists 22 may indicate particular interest data and / or combinations thereof, such as runtime data, event data, historical data, configuration data, and / or other types of process plant related data generated by devices, components and / or systems associated with the process plant 5 of lower numerical security levels (e.g., security levels 0-2). Interest list 22 may be configured and / or defined via an Interest Studio (not shown in FIG. 1), which is described in more detail elsewhere in this disclosure.
[0026] Further, in the field facing component 10, the data typer 25 types each of the retrieved interest list data according to a publishable data type system 24. Generally speaking, the publishable data type system 24 defines a system of data types (including data definitions, names, values, fields, structures, classes, objects, etc.) that are published or made available to the external system 8. Furthermore, the publishable data system 24 defines mappings, conversions, groupings, and / or other arrangements of the process plant related data types into the publishable data types such that the process plant related data content may be utilized and understood by the external system 8. As used herein, the term "process plant related data types" generally refers to data types (e.g., data definitions, names, values, fields, structures, classes, objects, etc.) that are defined and / or configured for use in the applications, devices, components, systems, and / or networks of the process plant 5. In one embodiment, the publishable data type system 24 may be defined or configured via an interest studio (e.g., in a manner as described elsewhere in this disclosure). In any event, the exposeable data system 24 enables the external system 8 to interpret process plant related data generated by associated lower security level systems without the external system 8 having to be aware of any internal data configuration of the plant 5 and without the external system 8 having to query and / or initiate communication with and / or send responses to the process plant 5. In this manner, the exposeable data type system 24 and data typers 25 of the edge gateway system 1 further protect the process plant 5 from possible security breaches from the external system 8. The exposeable data type system 24 and data typers 25 are described in more detail elsewhere in this disclosure.
[0027] At least through the use of the publicly accessible data type system 24 and data typer 25, the data diode 15 may be a truly unidirectional data diode. Currently known data diodes provide a unidirectional flow of content data, but also allow for a bidirectional flow of signaling, control, and / or management material by thus allowing acknowledgments and / or error conditions to be communicated from the content data receiver to the content data sender. However, the data diode 15 of the edge gateway system 1 may be truly unidirectional in that there is no data flow of any type from its content data receiver to its content data sender. Indeed, in an embodiment, the data diode 15 is physically configured to prevent any type of data (e.g., signaling, control, management, content, etc.) from being distributed from the edge facing component 12 to the field facing component 10, such as in an embodiment in which the data diode 15 is implemented via an optical transmission medium. Thus, at least through the truly unidirectional nature of the data diode 15, the data diode 15 of the edge gateway system 1 further protects the process plant 5 from possible security breaches from external systems 8.
[0028] In the edge-facing component 12 of the edge gateway system 1, the typed content data received from the field-facing component 10 via the data diode 15 is stored in the data lake 40. The context knowledge miner 45 mines the data lake 40 to discover relationships and associations between the various content data stored in the data lake 40 and creates / modifies / updates the context knowledge repository 42 so that the context knowledge repository 42 includes both the received field content data as well as an indication of the discovered relationships. In this manner, the context knowledge repository 42 stores both the process plant related content data (e.g., runtime data, event data, historical data, and / or other types of data provided by the process plant 5) and context data indicating relationships between the provided process plant related content data, conditions corresponding to the generation, delivery, and / or receipt of the process plant related content data within the process plant 5, and / or context of other types of process plant related content data. The knowledge stored in the context knowledge repository 42 can be exposed (e.g., made available) to one or more external systems 8.
[0029] Indeed, the edge facing components 12 provide one or more access mechanisms 42 through which the external systems 8 may access at least a portion of the knowledge stored in the context knowledge repository 48. Each access mechanism may include an additional level of protection against possible security breaches from the external systems 8. For example, the access mechanisms 48 may be implemented using application programming interfaces (APIs), containers, etc. to help prevent external systems from gaining authorized access to the context knowledge repository 42 and / or the process plant 5. The edge facing components 12 of the edge gateway system 1 and its subcomponents are discussed in more detail elsewhere in this disclosure.
[0030] Generally speaking, the features, components, and architecture of the edge gateway system 1 provide nearly unlimited access to process plant related data from external systems 8 in a highly secure manner and without impacting the performance of the process plant 5. Furthermore, when the edge gateway system 1 provides the process plant related data to the external systems 8 in a contextual manner, e.g., providing process plant related content data within the context of the configuration of the process plant 5, the external systems 8 may more quickly and easily find and use the process plant related data. Furthermore, the edge gateway system 1 enables a variety of different types of applications, such as mobile connectivity applications, advanced analytics applications, open systems technology applications (e.g., Node.JS, Docker, Linux, etc.), custom applications, IoT applications, IIoT applications, business and / or enterprise applications and / or enterprise applications (e.g., Excel, Power BI, etc.), and / or other types of applications, to operate securely and easily with contextual knowledge corresponding to the process plant 5. Additionally, the edge gateway system 1 is easily adaptable to aggregate process plant related data from multiple process plants to discover relevant aggregated knowledge therefrom, as well as to aggregate data from external systems with higher security levels (such as weather systems, supply chain systems, financial systems, etc.) to discover relevant aggregated knowledge therefrom.
[0031] Figure 2 is a block diagram of an example process plant 100 configured to control an industrial process during online or runtime operation, from which process plant related information may be securely distributed via an embodiment of an edge gateway system 1. For example, the process plant 5 of Figure 1 may include at least a portion of the process plant 100 of Figure 2. As shown in Figure 2, the process plant 100 is communicatively connected to an edge gateway system 102, which may be, for example, an embodiment of the edge gateway system 1 of Figure 1.
[0032] The process plant 100 (also referred to interchangeably herein as a process control system 100 or process control environment 100) includes one or more process controllers that receive signals indicative of process and / or other types of measurements made by field devices, process this information to implement control routines, and generate control signals that are transmitted over wired or wireless process control communication links or networks to other field devices to control the operation of an industrial process within the plant 100. Typically, at least one field device performs a physical function (e.g., opening or closing a valve, raising or lowering a temperature, taking measurements, sensing a condition, etc.) to control the operation of the process. Some types of field devices communicate with a controller using I / O devices. 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 system 100.
[0033] 2 shows a process controller 111 that is communicatively coupled to wired field devices 115-122 via input / output (I / O) cards 126 and 128, and to wireless field devices 140-146 via a wireless gateway 135 and a process control data highway or backbone 110. The process control data highway 110 may include one or more wired and / or wireless communication links and may be implemented using any desired or suitable communication protocol, such as, for example, an Ethernet protocol, IP or other packet protocol, etc. In some configurations (not shown), the controller 111 may be communicatively coupled to the wireless gateway 135 using one or more communications networks other than or in addition to the backbone 110, such as by using any number of other wired or wireless communications links supporting one or more communications, data, and / or industrial automation 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®, HART-IP, Profibus, FOUNDATION® Fieldbus, etc.
[0034] The controller 111 may be, by way of example, a DeltaV™ controller sold by Emerson Process Management and may operate to implement a batch or continuous process using at least some of the field devices 115-122 and 140-146. In one embodiment, in addition to being communicatively connected to the process control data highway 110, the controller 111 is also communicatively connected to at least some of the field devices 115-122 and 140-146 using any desired hardware and software, for example, associated with standard 4-20 mA devices, I / O cards 126, 128, and / or any smart communication protocol, such as FOUNDATION® Fieldbus protocol, HART® protocol, WirelessHART® protocol, etc. In FIG. 2, the controller 111, the field devices 115-122, and the I / O cards 126, 128 are wired devices and the field devices 140-146 are wireless field devices. Of course, the wired field devices 115-122 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.
[0035] The process controller 111 of FIG. 2 includes a processor 130 that implements or oversees one or more process control routines 138 (e.g., stored in memory 132). To this end, the processor 130 is configured to communicate with the field devices 115-122 and 140-146, and with other nodes communicatively connected to the controller 111. It should be noted that any control routines or modules described herein may have portions implemented or performed by different controllers or other devices, if so desired. Similarly, the control routines or modules 138 described herein implemented within the process control system 100 may take any form, including software, firmware, hardware, etc. 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 any other software programming language or design paradigm. The control routines 138 may be stored in any desired type of memory 132, such as random access memory (RAM) or read-only memory (ROM). Similarly, the control routines 138 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 111 may be configured to implement the control strategies or control routines in any desired manner.
[0036] The controller 111 implements control strategies using what are generally referred to as function blocks, each of which is an object or other portion (e.g., a subroutine) of an overall control routine and which operates with other function blocks (through communications called links) to implement process control loops within the process control system 100. A control-based function block typically performs one of the following: an input function associated with a transmitter, sensor or other process parameter measurement device; a control function associated with a control routine that controls PID, fuzzy logic, etc.; or an output function that controls the operation of some device, such as a valve, to perform some physical function within the process control system 100. Of course, hybrid and other types of function blocks exist. The function blocks may be stored within and executed by the controller 111, which is typically the case when these function blocks are used for or associated with some 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 device itself, which may be the case for FOUNDATION® Fieldbus devices. The controller 111 may include one or more control routines 138 that may implement one or more control loops performed by executing one or more of the functional blocks.
[0037] Wired field devices 115-122 may be any type of device, such as sensors, valves, transmitters, positioners, etc., while I / O cards 126 and 128 may be any type of I / O device conforming to any desired communication or controller protocol. In Fig. 2, field devices 115-118 are standard 4-20 mA or HART® devices that communicate to I / O card 126 via analog lines or combined analog and digital lines, while field devices 119-122 are smart devices, such as FOUNDATION® Fieldbus field devices, that communicate to I / O card 128 via a digital bus using the FOUNDATION® Fieldbus communication protocol. However, in some embodiments, at least some of the wired field devices 115, 116 and 118-121 and / or at least some of the I / O cards 126, 128 may additionally or alternatively communicate with the controller 111 using the process control data highway 110 and / or by using other suitable control system protocols (e.g., ProcessBus, DeviceNet, Foundation Fieldbus, ControlNet, Modbus, HART, etc.).
[0038] In FIG. 2 , the wireless field devices 140-146 communicate over a wireless process control communication network 170 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 170 that are also configured to communicate wirelessly (e.g., using the wireless protocol or another wireless protocol). To communicate with other nodes not configured to communicate wirelessly, the wireless field devices 140-146 may utilize a wireless gateway 135 connected to the process control data highway 110 or to another process control communication network. The wireless gateway 135 provides access to the various wireless devices 140-158 of the wireless communication network 170. In particular, the wireless gateway 135 provides communication coupling between the wireless devices 140-158, the wired devices 115-128, and / or other nodes or devices of the process control plant 100. For example, the wireless gateway 135 provides a communicative coupling by using the process control data highway 110 and / or by using one or more other communication networks of the process plant 100 .
[0039] Similar to the wired field devices 115-122, the wireless field devices 140-146 of the wireless network 170 perform physical control functions within the process plant 100, such as opening and closing valves, taking measurements of process parameters, etc. However, the wireless field devices 140-146 are configured to communicate using the wireless protocol of the network 170. In this manner, the wireless field devices 140-146, the wireless gateway 135, and the other wireless nodes 152-158 of the wireless network 170 are producers and consumers of wireless communication packets.
[0040] In some configurations of the process plant 100, the wireless network 170 includes non-wireless devices. For example, in FIG. 2, the field device 148 of FIG. 2 is a legacy 4-20 mA device and the field device 150 is a wired HART® device. To communicate within the network 170, the field devices 148 and 150 are connected to the wireless communication network 170 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 170 includes one or more network access points 155A, 155B, which may be separate physical devices in wired communication with the wireless gateway 135 or may be provided within the wireless gateway 135 as an integrated device. In addition, the wireless network 170 may also include one or more routers 158 for forwarding packets from one wireless device to another within the wireless communication network 170. In Figure 2, the wireless devices 140-146 and 152-158 communicate with each other and with the wireless gateway 135 via wireless links 160 of the wireless communication network 170 and / or through the process control data highway 110.
[0041] 2, the process control system 100 includes one or more operator workstations 171 communicatively connected to the data highway 110. Through the operator workstations 171, an operator may view and monitor the runtime operation of the process plant 100 as well as take any diagnostic, corrective, maintenance, and / or other actions that may be necessary. At least some of the operator workstations 171 may be located in various protected areas within or near the plant 100, such as, for example, the back-end environment of the plant 100, and in some cases, at least some of the operator workstations 171 may be located in remote locations, but still communicatively connected to the plant 100. The operator workstations 171 may be wired or wireless computing devices.
[0042] The example process control system 100 is further shown as including a configuration application 172A and a configuration database 172B, each of which are also communicatively connected to the data highway 110. As discussed above, various instances of the configuration application 172A may run on one or more computing devices (not shown) to enable users to create or modify process control modules and / or other types of modules and download them via the data highway 110 to the controller 111 and / or other devices of the process control system 100, as well as to enable users to create or modify operator interfaces through which an operator can view data and change data settings within a process control routine. The configuration database 172B stores the created (e.g., configured) modules and / or operator interfaces. Generally, the configuration application 172A and the configuration database 172B may be centralized and have a single logical appearance to the process control system 100, even though multiple instances of the configuration application 172A and the configuration database 172B may be implemented across multiple physical data storage devices. Thus, the configuration application 172A, the configuration database 172B, and the user interface thereto (not shown) comprise a configuration or development system 172 for a control and / or display module. Typically, but not necessarily, the user interface for the configuration system 172 is distinct from the operator workstation 171, since the user interface for the configuration system 172 is utilized by configuration and development engineers regardless of whether the plant 100 is operating in real time, whereas the operator workstation 171 is utilized by an operator during real-time operation of the process plant 100 (also referred to herein interchangeably as “run-time” operation of the process plant 100).
[0043] The example process control system 100 also includes a data historian application 173A and a data historian database 173B, each of which are also communicatively connected to the data highway 110. The data historian application 173A operates to collect some or all of the data provided across the data highway 110 and historize or store the data in the historian database 173B for long term storage. Like the configuration application 172A and the configuration database 172B, the data historian application 173A and the historian database 173B may be centralized and have a single logical appearance to the process control system 100, even though multiple instances of the data historian application 173A may be running simultaneously within the process control system 100, and the data historian 173B may be implemented across multiple physical data storage devices.
[0044] In some configurations, the process control system 100 includes one or more other wireless access points 174 that communicate with other devices using other wireless protocols, such as Wi-Fi or other IEEE 802.11 compliant wireless local area network protocols, mobile communication protocols, such as Worldwide Interoperability for Microwave Access (WiMAX), Long Term Evolution (LTE) or other ITU-R (International Telecommunication Union Radio Communication Sector) compatible protocols, shortwave wireless communications, such as Near Field Communication (NFC) and Bluetooth, or other wireless communication protocols. Typically, such wireless access points 174 enable communication by handheld or other portable computing devices (e.g., user interface devices 175) over a respective wireless process control communication network that is different from the wireless network 170 and that supports a different wireless protocol than the wireless network 170. For example, the wireless or portable user interface devices 175 may be mobile workstations or diagnostic test equipment utilized by operators (e.g., one instance of the operator workstations 171) within the process plant 100. In some scenarios, in addition to the portable computing devices, one or more process control devices (e.g., the controller 111, the field devices 115-122, or the wireless devices 135, 140-158) also communicate using a wireless protocol supported by the access point 174.
[0045] In some configurations, the process control system 100 includes one or more gateways 176, 178 to systems outside the proximate process control system 100. Typically, such systems are customers or suppliers of information generated or manipulated by the process control system 100. For example, the process control plant 100 may include a gateway node 176 for communicatively connecting the instant process plant 100 with another process plant. Additionally or alternatively, the process control plant 100 may include a gateway node 178 for communicatively connecting the instant 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 inventory control system, a product inventory control system, a production scheduling system, a weather data system, a shipping and handling system, a packaging system, the Internet, another provider's process control system, or other external systems.
[0046] 2 illustrates only a single controller 111 with a finite number of field devices 115-122 and 140-146, wireless gateway 35, wireless adapter 152, access point 155, router 1158, and wireless process control communications network 170 included in the example process plant 100, it should be noted that this example is merely an illustrative and non-limiting embodiment. Any number of controllers 111 may be included within the process control plant or system 100, and any of the controllers 111 may communicate with any number of wired or wireless devices and networks 115-122, 140-146, 135, 152, 155, 158, and 170 to control processes within the plant 100.
[0047] 2, and referring simultaneously to FIG. 1 for clarity of illustration and not by way of limitation, a process plant 100 is communicatively connected to an edge gateway system 102, which may be an embodiment of an edge gateway system 1. For example, the process plant 100 may be communicatively connected to the field facing components 10 of the edge gateway system 1 via one or more process plant communication networks, data networks, and / or links, directly and / or via respective gateways of the process plant 100. For example, the field facing components 10 of the edge gateway system 1 may be communicatively connected to the process plant 100 via networks 110, 170, via gateways 135, 176, 178, and / or other networks, links, and / or gateways associated with the process plant through which the field facing components 10 receive or obtain data generated by various data sources 30 associated with the process plant 100.
[0048] Generally speaking, the data sources 30 and networks / links 28 through which the edge gateway system 1 obtains process plant related data may be at lower levels of the Purdue model or similar security hierarchy (e.g., Level 0 to Level 2) and may include controllers, field devices, I / O cards, and other types of process control devices. It will be further understood that the set of data sources 30 associated with the process plant is not limited to only process control devices that directly generate primary process data, but may additionally or alternatively include any devices or components within and / or associated with the process plant 100 that generate process data and / or other types of data as a result of the process plant 100 controlling an online process. For example, the set of data sources 30 may include modules, alarms, event historians, batch systems and / or historians, diagnostic devices or components that generate diagnostic data, network routing devices or components that transmit information between various components and / or devices of the process plant 100, asset management systems, configuration systems, analytical systems, virtual networks such as mobile devices, and the like. Indeed, any one or more of the components shown in FIG. 2 (e.g., components 111, 115-122, 126, 128, 135, 140-146, 152, 155, 158, 160, 170, 171-176, 178) and other components not shown in FIG. 2 may be data sources 30 that generate process plant-related data that may be provided for consumption by one or more external systems 8 via the edge gateway systems 1, 102.
[0049] FIG. 3 illustrates a graphical representation of an exemplary context knowledge repository 42, such as the context knowledge repository 42 described with reference to FIG. 1. The exemplary context knowledge repository 42 stores relationships or connections between process plant related data and process plant entities, such as controllers, field devices, I / O devices, or other devices in the process plant that perform the physical function of controlling the process, such as valves, tanks, mixers, pumps, heat exchangers, etc. As described above, the context knowledge repository 42 may be stored in the edge facing component 12 of the edge gateway system 1 and may include a local copy or replica of the process plant related data generated within the process plant 5. In this manner, the edge facing component 12 may provide the process plant related data from the context knowledge repository 42 to external systems 8 that do not have authorized access to communicate with the process plant 5 in a highly secure manner and without affecting the performance of the process plant 5. For example, the edge facing component 12 may provide the process plant related data from the context knowledge repository 42 to mobile devices, vehicle head units, desktop computers, laptop computers, wearable devices, etc. that are not within the process plant 5 and are not authorized to communicate with devices or components that control the online operation of the process plant 5.
[0050] In other implementations, the context knowledge repository 42 may be stored on computing devices that communicate with devices or components within and / or associated with the process plant 5. These devices or components generate process data and / or other types of data as a result of the process plant 5 controlling an online process. In these implementations, the process plant related data is not provided via a unidirectional data diode, and devices that receive the process plant related data from the context knowledge repository 42 may communicate with devices or components within and / or associated with the process plant 5 that generated the process plant related data to control the online operation of the process plant 5. In this scenario, only devices that are authorized to interact with the process control devices may receive the process plant related data from the context knowledge repository 42 (e.g., operator workstations, mobile workstations, etc.).
[0051] In any event, in FIG. 3, process plant related data (e.g., process parameter data, product parameter data, configuration data, maintenance data, event data, historical data, environmental data, analytical data such as laboratory measurements, etc.) and process plant entities (e.g., controllers, field devices, process plants, process plant areas, tanks, pumps, mixers, heat exchangers, reactors, regenerators, control modules, function blocks, process flow modules, etc.) are represented as circles, and relationships or connections between the process plant related data and / or process plant entities are represented as lines connecting the circles. For example, a first process plant entity 302 represents a Houston process plant. The first process plant entity 302 is connected to areas within the process plant (e.g., plant area A, plant area B) based on the areas that are within the Houston process plant. Each area is connected to devices and components within the area, such as controllers, field devices, control modules, process plant equipment, etc. More specifically, plant area A is connected to controller 1, CNTL MOD PID1, tank 1, mixer 1, and pump 1, each of which is located within plant area A or within the plant area A's controlled process plant equipment. Plant area B is connected to heat exchanger 1 and valve 1, each of which is located within plant area B. Controller 1 is connected to CNTL MOD PID1 based on controller 1 executing control module CNTL MOD PID1. Controller 1 is also connected to tank 1, mixer 1, and pump 1 based on controller 1 controlling each of these process plant equipment. Furthermore, CNTL MOD PID1 is connected to tank 1, mixer 1, and pump 1 based on CNTL MOD PID1, which is a control module controlling each of these process plant equipment. Furthermore, CNTL MOD PID1 is connected to product output 1 based on CNTL MOD PID1, thereby generating product output 1 based on control of tank 1, mixer 1, and pump 1.Product output 1 may be, for example, gasoline. Furthermore, Tank 1 and Product output 1 are connected to process parameter data and product parameter data corresponding to Tank 1 and Product output 1, respectively. More specifically, Tank 1 is connected to process parameter data representing the filling level of Tank 1, Alarm 1 and Alarm 2 each representing an alarm corresponding to Tank 1, and Product In1, which is a product (e.g., kerosene) provided as an input to Tank 1. PRODUCT OUTPUT1 is connected to product parameter data representing the temperature, volume, density, pressure, and chemical composition of PRODUCT OUTPUT1.
[0052] The context knowledge repository 42 stores a small amount of process plant related data, but this is merely for ease of explanation. The context knowledge repository 42 may store any number of process plant entities and any suitable amount of process plant related data representations for each of the process plant entities across several process plants. In this manner, a user may be able to receive data from multiple process plants such that a user may search multiple sites. In addition to providing the process plant related data from the context knowledge repository 42 as search results, the process plant related data may be used in plant commissioning, particularly to resolve ambiguous naming conventions. In any event, the process plant related data may include several types of heterogeneous data, such as configuration data, runtime data, maintenance data, analytical data, environmental data such as regulatory reporting data, diagnostic data, economic data for the process plant such as costs of equipment and materials, forecasted values of products produced in the plant, the amount of products generated in the process plant in a particular time period, forecasted revenues and profit margins, or other suitable data related to the process plant.
[0053] To generate the context knowledge repository 42, the context knowledge miner 45 mines the data lake 40 to discover relationships between various content data stored in the data lake 40 and generates / modifies / updates the context knowledge repository 42 accordingly. For example, the context knowledge miner 45 may mine the data lake 40 to identify additional process parameter data for the process parameters corresponding to TANK1. The context knowledge miner 45 may then update the context knowledge repository 42 to include a connection between TANK1 and the additional process parameter data. In some implementations, when a change is made to the plant configuration, such as a user adding a new control module to the process control system, the user may provide instructions (e.g., via user control of a user interface device) to the context knowledge miner 45 to regenerate the context knowledge repository 42 with the new plant configuration. In some scenarios, the user may provide instructions to the context knowledge miner 45 to update the context knowledge repository 42 with the new plant configuration by adding only the changes to the plant configuration to the context knowledge repository 42. In other implementations, the context knowledge miner 45 may automatically analyze updates to the context knowledge repository 42, for example, when a download to an online process plant occurs, and determine whether to update the existing context knowledge repository 42 with changes to the plant configuration, or may regenerate the context knowledge repository 42 with the new plant configuration, for example, if the changes are structural in nature. The context knowledge repository 42 may also store time data regarding when the plant configuration change was added. For example, when a new or updated control module is downloaded to an online process plant, the context knowledge repository 42 may include the date and time of the download. Thus, a context record of the plant state when each plant configuration change occurs may be maintained based on the context knowledge repository 42.Although the contextual knowledge repository 42 is illustrated as a graph structure, this is merely an example embodiment and the entities in the contextual knowledge repository 42 may be connected in any suitable manner.
[0054] Process Plant Search Query As described above, the access mechanism 48 in the edge facing component 12 may provide the process plant related data to the external system 8. One example of an access mechanism may be a process plant search query server that obtains a process plant search query from an external system 8, such as a user interface device (e.g., a mobile device, a desktop computer, a laptop computer, a wearable device, a vehicle head unit, etc.) external to the process plant 5. The process plant search query server then obtains process plant related data related to the process plant search query from the context knowledge repository 42 and generates a process plant search result based on the obtained process plant related data. More generally, the process plant search query server may obtain a request for process plant related data from an application or other computing device, obtain at least a portion of the process plant related data from the context knowledge repository 42 in response to the request, and provide the obtained process plant related data to the application or other computing device. In some implementations, the request is a process plant search query, and the process plant search query server provides a subset of the process plant related data as a search result to the application or other computing device in response to the process plant search query.
[0055] 4 illustrates a block diagram of an example process plant search query server 400. The server of the process plant search query server 400 may be implemented as hardware having a processor 402, a memory 404 for executing a process plant search engine 406, and a communication unit for communicating with external systems 8 via one or more external communication networks, data networks, and / or links. The one or more external communication networks, data networks, and / or links may include any number of wired and / or wireless communication networks, data networks, and / or links, and may include any number of private and / or public networks and / or links. In other implementations, the server of the process plant search query server 400 may be implemented as software for executing the process plant search engine 406 on the hardware of the edge facing component 12.
[0056] In some implementations, the process plant search query server 400 is an access mechanism 48 of the edge facing components 12. In these implementations, the process plant search query server 400 retrieves the process plant related data from a context knowledge repository 42, which is a local copy or replica of the process plant related data generated within the process plant 5. Thus, the process plant search query server 400 does not directly interact with the process plant related data generated within the process plant 5 and cannot communicate with controllers and / or other devices within the process plant 5 to control the online operation of the process plant 5. In other implementations, the process plant search query server 400 is not part of the edge facing components 12 but is a server device that is communicatively coupled to the process plant 5 and configured to communicate with controllers and / or other devices within the process plant 5 to control the online operation of the process plant 5.
[0057] In any event, the process plant search engine 406 receives the process plant search query from the user interface device. The process plant search query may be any search query related to process plant related data and / or related to a process plant entity within a process plant. For example, the process plant search query may be "What about CAT crackers?". The process plant search engine 406 then analyzes / parses the process plant search query to identify a subject of the search query, a context of the search query, and / or other information of the search query that may be used to filter a data set responsive to a search query response query. More specifically, the process plant search engine 406 may obtain subject and filter indications from a grammar module or plant vocabulary database included in or communicatively coupled to the process plant search query server 400. The grammar module or plant vocabulary database may store some subjects of the process plant search query and filters that modify the subject and filter search results. The grammar module or plant vocabulary database may also store several mappings of terms from the process plant search query that correspond to each subject and / or filter, such as synonyms or nicknames for the subject or filter. For example, for the subject "MODULE:CATCR," the grammar or plant vocabulary may store corresponding terms such as "CAT cracker," "CAT cracking module," "CAT cracking control module," "catalytic cracking module," and "fluidized catalytic cracking module."
[0058] The process plant search engine 406 may also identify that the process plant search query was provided in a natural language format, for example, based on terms such as “how about” and “my.” As a result, the process plant search engine 406 recognizes the conversational nature of the process plant search query that can be used as a context for follow-up queries by the user. For example, because the process plant search engine 406 recognizes the process plant search query as conversational, when the user provides an additional process plant search query such as “what is the efficiency?”, the process plant search engine 406 identifies, based on the context, that the additional process plant search query is for efficiency with respect to the CAT cracker and not for another module. In response to identifying the natural language format of the process plant search query, the process plant search engine 406 uses the process plant search query as a context for additional process plant search queries by the user within a threshold time period (e.g., 5 minutes, 10 minutes, 1 hour, etc.) of the process plant search query.
[0059] The process plant search engine 406 may then match each of the terms in the process plant search query to one of the subjects or filters. In some implementations, the process plant search engine 406 first identifies one or more terms in the process plant search query that correspond to the subject of the process plant search query. The process plant search engine 406 then identifies filters that correspond to the remaining terms, as well as contexts that can be used to further filter the data set. The process plant search engine 406 may identify exact matches between one or more terms in the process plant search query and the subjects contained in the grammar module or plant vocabulary database.
[0060] In other implementations, the process plant search engine 406 identifies a likelihood that one or more terms in the process plant search query correspond to a topic from a number of process plant search query topic candidates contained in the grammar module or plant vocabulary database. The process plant search engine 406 then identifies the most likely topic and corresponding terms. For example, the process plant search engine 406 compares a first term of the process plant search query to each of the process plant search query topic candidates in the grammar module or plant vocabulary database to identify the likelihood that the first term corresponds to each of the process plant search query topic candidates. The process plant search engine 406 may then compare a first and second term of the process plant search query to each of the process plant search query topic candidates in the grammar module or plant vocabulary database to identify the likelihood that the first and second terms correspond to each of the process plant search query topic candidates. The process plant search engine 406 may also compare only the second term to each topic in the grammar module or plant vocabulary database to identify the likelihood that the second term corresponds to each of the process plant search query topic candidates.
[0061] The process plant search engine 406 may continue to compare each of the terms alone and in combination to identify a set of one or more terms that have the highest likelihood of corresponding to one of the candidate process plant search query subjects in the grammar module or plant vocabulary database. As shown in FIG. 4, the process plant search engine 406 identifies the term "CAT cracker" as corresponding to the subject "MODULE:CATCR."
[0062] The process plant search engine 406 then identifies filters from the grammar module or plant vocabulary database that correspond to the remaining terms. The filters may be used to filter the data set retrieved in response to the identified themes. In this example, the process plant search engine 406 may retrieve a set of process plant related data contained in the context knowledge repository 42 that has a connection to MODULE:CATCR. The filters may be used to remove the process plant related data from the set. Similar to the themes, the process plant search engine 406 may identify an exact match between one or more remaining terms in the process plant search query and a filter contained in the grammar module or plant vocabulary database. In other implementations, the process plant search engine 406 identifies a likelihood that one or more remaining terms in the process plant search query correspond to a filter contained in the grammar module or plant vocabulary database. The process plant search engine 406 then identifies the filters and corresponding remaining terms that have the highest likelihood or a likelihood that exceeds a likelihood threshold.
[0063] The process plant search query may include several filters with different sets of one or more remaining terms, each having a likelihood corresponding to a filter that exceeds a likelihood threshold. As shown in FIG. 4, the process plant search engine 406 identifies the term "my" as corresponding to the filter "SCOPE:USER". The filter "SCOPE:USER" may be used to filter the set of process plant related data such that only process plant related data remains that corresponds to one particular MODULE:CATCR of several entities named MODULE:CATCR in the context knowledge repository 42. The particular MODULE:CATCR may be a MODULE:CATCR that the user operates on, maintains, engages with, etc., depending on the context, as described in more detail below. The process plant search engine 406 identifies the term "how?" as corresponding to the filter "ALL_ABNORMAL". The filter "ALL_ABNORMAL" may be used to filter the set of process plant related data such that only process plant related data remains that indicates an abnormal condition and corresponds to one particular MODULE:CATCR.
[0064] 4, example process plant related data corresponding to a particular MODULE:CATCR that a user operates, maintains, participates in, etc., includes a slurry level of 20%, a reactor temperature of 500°, a reactor pressure of 1.5 bar, a regenerator temperature of 200°, and a regenerator pressure of 2 bar. The slurry level in the contextual knowledge repository 42 may include a connection to an abnormal condition based, for example, on the slurry level being below a threshold slurry level. Thus, the process plant search engine 406 may filter the reactor temperature, reactor pressure, regenerator temperature, and regenerator pressure from the set of process plant related data such that only the slurry level remains.
[0065] In addition to identifying subjects and filters for the process plant search query, the process plant search engine 406 identifies a context. The context may include user information for which a user is submitting a process plant search query, such as the user's name, the name and location of the process plant where the user works, the user's organizational role within the process plant, etc. The process plant search engine 406 may obtain the user information from the user's user profile contained in a user database, for example. The user may provide login information that may be used by the process plant search engine 406 to access the user information. Additionally, the context may include device information for the device for which the user is submitting the process plant search query, such as the location of the device, which may include a location within the process plant or may be an external location, device capabilities (e.g., voice, display, microphone, applications running on the device, etc.), device type, device size, etc. The device location allows for location-based process plant search queries, such as, "Identify the valve in front of me," etc. Additionally, the context may include the time the process plant search query was submitted.
[0066] The process plant search engine 406 may further filter the set of process plant related data according to the context. For example, as described above, one filter corresponding to a process plant search query is "SCOPE:USER". Based on the name and location of the process plant where the user works and the user's organizational role within the process plant, the process plant search engine 406 may identify MODULE:CATCR for several instances of MODULE:CATCR in the context knowledge repository 42 that the user operates, maintains, is involved in, etc. For example, the context may indicate that the user works in Area 1 of the Houston plant with one MODULE:CATCR. Thus, the process plant search engine 406 may filter the data set to include only process plant related data corresponding to MODULE:CATCR in Area 1 of the Houston plant. In other implementations, the user may include the name or location of the process plant in the process plant search query. The process plant search engine 406 may then use the name or location of the process plant as a context for further process plant search queries by the user within the same conversation, such as within a threshold time period, or subsequent process plant search queries by the user. The device context may be used to determine the number of search results returned by the process plant search engine 406. For example, if the device is a desktop computer, a laptop computer, an operator workstation, etc., the process plant search engine 406 may return a complete set of search results. If the device is a mobile device or a vehicle head unit, the process plant search engine 406 may reduce the number of search results to one or some other threshold number.
[0067] In any case, the process plant search engine 406 converts the filtered process plant related data into process plant search results. In the above example, the filtered process plant related data includes a slurry level of 20% for MODULE:CATCR in Area 1 of the Houston plant. Thus, the process plant search engine 406 may generate search results as a voice response (e.g., via a text-to-speech engine) or a text response in a natural language format, such as "Your slurry level is low". The process plant search engine 406 may convert a subset of the filtered process plant related data into process plant search results from a grammar module or plant vocabulary based on the time / year and / or the user's name by obtaining introductory phrases, such as "Good morning", "Hello", "Happy Holidays!" The process plant search engine 406 may also obtain natural language responses to process plant search queries from a grammar module or plant vocabulary, such as "Your slurry level is...", "Your CAT cracker is in an abnormal state...", "Your CAT cracker is running well! A few things to note...". In other implementations, the process plant search engine 406 may generate the search results as links to process flow or control modules for MODULE:CATCR in Area 1 of the Houston plant, thereby highlighting the slurry level or a link to more information about the slurry level. In this example, the process plant search engine 406 returns a single process plant search result. However, this is just one example scenario. In other scenarios, the process plant search engine 406 may return any number of process plant search results corresponding to any amount of process plant related data responsive to the process plant search query.
[0068] "What about a CAT cracker?" is one example of a process plant search query, however, the process plant search query server 400 may obtain any suitable process plant search queries and generate process plant search results. Other example process plant search queries may include a query for a particular mode of operation, a query for an abnormal condition or a particular abnormal condition, a query for modules in a specified portion of a module hierarchy, a query for process parameters with a particular name and / or value, a query for alarms or modules with alarms with a particular priority, a query for a particular process plant entity or a group of process plant entities, a query for products produced by a process plant entity, a query for events in a process plant, a query for configuration data such as a query for instances of a class, or any other suitable query related to a process plant.
[0069] Further, in some implementations, the user may allow the process plant search query server 400 to provide unsolicited audio or display information about the process plant to the user's user interface device (e.g., by selecting a user control on the user interface device to receive unsolicited process plant related data). The unsolicited audio or display information about the process plant may include critical or safety related alarm information regardless of a current interaction with the user. The process plant search query server 400 may identify a set of process plant entities for the user. For example, the set of process plant entities may be identified based on the user's organizational role or may be selected by the user. The process plant search query server 400 may then periodically (e.g., every 30 seconds, every minute, every 5 minutes, etc.) search the context knowledge repository 42 for critical or safety related alarm information associated with the identified set of process plant entities. When the process plant search query server 400 identifies critical or safety related alarm information associated with one of the set of identified process plant entities, the process plant search query server 400 provides an indication of the critical or safety related alarm information in audio or text / graphical form to the user interface device, regardless of whether the user provided a process plant search query for the critical or safety related alarm information, a set of process plant entities, or a process plant search query. For example, a user may provide a process plant search query for a boiler unit and a distillation column. In response to identifying critical or safety related alarm information associated with a safety system in an area of the process plant 5 operated by the user, the process plant search query server 400 may interrupt the process plant search query / process plant search result sequence and instead provide the critical or safety related alarm information associated with the safety system to the user interface device.
[0070] Additionally, the user may request an audio alert or notification to be provided to the user interface device in response to a particular event or condition occurring within the process plant. The process plant search query server 400 may then periodically or continuously determine whether a particular condition is met or an event occurs within the process plant 5. When a particular condition is met or an event occurs, the process plant search query server 400 may provide an audio alert or notification to the user interface device without further request or process plant search query by the user. For example, the user may want to know when the process variable value of TT-102 exceeds 70%. The process plant search query server 400 may periodically or continuously retrieve the process variable value of TT-102, for example, from the context knowledge repository 42. When the process variable value exceeds 70%, the process plant search query server 400 may provide an audio alarm to the user interface device, for example, that the process variable value of TT-102 is 71%.
[0071] The process plant search query server 400 receives a process plant search query from a user interface device that may be internal or external to the process plant 5. FIG. 5 illustrates an example process plant display 500 that may be presented on a user interface device. The user interface device may be communicatively coupled to the process plant 5 such that a user may control devices or components within the process plant 5 via user controls on the process plant display 500. In other implementations, the user interface device is not communicatively coupled to the process plant 5 and the data presented on the process plant display 500 is from a local copy or replica of process plant related data within the process plant 5. In any case, the process plant display 500 may include a user control 502, such as a search icon, that when selected causes the process plant display 500 to present a search bar 504 for entering a process plant search query. In some implementations, the process plant display 500 is presented via a process plant application or a process plant search application running on the user interface device. A user may enter a process plant search query via text input or voice input via a microphone, such as "control modules with bypass not on." The process plant search query may be related to the graphical information presented in the process plant display 500, such as control modules, faceplates, process flow modules, process plant entities, etc. In some implementations, the user interface device may provide a display to the process plant search query server 400 of the control modules, process flow modules, faceplates, process plant entities, etc. included in the process plant display 500 as a context for the process plant search query. In other scenarios, the process plant search query is not related to the graphical information presented in the process plant display 500.
[0072] The process plant application or process plant search application may also store previous process plant search queries entered by the user and may include a user control to select one of the previous process plant search queries without the user having to repeat text or voice input. In some implementations, the process plant application or process plant search application may automatically re-send previous process plant search queries periodically or in any suitable manner to receive updated search results.
[0073] The process plant search query server 400 then receives the process plant search query and context for the process plant search query, such as user information, device information, search history of the user's previous search queries, display of graphical information presented on the process plant related data. The process plant search query server 400 may then identify the subject of the process plant search query, "control module with bypass not on," from the process plant search query term "control module" as CRTLMOD, and may also identify a filter from the term "bypass not on" as BYPASS:is_not:On. In some implementations, the process plant search query server 400 may identify additional filters from the context, such as control modules within a particular process plant that the user operates, maintains, is involved in, etc., and may identify a particular area of a process plant that the user operates, maintains, is involved in, etc., a particular area of a process plant that the user previously queried, or a particular area of a process plant that is currently presented on the user's process plant display 500. In any event, the process plant search query server 400 then identifies each of the non-bypass control modules from the context knowledge repository 42 and process plant related data for each of the identified control modules. The process plant search query server 400 generates process plant search results for each of the identified control module / process plant related data for the control modules and provides the process plant search results for display in a search result display user interface. An example process plant search result display 600 that may be presented on a user interface device is shown in FIG.
[0074] The process plant search results display 600 includes a display of a set of process plant search results 602a-608a in response to the process plant search query "control modules with bypass not on." Each display of the process plant search results 602a-608a may include a name of a process plant search result (e.g., Workshop_1303) with a link to more information about the process plant search result. Additionally, each display of the process plant search results 602a-608a may include a thumbnail image or preview 602b-608b of more information about the process plant search result. For example, the first process plant search result 602a, Workshop_1303, is a control module, and the thumbnail image or preview corresponding to the first process plant search result 602b is a thumbnail image of a graphical representation of the control module. When the user selects the initial process plant search result 602a (e.g., by clicking or touch selecting a thumbnail or preview display corresponding to the initial process plant search result 602a or the initial process plant search result 602b), the user interface device may present a complete view of the graphical representation of the control module in a detailed search results display 700, as shown in FIG.
[0075] The detailed search results display 700 may also include the name of the control module, the path of the control module, the names and / or paths of the inputs and outputs to the control module, the paths of the process plant entities controlled by the control module, the names and / or paths of the controllers executing the control module, product parameter data for products input and output by the control module, process parameter data for the process plant entities controlled by the control module, or other suitable information related to the control module. As described above, when the user interface device is external to the process plant 5 and / or in communication with a device or component that controls the online operation of the process plant 5, the selectable links up to the details are selectable links to local copies or replicas of the process plant-related data within the process plant 5 such that user interaction with the replicas of the process plant-related data does not affect the run-time operation of the process plant 5.
[0076] In some implementations, the detailed search results display 700 may include a video feed, such as a live video feed, of the process plant entity or area of the process plant corresponding to the search result. For example, if the search result is an alarm for a particular process plant entity, the detailed search results display 700 may include a live video feed of the process plant entity (e.g., a mixer). In another example, if the search result is a summary of an area of the process plant, the detailed search results display 700 may include a live video feed of the process plant area. Additionally, the detailed search results display 700 may include faceplates, detailed and main control displays, control hierarchy, process flow modules, images / videos of the process plant, images / videos of areas of the process plant, displays of process plant entities, map representations of the process plant or areas of the process plant, graphs, charts or tables of process parameter or product parameter values, configuration displays, alarm displays, etc.
[0077] 6, the process plant search query server 400 may select the number of process plant search results to include in the process plant search results display 600 based on the size and / or type of the user interface device. If the size of the user interface device is less than a threshold size or if the device type is a particular type of a predefined set of device types (e.g., a mobile device, a vehicle head unit, etc.), the process plant search query server 400 may provide a single process plant search result to be included in the process plant search results display 600.
[0078] FIG. 8 illustrates a process plant search results display 800 for a mobile device with a single process plant search result. On the other hand, if the size of the user interface device is one or more of a threshold size or a predetermined set of device types, the process plant search query server 400 may provide a set of process plant search results for inclusion in the process plant search results display 600. In other implementations, the process plant search query server 400 may select a number of process plant search results for inclusion in the process plant search results display 600 that are proportional to the size of the user interface device. For example, the process plant search query server 400 may provide 10 process plant search results for inclusion in the process plant search results display 600 when the user interface device is above a first threshold size but below a second threshold size. The process plant search query server 400 may provide 20 process plant search results for inclusion in the process plant search results display 600 when the user interface device is above a second threshold size but below a third threshold size, etc. In yet other implementations, the process plant search results display 600 includes a first set of process plant search results on a first page and additional sets of process plant search results on subsequent pages that a user can access via user controls, such as the back and forth arrows on the process plant search results display 600.
[0079] In other implementations, the process plant search query server 400 provides the set of process plant search results to a user interface device, and the user interface device tailors the presentation of the process plant search results based on the size and / or type of the user interface device. For example, if the user interface device is a mobile device or a vehicle head unit, the user interface device may select a single search result of the set of process plant search results for presentation in the process plant search results display 600. If the user interface device is a desktop computer or has a size equal to or greater than a threshold size, the user interface device may present each of the set of process plant search results in the process plant search results display 600.
[0080] In some implementations, the process plant search query server 400 may select a format in which to provide the process plant search results based on the capabilities of the user interface device. If the user interface device has speech capabilities but no display, the process plant search query server 400 may provide the process plant search results to the user interface device in an audio format. If the user interface device has speech capabilities but no display, the process plant search query server 400 may provide the process plant search results to the user interface device in an audio format. If the user interface device has display and speech capabilities, the process plant search query server 400 may provide the process plant search results to the user interface device in both text / graphical and audio formats.
[0081] The process plant search results display 600 may also include a display of categories 610-650 for obtaining process plant search results corresponding to a particular category. In the example process plant search results display 600, the categories include all 610, alarms 620, control modules 630, process flow modules 640, and reports 650. In the example process plant search results display 600, the all category 610 is selected, and thus the process plant search results being presented include process plant search results for all categories. In response to a user selection of one of the other categories 620-650, the process plant search results display 600 may present process plant search results responsive to the process plant search query corresponding to the selected category. For example, if a user selects the category reports 650, the process plant search results display 600 may present a subset of process plant search results that include reports or that are related to reports, such as a report on one of the control modules that does not have a bypass ON.
[0082] In some implementations, the process plant search query server 400 generates each category and assigns a subset of the process plant search results to each category. The process plant search query server 400 may assign particular process plant search results to a category based on the process plant related data or associated data or process plant entities in the context knowledge repository 42 included in the process plant search results and / or based on connections from the process plant related data to other process plants. For example, if a particular control module in the context knowledge repository 42 has connections with alarms, the process plant search query server 400 may assign the control module to the alarm category 620.
[0083] In some implementations, the categories may be independent of the process plant search query or may be the same categories as any process plant search query. In other implementations, the process plant search query server 400 generates a set of categories specific to each process plant search query based on a set of process plant search results responsive to the process plant search query. For example, for a process plant search query of "control modules with bypass not on," the process plant search query server 400 may determine that the set of search results includes control modules in three different areas of the process plant. Thus, the process plant search query server 400 may generate a different category for each area of the process plant and assign a subset of the process plant search results to each category.
[0084] Also, in some implementations, the process plant search query server 400 may rank and / or score each of the process plant search results. The process plant search results 602a-608a may then be presented in ranked order in the process plant search results display 600. For example, the highest ranked or highest scored process plant search results 602a may be presented at the top of the process plant search results display 600. When the process plant search query server 400 selects a single process plant search result to include in the process plant search results display 600, the process plant search query server 400 may select the highest ranked process plant search result. In another example, when the process plant search query server 400 selects a threshold number (e.g., five) of process plant search results to include in the process plant search results display 600, the process plant search query server 400 may select the process plant search result that is ranked above the threshold number.
[0085] The process plant search query server 400 may assign a relevance score to each of the process plant search results according to their relevance to the process plant search query. The relevance to the process plant search query may be based on how well the process plant search result corresponds to the process plant search query. In some implementations, the process plant search query server 400 may assign a relevance score according to the importance or priority of each of the process plant search results. For example, for a process plant search query having alarms as a subject, the process plant search query server 400 may determine that high priority or critical alarms are more relevant to the process plant search query than low priority alarms. Thus, the process plant search query server 400 may assign higher scores to process plant search results that correspond to high priority or critical alarms and lower scores to process plant search results that correspond to low priority alarms.
[0086] Also, in some implementations, such as when one of the filters is a time period (e.g., alarms within the last 8 hours), the process plant search query server 400 may assign a relevance score based on recency. The process plant search query server 400 may assign a higher score to process plant search results that correspond to events that occurred more recently. More specifically, the process plant search query server 400 may assign a higher relevance score to search results that correspond to an alarm that was triggered one hour before the process plant search query than search results that correspond to an alarm that was triggered six hours before the process plant search query.
[0087] The process plant search query server 400 may also assign relevance scores based on context. More specifically, for example, if the process plant search query is "modules on boiler units" and a user's organizational role within the process plant indicates that the user works closely with a particular boiler unit, the process plant search query server 400 may assign a higher relevance score to modules for that particular boiler unit than to modules corresponding to other boiler units.
[0088] Additionally, the process plant search query server 400 may assign a relevance score to each process plant search result based on the number or percentage of filters that have conditions that the process plant search result satisfies. For example, if a process plant search query includes three filters, a process plant search result that meets the conditions of all three filters may be assigned a higher relevance score than a process plant search result that meets only two of the three filters. In some implementations, the process plant search query server 400 generates only process plant search results that meet the conditions of each of the filters in the process plant search query. In other implementations, the process plant search query server 400 generates process plant search results that meet the conditions of at least a threshold number or percentage of the filters in the process plant search query. For example, if the process plant search query server 400 determines that ten process plant search results are provided on a display depending on the device type or size of the user interface device, and only five process plant search results meet the conditions of each of the filters, the process plant search query server 400 may identify additional process plant search results that do not meet the conditions of one of the filters. These additional process plant search results may be assigned a lower relevance score than the process plant search results that satisfy the conditions of each filter.
[0089] In some implementations, the process plant search query server 400 assigns a relevance score to each of the process plant search results based on any suitable combination of importance, recency, context, the number of filters that the process plant search result has conditions that it satisfies, or any other suitable factors related to relevance. The process plant search query server 400 may then rank the process plant search results in order of relevance score such that the process plant search result with the highest relevance score is ranked highest.
[0090] In some implementations, the ranking may be used to resolve ambiguous process plant search queries and / or provide the user with recommendations or follow-up questions regarding the process plant search query. For example, the user may provide a process plant search query for TT 102. The process plant search query server 400 may not be able to identify TT 102 in the contextual knowledge repository 42, but the highest ranked process plant search result may be for TC 102. Thus, the process plant search query server 400 may provide a recommendation to the user to generate a process plant search query for TC 102 or may ask the user whether the process plant query is for TC 102. When the process plant search query server 400 receives an ambiguous process plant search query or is unable to identify a subject of the process plant search query, the process plant search query server 400 may identify the closest match or subject and provide the closest match or subject as a recommended / corrective action to the user.
[0091] Presentation of process plant related data In addition to providing process plant search results in response to process plant search queries, the contextual knowledge repository 42 may be used to provide process plant related data presented by user interface devices that are not communicatively coupled to the process plant, such as mobile devices, vehicle head units, laptop computers, desktop computers, etc. In this manner, process plant personnel may remotely monitor the online operations of the process plant without the security and safety risks of remotely communicating with devices within the process plant.
[0092] As mentioned above, in this implementation, the context knowledge repository 42 is included in the edge facing components 12 of the edge gateway system 1. The edge facing components 12 obtain data from the data sources 30 in the process plant 5, but are connected to the field facing components 12 of the edge gateway system and to the process plant 5 via a unidirectional data diode 15 that does not allow communication from the edge facing components 12 to the field facing components 10. Thus, in this implementation, the process plant related data included in the context knowledge repository 42 is from a local copy or replica of the process plant related data in the process plant 5, so that changes to the replica of the process plant related data presented to the user interface device do not change the run-time operation of the process plant 5. The user interface device does not directly interact with the process plant related data generated in the process plant 5 and cannot communicate with a controller and / or other devices of the process plant 5 to control the online operation of the process plant 5. In this manner, a user can remotely view process flow modules, control modules, faceplates, process plant entities, process parameter data, product parameter data, environmental data, maintenance data, analytical data, diagnostic data, and the like, as if they were on an operator workstation, mobile workstation, or other suitable user interface device within the process plant 5.
[0093] The process plant search query server 400 or any other suitable access mechanism 48 in the edge facing component 12 may provide the process plant related data to the application or other computing device in response to a request from the application or other computing device. For example, a user interface device may execute a process plant application that requests process plant related data from the context knowledge repository 42 via an access mechanism 48, such as the process plant search query server 400. The process plant application may obtain user identification information for the user, such as user login information, and provide the user identification information and device information to the edge facing component 12 for context such that the edge facing component 12 provides a subset of the process plant related data that is relevant to the user's organizational role, for example. The subset of process plant related data may also be relevant to the process plant where the user is employed, such as the Corpus Christi plant.
[0094] FIG. 9 illustrates an exemplary vehicle head unit 900 for presenting process plant related data at a location remote from the process plant 5. The vehicle head unit 900 may execute a process plant application and may include a display 902 and speaker for providing graphical and audio output, hardware input controls for entering alphanumeric characters or providing other user input, software input controls for entering alphanumeric characters or providing other user input via a touch screen and / or a microphone for receiving audio input, such as a process plant search query. As shown in FIG. 9, the display 902 includes a prompt requesting a user to provide a request related to the process plant, such as a process plant search query. Thus, a user may provide an audio request with voice input via the microphone or may provide a text request via the hardware or software input controls. In some implementations, the process plant application may include a pre-stored voice prompt that causes the process plant application to receive and analyze a user's voice input via the microphone. For example, the pre-stored voice prompt may be "Hi, Delta V." In response to receiving the voice input "Hi, DeltaV," the process plant application may receive and analyze subsequent voice input from the user and generate process plant data as requested by the user. The process plant application may also identify the user's voice via voice recognition techniques so that only the user can provide voice input to the process plant application. Voice input from other users may not be analyzed because the process plant application does not identify the voice input as corresponding to the user. In other implementations, the display 902 may include a process plant display of default process plant related data corresponding to the user, or process flow modules, or control modules corresponding to the user, as shown in FIGS. 10 and 11, respectively, and described in more detail below.For example, the default process plant related data may include reports generated for the user within a particular time period regarding process plant entities relevant to the user's organizational role, updates to process plant entities that the user operates, maintains, is involved in, etc., alarms or critical information for these process plant entities, etc. The default process flow or control modules corresponding to the user may include process flow or control modules that include process plant entities relevant to the user's organizational role, such as process flow or control modules that the user recently viewed, or process plant entities that the user operates, maintains, is involved in, etc.
[0095] In an exemplary scenario, in response to a prompt included in the display 902, the user provides a voice input such as "Hi, DeltaV, give me my report" or "Hi, DeltaV, give me my split wall column report." In response to the voice input, the vehicle head unit presents a process plant report display 1000 as shown in FIG. 10. In some implementations, the process plant report display 1000 may be presented as default process plant related data without a request from the user. More specifically, the edge facing component 12 may periodically generate reports for the user specific to the user's organizational role. The user may also customize the reports via user controls in the vehicle head unit 900 to select the specific control modules, process plant entities, process plant areas, etc. for which to receive the reports. In any case, the process plant report display 1000 may include a display of unread reports 1002 and read reports. Each display of the unread reports 1002 may include a title of the report and a link to select the report for which to view the report or to receive an audio version of the report. For example, a user may touch select a voice control corresponding to the executive summary to receive an audio version of the executive summary or touch select the executive summary to receive a graphical version of the executive summary. In an example scenario, a user may provide a voice input "Hi, DeltaV, give me my report" or "Hi, DeltaV, give me my split-wall column report" to receive a graphical and / or audio version of the split-wall column report. In response, the vehicle head unit 900 presents an audio version of the split-wall column report 1004, such as "Yesterday's split-wall column report showed we are operating near capacity at 100,000 barrels of production. We had two major alarms. There were no known environmental excursions." The audio version may be presented in a natural language format.For example, the edge facing component 12 may communicate with the grammar module or plant vocabulary database described above to generate a phonetic version in a natural language format.
[0096] The vehicle head unit 900 may present a graphical version of the split wall column report (not shown) on the display 902. The graphical version of the split wall column report may include a graphical representation of the split wall column and the inputs and outputs to the split wall column. The graphical version may also include process parameter data of the split wall column report and / or product parameter data of products input and output to the split wall column. Additionally, the graphical version of the split wall column report may include text transcribed from the audio version.
[0097] In some implementations, the process plant application or edge facing component 12 may generate multiple versions of the reports, such as a condensed and a full version of each report. The condensed version may include a summary of the information contained in the full version. The process plant application may communicate with a sensor in the vehicle head unit 900 to determine the speed of the vehicle. If the vehicle is traveling above a threshold speed (e.g., 10 miles per hour), the process plant application may present a condensed version of the report in audio format via the speaker and / or display 902 to reduce driver distraction. On the other hand, if the vehicle is traveling below the threshold speed (e.g., 10 miles per hour), the process plant application may present a full version of the report via the speaker and / or display 902. Additionally, the process plant application may present condensed versions of process flow modules, control modules, faceplates, process plant entities, etc. in response to determining that the vehicle is traveling above the threshold speed. More specifically, the condensed version of the process flow module may not include some of the process parameter data, process plant entities, alarms, etc. that are included in the full version of the process flow module.
[0098] An example process plant display 1100 presented on a vehicle head unit 900 and including a process flow module 1102 is shown in FIG. 11. The process flow module 1102 may be a full version, but the condensed version may not include some of the process parameter data, process plant entities, alarms, warnings, etc., included in the full version. The process flow module 1102 may include real-time process plant related data from the online process plant 5, such as real-time process parameter data, etc. For example, because the process plant application of the vehicle head unit 900 is not communicatively coupled to the process plant 5, the user cannot remotely adjust set point values, but the user can view set points, process parameter values, events, etc. within the online process plant 5. In some implementations, the process plant display 1100 is presented in response to a request by a user to view the process flow module 1102. In other implementations, the process plant display 1100 is a default display that presents process flow modules with process plant related data that correspond to the user's organizational role or that the user has previously requested to view.
[0099] In addition to presenting process plant related data in response to a user request or as default data, the process plant application executing on the vehicle head unit 900 may obtain and present notifications when events occur in the process plant 5 that may be of interest to the user according to the user's organizational role. For example, the edge facing component 12 may identify control modules, process flow modules, process plant entities, etc. that the user operates, maintains, is involved in, etc. according to the user's organizational role. In some implementations, the user may enter a set of control modules, process flow modules, process plant entities, etc. to monitor remotely via user control of the process plant application. When an event is stored in the context knowledge repository 42 associated with one of the identified control modules, process flow modules, process plant entities, etc. for the user, the edge facing component 12 sends a notification to the process plant application presented by the vehicle head unit 900. The notification may include a description of the event and a subset of the process plant related data from the context knowledge database 42 that corresponds to the event. The notification may include a graphical representation of the process flow module, control module, process plant entity, etc. associated with the event, along with a link to a detailed description of the event, event parameter data for the event, alarms, and / or warnings associated with the event, etc.
[0100] 12 illustrates a flow diagram depicting an example method 1200 for providing search results in response to a process plant search query. The method 1200 may be performed by a process plant search query server 400 as shown in FIG. 12, an edge facing component 12 as shown in FIG. 1, or any suitable computing device in communication with an edge facing component 12 within a process plant 5 or external to a process plant 5.
[0101] At block 1202, the process plant search query server 400 receives a process plant search query from a user interface device. The process plant search query may be any search query related to process plant related data and / or related to process plant entities within a process plant. The process plant search query may be a voice-based or text-based process plant search query. When the process plant search query is a voice-based process plant search query, the user interface device may transcribe the voice-based process plant search query into text and send the text to the process plant search query server 400. In other implementations, the user interface device may send the voice-based process plant search query to the process plant search query server 400, and the process plant search query server 400 may transcribe the voice-based process plant search query into text.
[0102] The process plant search query server 400 may then analyze / parse the process plant search query to identify the subject of the search query (block 1204), the context of the search query (block 1206), and / or other information in the search query that is used to filter the data set in response to the search query. More specifically, the process plant search query server 400 may obtain subject and filter indications from a grammar module or a plant vocabulary database included in or communicatively coupled to the process plant search query server 400. The grammar module or plant vocabulary database may store some subjects of the process plant search query and filters that modify the subjects and filter the search results. The grammar module or plant vocabulary database may also store some mappings of terms from the process plant search query that correspond to each subject and / or filter, such as synonyms or nicknames for the subject or filter.
[0103] The process plant search query server 400 may identify a context for the process plant search query, for example, from a user profile of the user contained in a user database. The user may provide login information that may be used by the process plant search query server 400 to access user information. Additionally, the context may include device information of the device from which the user submits the process plant search query, such as the location of the device, which may include a location within the process plant or may be an external location, device capabilities (e.g., audio, display, microphone, applications running on the device, etc.), device type, device size, etc. Additionally, the context may include the time the process plant search query was submitted.
[0104] At block 1208, the process plant search query server 400 may retrieve a dataset of process plant related data from the context knowledge repository 42 in response to the search query corresponding to a subject of the process plant search query. The process plant search query server 400 may then filter the dataset according to filters in the process plant search query and / or a context associated with the process plant search query. For example, the subject of the process plant search query may be alarms. Thus, the process plant search query server 400 may search a dataset of process plant related data from the context knowledge repository 42 related to alarms. Filters for the process plant search query may be critical alarms, alarms for a particular boiler unit, and alarms that occurred in the last 8 hours. The process plant search query server 400 may then filter the dataset to remove process plant related data that is not related to critical alarms, alarms for a particular boiler unit, and alarms that occurred in the last 8 hours.
[0105] Next, in block 1210, the process plant search query server 400 may generate a set of process plant search results according to the filtered data set. The process plant search query server 400 may convert the filtered data set into process plant search results by generating a natural language response for each data item in the filtered data set. For example, the process plant search query server 400 may convert the data items into process plant search results by obtaining an introductory sentence such as "Good morning", "Hello", "Happy Holidays!", etc., from a grammar module or plant vocabulary based on the time / year and / or the user's name. The process plant search query server 400 may also obtain a natural language response to the process plant search query from the grammar module or plant vocabulary, such as "Critical alarms include..." or "You have __ critical alarms...". The natural language response may be a predefined natural language response stored in the grammar module or plant vocabulary database in association with a particular process plant query subject or a particular process plant query subject and one or more filters. For example, whenever the process plant query subject is an alarm, the predefined natural language response would be "You have _ alarms". When one of the filters is a critical alarm, the predetermined natural language response may be "You have a critical alarm...." In other implementations, the process plant search query server 400 may generate the search results as links to data items in the filtered data set, such as links to more information about a control module, as shown in FIG.
[0106] The process plant search query server 400 then provides the set of process plant search results to a user interface device for display at block 1212. The set of process plant search results may be provided in text format and presented graphically on a user interface of the user interface device, or may be provided in audio format and presented via a speaker.
[0107] 13 shows a flow diagram illustrating an example method 1300 for presenting process plant search results in response to a process plant search query. The method 1300 may be performed by an external system 8, such as a user interface device, as shown in FIG. 1, or may be performed by a user interface device operating within the process plant 5.
[0108] At block 1302, the user interface device receives a process plant search query from a user. The process plant search query may be any search query related to process plant related data and / or related to process plant entities within a process plant. Additionally, the process plant search query may be provided via text input by selecting a user control on the user interface device, such as a process plant search bar, or via voice input. The user interface device may then provide the process plant search query to the process plant search query server 400. Additionally, the user interface device may provide user information, device information, search history of the user's previous search queries, display of graphical information to be presented on the process plant related data when the process plant search query is submitted, etc., as context for the process plant search query. The process plant search query server 400 then analyzes the process plant search query and the context and generates a set of process plant search results in response to the process plant search query.
[0109] At block 1304, the user interface device retrieves a set of process plant search results, for example, from the process plant search query server 400. In some implementations, the process plant search query server 400 also generates a set of process plant categories corresponding to the process plant search results, such as all, alarms, control modules, process flow modules, reports, etc. The user interface device retrieves the set of process plant categories (block 1306) and presents in a display of the process plant search results an indication of the process plant categories (block 1308) and a subset of the process plant search results corresponding to each process plant category (block 1310). Each process plant search result may include a selectable link to more information about the process plant search result. The more information about the process plant search result may include process plant related data, such as configuration data, runtime data, maintenance data, analytical data, environmental data, diagnostic data, etc. Additionally, each process plant search result may include a thumbnail image or preview of the more information about the process plant search result. For example, for a process plant search result that includes a control module, the thumbnail image or preview corresponding to the process plant search result may be a thumbnail image of a graphical representation of the control module.
[0110] 14 shows a flow diagram illustrating an example method 1400 for presenting process plant related data in a vehicle head unit. The method 1400 may be performed by the vehicle head unit 900 as shown in FIG.
[0111] At block 1402, process plant related data is received at a process plant application executing on the vehicle head unit 900. The process plant related data may be received in response to a request by a user, may be default process plant related data, or may be received as a notification in response to an event at the process plant 5 that may be relevant to the user's organizational role. At block 1404, the user's organizational role may be determined, and the process plant application may present a subset of the process plant related data on the vehicle head unit 900 according to the user's organizational role (block 1406).
[0112] In some implementations, the edge facing components 12 may generate and provide a subset of process plant related data to the process plant application based on the user's organizational role. The process plant related data presented by the vehicle head unit 900 may include reports generated for the user within a particular time period, updates on process plant entities that the user operates, maintains, is involved in, etc., alarms or important information for these process plant entities, graphical representations of process flow or control modules that the user recently viewed, or process flow or control modules that include process plant entities that the user operates, maintains, is responsible for, etc.
[0113] The process plant related data may be presented graphically on a user interface of the vehicle head unit 900 or audibly via a speaker. Additionally, the process plant related data may be presented in a natural language format.
[0114] Embodiments of the technology described in this disclosure may include any number of the following aspects, either alone or in combination.
[0115] 1. A method for providing search results in response to a process plant search query, the method comprising: receiving, at a computing device, a process plant search query from a user regarding one or more process plant entities within a process plant; retrieving, by the computing device, data responsive to the process plant search query from a knowledge repository in which process plant-related data describing attributes of the process plant entities is organized by semantic relationships between the process plant-related data and the process plant entities; and providing, by the computing device, a set of search results to the user based on the retrieved data set responsive to the process plant search query.
[0116] 2. The method of aspect 1, further comprising: analyzing one or more terms in the process plant search query to identify a subject of the process plant search query; retrieving a dataset from a knowledge repository containing process plant-related data corresponding to the subject of the process plant query; analyzing one or more remaining terms in the process plant search query to identify one or more filters for filtering the dataset; filtering the dataset according to the one or more filters; and providing a set of search results to a user according to the filtered dataset.
[0117] 3. The method of any one of the preceding aspects, further comprising identifying a context for the process plant search query, identifying one or more additional filters for filtering the dataset according to the context, and filtering the dataset according to the one or more additional filters.
[0118] 4. The method of any one of aspects 1 to 3, wherein the context includes the user's organizational role, the user's location, the time of the process plant search query, or a previous process plant search query from the user.
[0119] 5. The method of any one of aspects 1 to 4, further comprising: ranking the set of search results based on (i) a context for the process plant search query; or (ii) the amount to which each search result corresponds to one or more remaining terms in the process plant search query; and providing the set of ranked search results to the user.
[0120] 6. The method of any one of aspects 1 to 5, wherein analyzing one or more terms in the process plant search query to identify a subject of the process plant search query includes obtaining a plurality of process plant search query subject candidates, analyzing the process plant search query to identify a likelihood that each of the plurality of process plant search query subject candidates corresponds to the process plant search query, and identifying a subject as the process plant search query subject candidate from the plurality of process plant search query subject candidates having a highest likelihood corresponding to the process plant search query.
[0121] 7. The method of any one of aspects 1-6, further comprising: identifying one or more terms in the process plant search query associated with the identified subject matter; and analyzing one or more remaining terms in the process plant search query to identify one or more filters for filtering the dataset.
[0122] 8. A method according to any one of aspects 1 to 7, wherein the process plant related data describing attributes of the process plant entity includes at least one of configuration data, runtime data, environmental data, maintenance data, analytical data, or diagnostic data.
[0123] 9. The method of any one of aspects 1-8, wherein receiving the process plant search query includes receiving a voice-based process plant search query or receiving a text-based process plant search query.
[0124] 10. The method of any one of aspects 1 to 9, wherein providing the set of search results to the user includes providing the set of search results in audio or text format for presentation on a user interface device.
[0125] 11. The method of any one of aspects 1-10, wherein the knowledge repository includes a replica of the process plant-related data generated within the process plant, and the computing device does not directly interact with the process plant-related data generated within the process plant.
[0126] 12. A computing device for providing search results in response to a process plant search query, the computing device comprising: one or more processors; a communication unit; and one or more non-transitory computer readable media coupled to the one or more processors and the communication unit, the one or more non-transitory computer readable media storing instructions that, when executed by the one or more processors, cause the computing device to: receive a process plant search query from a user related to one or more process plant entities in a process plant; retrieve a dataset responsive to the process plant search query from a knowledge repository, where process plant-related data describing attributes of the process plant entities is organized according to semantic relationships between the process plant-related data and the process plant entities; and provide, via the communication unit, a set of search results to the user based on the retrieved dataset responsive to the process plant search query.
[0127] 13. The computing device of aspect 12, wherein the instructions further cause the computing device to: analyze one or more terms in the process plant search query to identify a subject of the process plant search query; retrieve, from the knowledge repository, a dataset including process plant-related data corresponding to the subject of the process plant query; analyze one or more remaining terms in the process plant search query to identify one or more filters for filtering the dataset; filter the dataset according to the one or more filters; and provide a set of search results to a user according to the filtered dataset.
[0128] 14. A computing device as described in any one of aspects 12-13, wherein the instructions further cause the computing device to identify a context for the process plant search query, identify one or more additional filters for filtering the dataset according to the context, and filter the dataset according to the one or more additional filters.
[0129] 15. The computing device of any one of aspects 12-14, wherein the context includes the user's organizational role, the user's location, the time of the process plant search query, or a previous process plant search query from the user.
[0130] 16. The computer device of any one of aspects 12-15, wherein the instructions further cause the computing device to: rank the set of search results based on (i) a context for the process plant search query or (ii) an amount to which each search result corresponds to one or more remaining terms in the process plant search query; and provide the set of ranked search results to a user.
[0131] 17. The computer device of any one of aspects 12-16, wherein the instructions further cause the computing device to: obtain a plurality of process plant search query subject candidates to analyze one or more terms in the process plant search query to identify a subject of the process plant search query; analyze the process plant search query to identify a likelihood that each of the plurality of process plant search query subject candidates corresponds to the process plant search query; and identify a subject as the process plant search query subject candidate of the plurality of process plant search query subject candidates that has the highest likelihood of corresponding to the process plant search query.
[0132] 18. The computing device of any one of aspects 12-17, wherein the instructions further cause the computing device to identify one or more terms in the process plant search query that are associated with the identified subject matter, and analyze one or more remaining terms in the process plant search query to identify one or more filters for filtering the dataset.
[0133] 19. The computing device of any one of aspects 12-18, wherein the process plant-related data describing attributes of the process plant entity includes at least one of configuration data, runtime data, environmental data, maintenance data, analytical data, or diagnostic data.
[0134] 20. The computing device of any one of aspects 12-19, wherein the process plant search query comprises a voice-based process plant search query or a text-based process plant search query.
[0135] 21. A computing device according to any one of aspects 12-20, wherein the set of search results is provided in audio or text format for presentation on a user interface device.
[0136] 22. A computing device according to any one of aspects 12 to 21, wherein the knowledge repository includes a replica of process plant-related data generated within the process plant, and the computing device does not directly interact with the process plant-related data generated within the process plant.
[0137] 23. A process control system comprising: one or more devices corresponding to process plant entities disposed in a process plant and performing physical functions to control an industrial process; and a data diode communicatively connecting the one or more devices to a computing device, the data diode being configured to prevent bidirectional communication between a network of the process plant and the computing device, the computing device comprising one or more processors; a communication unit; and one or more non-transitory computer readable media coupled to the one or more processors and the communication unit, the data diode being configured, when executed by the one or more processors, to communicate to the computing device via the data diode and the communication unit that the process plant is online and that the computing device is configured to communicate to the computing device ... computing device is online and that the computing device is configured to communicate to the computing device that the computing device is online and that the computing device is configured to communicate to the computing device that the computing device is online and that the computing device is configured to communicate to the computing device that the computing device is online and that the computing device is configured to communicate to the computing device that the computing device is online and that the computing device is configured to communicate to the computing device that the computing device is online and that the computing device is configured to communicate to the computing device that the computing device is online and that the computing device is configured to communicate to the computing device that the computing device is receiving a copy of process plant-related data generated by one or more devices of the process plant while the process plant is in a process state, the process plant-related data being protected for transmission from the one or more devices to a computing device via a data diode; storing the copy of the process plant-related data in a knowledge repository, wherein the process plant-related data describing attributes of the process plant entities is organized according to semantic relationships between the process plant-related data and the process plant entities; and providing at least a portion of the data from the knowledge repository to an application or other computing device.
[0138] 24. The process control system of aspect 23, wherein the instructions further cause the computing device to provide, in response to a process plant search query, a subset of the replicas of the process plant related data as a search result.
[0139] 25. A method for presenting process plant search results in response to a process plant search query, the method comprising: receiving, at a user interface device, a process plant search query from a user associated with one or more process plant entities within a process plant; obtaining, by the user interface device, a set of process plant search results in response to the process plant search query; and presenting, by the user interface device, the set of process plant search results in a display of the process plant search results, each process plant search result including a selectable link to process plant-related data within the process plant.
[0140] 26. The method of aspect 25, wherein presenting the set of process plant search results within the display of process plant search results includes presenting each process plant search result with a thumbnail image including a preview of process plant-related data presented in a selectable link.
[0141] 27. The method of any one of aspects 25-26, further comprising: obtaining, by a user interface device, a plurality of process plant categories corresponding to the set of process plant search results; for each of the plurality of process plant categories, obtaining, by the user interface device, a subset of process plant search results corresponding to the respective process plant category; presenting, by the user interface device, a representation of each of the plurality of process plant categories in a display of the process plant search results; and, for each of the plurality of process plant categories, presenting, by the user interface device, the subset of process plant search results together with an indication of the respective process plant category.
[0142] 28. The method of any one of aspects 25-27, wherein presenting the subset of process plant search results with an indication of a category of the respective process plant includes, in response to receiving a selection of one of the indications of the plurality of process plants, presenting the subset of process plant search results corresponding to the category, the selected process plant category.
[0143] 30. The method of any one of aspects 25-29, wherein obtaining a set of process plant search results in response to the process plant search query includes obtaining a set of ranked process plant search results and presenting the set of process plant search results in ranked order according to their respective rankings.
[0144] 31. The method of any one of aspects 25-30, further comprising: determining a size or type of a user interface device; and adjusting presentation of the set of process plant search results in a display of the process plant search results based on the size or type of the user interface device.
[0145] 32. The method of any one of aspects 25-31, further comprising, in response to determining that the user interface device is a mobile device, presenting a single process plant search result within the display of process plant search results.
[0146] 33. The method of any one of aspects 25-32, further comprising presenting the set of process plant search results in a display of the process plant search results in response to determining that the size of the user interface device is above a threshold size.
[0147] 34. The method of any one of aspects 25-33, wherein obtaining a set of process plant search results in response to the process plant search query includes sending the process plant search query to a server computing device and receiving the set of process plant search results from the server computing device.
[0148] 35. The method of any one of aspects 25-34, wherein presenting a set of process plant search results, each process plant search result including a selectable link to process plant related data, includes presenting each process plant search result with a selectable link to at least one of configuration data, runtime data, environmental data, maintenance data, analytical data, or diagnostic data.
[0149] 36. The method of any one of aspects 25-35, wherein the selectable link to the process plant-related data within the process plant is a selectable link to a replica of the process plant-related data within the process plant, such that a user's interaction with the replica of the process plant-related data does not affect run-time operation of the process plant.
[0150] 37. A user interface device for presenting process plant search results in response to a process plant search query, comprising: one or more processors; a user interface; and one or more non-transitory computer readable media coupled to the one or more processors and the user interface, the one or more non-transitory computer readable media storing instructions that, when executed by the one or more processors, cause the user interface device to: receive a process plant search query from a user related to one or more process plant entities within a process plant; obtain a set of process plant search results in response to the process plant search query; and present the set of process plant search results in a display of the process plant search results, each process plant search result including a selectable link to process plant related data within the process plant.
[0151] 38. The user interface device of aspect 37, wherein each process plant search result is presented with a thumbnail image including a preview of the process plant related data presented in a selectable link.
[0152] 39. The user interface device of any one of aspects 37-38, wherein the instructions further cause the user interface device to: obtain a plurality of process plant categories corresponding to the set of process plant search results; for each of the plurality of process plant categories, obtain a subset of the process plant search results corresponding to the respective process plant category; present, via the user interface, a representation of each of the plurality of process plant categories in a display of the process plant search results; and, for each of the plurality of process plant categories, present, via the user interface, the subset of the process plant search results together with an indication of the respective process plant category.
[0153] 40. A user interface device as described in any one of aspects 37 to 39, wherein the instructions cause the user interface device to, in response to receiving a selection of one of the multiple process plant category displays, present via the user interface the subset of process plant search results corresponding to the selected process plant category, for presenting a subset of the process plant search results along with a display of the respective process plant category.
[0154] 41. A user interface device as described in any one of aspects 37 to 40, wherein, to obtain a set of process plant search results in response to a process plant search query, the instructions cause the user interface device to obtain a set of ranked process plant search results, each process plant search result having a respective rank, and present, via the user interface, the set of process plant search results in ranked order according to their respective rankings.
[0155] 42. A user interface device as described in any one of aspects 37 to 41, wherein the instructions further cause the user interface device to determine a size or type of the user interface device and adjust the presentation of the set of process plant search results in a display of the process plant search results based on the size or type of the user interface device.
[0156] 43. The user interface device of any one of aspects 37 to 42, wherein the instructions further cause the user interface device to, in response to determining that the user interface device is a mobile device, present, via the user interface, a single process plant search result within a display of process plant search results.
[0157] 44. The user interface device of any one of aspects 37 to 43, further comprising a speaker, and the instructions further cause the user interface device to present, in audio form, via the speaker, a summary of the process plant-related data associated with the single process plant search result.
[0158] 45. The user interface device of any one of aspects 37 to 44, wherein the instructions further cause the user interface device to present a set of process plant search results in a display of the process plant search results via the user interface in response to determining that a size of the user interface device exceeds a threshold value size.
[0159] 46. A user interface device as described in any one of aspects 37 to 45, wherein the instructions cause the user interface device to send the process plant search query to a server computing device and receive the set of process plant search results from the server computing device to obtain a set of process plant search results in response to the process plant search query.
[0160] 47. The user interface device of any one of aspects 37-46, wherein the process plant related data includes at least one of configuration data, runtime data, environmental data, maintenance data, analytical data, or diagnostic data.
[0161] 48. A user interface device according to any one of aspects 37 to 47, wherein the selectable link to the process plant-related data within the process plant is a selectable link to a copy of the process plant-related data within the process plant, such that a user's interaction with the copy of the process plant-related data does not affect run-time operation of the process plant.
[0162] 49. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to: receive a process plant search query from a user associated with one or more process plant entities within a process plant; obtain a set of process plant search results in response to the process plant search query; and present the set of process plant search results within a display of process plant search results on a user interface device, each process plant search result including a selectable link to process plant related data within the process plant.
[0163] 50. The non-transitory computer-readable medium of aspect 49, wherein each process plant search result is presented with a thumbnail image including a preview of the process plant-related data presented in a selectable link.
[0164] 51. The non-transitory computer-readable medium of any one of aspects 49-50, wherein the instructions further cause the one or more processors to: obtain a plurality of process plant categories corresponding to the set of process plant search results; for each of the plurality of process plant categories, obtain a subset of process plant search results corresponding to the respective process plant category; present, via the user interface, a representation of each of the plurality of process plant categories in a display of the process plant search results; and, for each of the plurality of process plant categories, present, via the user interface, the subset of process plant search results together with an indication of the respective process plant category.
[0165] 52. The non-transitory computer-readable medium of any one of aspects 49-51, wherein the instructions further cause the one or more processors to determine a size or type of a user interface device and adjust the presentation of the set of process plant search results in a display of the process plant search results based on the size or type of the user interface device.
[0166] 53. A method for presenting process plant related data in a vehicle head unit, the method comprising: receiving, in a process plant application executing on the vehicle head unit, process plant related data related to one or more process plant entities in the process plant, the one or more process plant entities performing a physical function for controlling an industrial process; and presenting, by the vehicle head unit, the process plant related data for a user to remotely monitor online operations of the process plant, the one or more process plant entities being replicas of the process plant related data generated in the process plant such that the vehicle head unit does not directly interact with the process plant related data generated in the process plant.
[0167] 54. The method of aspect 53, further comprising determining an organizational role of the user within the process plant, and presenting the process plant-related data to the user to remotely monitor online operations of the process plant further comprises presenting a subset of the process plant-related data relevant to the user's organizational role.
[0168] 55. The method of any one of aspects 53-54, further comprising, in response to an event occurring within online operations of the process plant and related to the user's organizational role, presenting a notification regarding at least a portion of the process plant-related data associated with the event.
[0169] 56. The method of any one of aspects 53-55, wherein presenting the process plant-related data to a user to remotely monitor online operations of the process plant includes presenting a report regarding at least one of one or more process plant entities associated with the user's role in an organization, the report including at least a portion of the process plant-related data associated with the at least one process plant entity.
[0170] 57. The method of any one of aspects 53-56, further comprising: determining a speed of the vehicle; comparing the speed of the vehicle to a threshold speed; and, in response to determining that the speed of the vehicle exceeds the threshold speed, presenting in audio format a condensed version of a report regarding at least one process plant entity associated with the user's organizational role.
[0171] 58. The method of any one of aspects 53-57, wherein presenting process plant related data to a user to remotely monitor online operations of the process plant includes presenting a graphical representation of a process flow module showing at least one runtime operation of one or more process plant entities including process parameter data for the at least one process plant entity.
[0172] 59. The method of any one of aspects 53-58, further comprising presenting the process plant related data on a user interface of the vehicle head unit.
[0173] 60. The method of any one of aspects 53-59, further comprising presenting the process plant related data via a speaker in the vehicle head unit.
[0174] 61. The method of any one of aspects 53-60, further comprising presenting the process plant related data in a natural language format.
[0175] 62. A method according to any one of aspects 53-61, comprising receiving a process plant search query from a user associated with one or more process plant entities, and presenting, by the vehicle head unit, a set of process plant search results responsive to the process plant search query, the set of process plant search results further including at least a portion of the process plant related data.
[0176] 63. A vehicle head unit comprising: one or more processors; a user interface; a speaker; and one or more non-transitory computer readable media coupled to the one or more processors, the one or more non-transitory computer readable media storing a process plant application thereon which, when executed by the one or more processors, causes the vehicle head unit to receive process plant related data regarding one or more process plant entities within the process plant, the one or more process plant entities performing physical functions to control an industrial process, and present, via the user interface or speaker, the process plant related data for a user to remotely monitor online operations of the process plant, the process plant related data being a replica of the process plant related data generated within the process plant such that the vehicle head unit does not directly interact with the process plant related data generated within the process plant.
[0177] 64. The vehicle head unit of aspect 63, wherein the process plant application further determines, to the vehicle head unit, the user's organizational role within the process plant and presents a subset of process plant-related data relevant to the user's organizational role.
[0178] 65. A vehicle head unit as described in any one of aspects 63 to 64, wherein the process plant application further causes the vehicle head unit to present a notification related to at least a portion of the process plant-related data associated with the event in response to an event occurring within online operations of the process plant and related to the user's organizational role.
[0179] 66. A vehicle head unit as described in any one of aspects 63 to 65, wherein the process plant application causes the vehicle head unit to present a report regarding at least one of one or more process plant entities associated with the user's role in the organization, to present process plant-related data for a user to remotely monitor online operations of the process plant, the report including at least a portion of the process plant-related data associated with the at least one process plant entity.
[0180] 67. A vehicle head unit as described in any one of aspects 63 to 66, wherein the process plant application further causes the vehicle head unit to determine a speed of the vehicle, compare the speed of the vehicle to a threshold speed, and in response to determining that the speed of the vehicle exceeds the threshold speed, present a condensed version of a report in audio format regarding at least one process plant entity associated with the user's organizational role.
[0181] 68. A vehicle head unit as described in any one of aspects 63 to 67, wherein the process plant application causes the vehicle head unit to present a graphical representation of a process flow module showing runtime operation of one or more process plant entities, including process parameter data for at least one process plant entity, to present process plant related data for a user to remotely monitor online operation of the process plant.
[0182] 69. The vehicle head unit of any one of aspects 63-68, wherein the process plant application further causes the vehicle head unit to present the process plant related data in a natural language format.
[0183] 70. A vehicle head unit as described in any one of aspects 63 to 69, wherein the process plant application causes the vehicle head unit to receive a process plant search query from a user regarding one or more process plant entities and present a set of process plant search results responsive to the process plant search query, the set of process plant search results including at least a portion of the process plant related data.
[0184] 71. A non-transitory computer readable medium storing instructions that, when executed by one or more processors of a vehicle head unit, cause the vehicle head unit to receive process plant related data associated with one or more process plant entities within a process plant, the one or more process plant entities performing a physical function for controlling an industrial process, and present the process plant related data via a user interface or a speaker of the vehicle head unit for a user to remotely monitor online operations of the process plant, the process plant related data being a replica of the process plant related data generated within the process plant such that the vehicle head unit does not directly interact with the process plant related data generated within the process plant.
[0185] 72. The non-transitory computer-readable medium of aspect 71, wherein the process plant application further causes the vehicle head unit to determine a user's organizational role within the process plant and present a subset of the process plant-related data associated with the user's organizational role.
[0186] 73. A non-transitory computer-readable medium as described in any one of aspects 71 to 72, wherein the process plant application further causes the vehicle head unit to present a notification related to at least a portion of the process plant-related data associated with the event in response to an event occurring within online operations of the process plant and related to the user's organizational role.
[0187] 74. A non-transitory computer-readable medium as described in any one of aspects 71 to 73, wherein the process plant application causes the vehicle head unit to present a report regarding at least one of one or more process plant entities associated with the user's role in the organization, the report including at least a portion of the process plant-related data associated with the at least one process plant entity, to present process plant-related data for a user to remotely monitor online operations of the process plant.
[0188] 75. A non-transitory computer-readable medium as described in any one of aspects 71 to 74, wherein the process plant application further causes the vehicle head unit to determine a speed of the vehicle, compare the speed of the vehicle to a threshold speed, and in response to determining that the speed of the vehicle exceeds the threshold speed, present a condensed version of a report in audio format regarding at least one process plant entity associated with the user's organizational role.
[0189] 76. A non-transitory computer-readable medium as described in any one of aspects 71 to 75, wherein the process plant application causes the vehicle head unit to present a graphical representation of a process flow module showing runtime operation of one or more process plant entities, including process parameter data for at least one process plant entity, to present process plant related data for a user to remotely monitor online operation of the process plant.
[0190] 77. The non-transitory computer-readable medium of any one of aspects 71-76, wherein the process plant application further causes the vehicle head unit to present the process plant related data in a natural language format.
[0191] 78. A non-transitory computer-readable medium as described in any one of aspects 71 to 77, wherein the process plant application causes the vehicle head unit to receive a process plant search query from a user regarding one or more process plant entities and present a set of process plant search results responsive to the process plant search query, the set of process plant search results including at least a portion of the process plant related data.
[0192] When implemented in software, any of the applications, services, and engines described herein may be stored in any tangible, non-transitory computer-readable memory, such as a magnetic disk, a laser disk, a solid-state memory device, a molecular memory storage device, or other storage medium, such as 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 are merely exemplary and should not be considered 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 being 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.
[0193] 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 method for providing search results in response to a process plant search query, comprising: receiving, at a computing device, a process plant search query from a user regarding one or more process plant entities within a process plant; obtaining, by the computing device, data responsive to the process plant search query from a knowledge repository, in which process plant-related data describing attributes of the process plant entities is organized by semantic relationships between the process plant-related data and the process plant entities, the knowledge repository including a copy of the process plant-related data generated within the process plant, and the computing device does not directly interact with the process plant-related data generated within the process plant; providing, by the computing device, a set of search results based on the acquired data set responsive to the process plant search query to a user interface device of the user, the user interface device having no access authorization to communicate with the process plant; A method comprising:
2. analyzing one or more terms in the process plant search query to identify a subject of the process plant search query; obtaining the data set from the knowledge repository that includes process plant related data corresponding to the subject of the process plant search query; analyzing one or more remaining terms in the process plant search query to identify one or more filters for filtering the data set; filtering the data set according to the one or more filters; The method of claim 1 , further comprising: providing the set of search results to the user according to the filtered data set.
3. identifying a context for the process plant search query; identifying one or more additional filters for filtering the data set according to the context; The method of claim 2 , further comprising filtering the data set according to the one or more additional filters.
4. The method of claim 3 , wherein the context includes the user's organizational role, the location of the user, the time of the process plant search query, or a previous process plant search query from the user.
5. ranking the set of search results based on (i) a context for the process plant search query, or (ii) an amount to which each search result corresponds to the one or more remaining terms in the process plant search query; The method of claim 2 , further comprising: providing the set of ranked search results to the user.
6. Analyzing one or more terms in the process plant search query to identify subject matter of the process plant search query includes: Obtaining a plurality of process plant search query subject candidates; analyzing the process plant search query to identify a likelihood that each of the plurality of process plant search query subject candidates corresponds to the process plant search query; and identifying the subject as the process plant search query subject candidate from among the plurality of process plant search query subject candidates that have a highest likelihood of corresponding to the process plant search query.
7. identifying the one or more terms within the process plant search query that are associated with the identified subject matter; 7. The method of claim 6, further comprising: analyzing one or more remaining terms in the process plant search query to identify one or more filters for filtering the data set.
8. The method of claim 1 , wherein the process plant related data describing attributes of the process plant entities comprises at least one of configuration data, runtime data, environmental data, maintenance data, analytical data, or diagnostic data.
9. The method of claim 1 , wherein receiving the process plant search query comprises receiving a voice-based process plant search query or receiving a text-based process plant search query.
10. The method of claim 1 , wherein providing the set of search results to the user comprises providing the set of search results in audio or text format for presentation on a user interface device.
11. 1. A computing device for providing search results in response to a process plant search query, comprising: one or more processors; A communication unit; one or more non-transitory computer-readable mediums, coupled to the one or more processors and the communication unit, that, when executed by the one or more processors, cause the computing device to: receiving a process plant search query from a user associated with one or more process plant entities within a process plant; obtaining a data set responsive to the process plant search query from a knowledge repository, in which process plant-related data describing attributes of the process plant entities is organized according to semantic relationships between the process plant-related data and the process plant entities, the knowledge repository including a copy of the process plant-related data generated within the process plant, and the computing device does not directly interact with the process plant-related data generated within the process plant; providing, via the communication unit, a set of search results based on the acquired data set responsive to the process plant search query to a user interface device of the user, the user interface device having no access authorization to communicate with the process plant; and one or more non-transitory computer-readable media having instructions stored thereon to cause the computing device to:
12. The instructions cause the computing device to: analyzing one or more terms in the process plant search query to identify a subject of the process plant search query; obtaining, from the knowledge repository, the dataset including process plant related data corresponding to the subject matter of the process plant search query; analyzing one or more remaining terms in the process plant search query to identify one or more filters for filtering the data set; filtering the data set according to the one or more filters; The computing device of claim 11 , further configured to: provide the set of search results to the user according to the filtered data set.
13. The instructions cause the computing device to: identifying a context for the process plant search query; identifying one or more additional filters for filtering the data set according to the context; The computing device of claim 12 , further configured to: filter the data set according to the one or more additional filters.
14. The computing device of claim 13 , wherein the context comprises the user's organizational role, the location of the user, a time of the process plant search query, or a previous process plant search query from the user.
15. The instructions cause the computing device to: ranking the set of search results based on (i) a context for the process plant search query, or (ii) an amount to which each search result corresponds to the one or more remaining terms in the process plant search query; The computing device of claim 12 , further configured to: provide the set of ranked search results to the user.
16. To analyze one or more terms in the process plant search query to identify a subject of the process plant search query, the instructions may include: Obtaining a plurality of process plant search query subject candidates; analyzing the process plant search query to identify a likelihood that each of the plurality of process plant search query subject candidates corresponds to the process plant search query; and identifying the subject as the process plant search query subject candidate of the plurality of process plant search query subject candidates that has a highest likelihood of corresponding to the process plant search query.
17. The instructions cause the computing device to: identifying the one or more terms within the process plant search query that are associated with the identified subject matter; 20. The computing device of claim 16, further comprising: analyzing the one or more remaining terms in the process plant search query to identify one or more filters for filtering the data set.
18. 18. The computing device of claim 11, wherein the process plant related data describing attributes of the process plant entities comprises at least one of configuration data, runtime data, environmental data, maintenance data, analytical data, or diagnostic data.
19. The computing device of claim 18 , wherein the process plant search query comprises a voice-based process plant search query or a text-based process plant search query.
20. 20. The computing device of claim 11, wherein the set of search results is provided in audio or text format for presentation on a user interface device.
Citation Information
Patent Citations
Method and apparatus to manage process control search result
JP2012069118A
Publishing data across data diode for secured process control communications
JP2018106689A
System and method for generating a geographic information card map
US20170371883A1
Aggregating context data for programmable search engines
US8756210B1