Process Automation Alarms for Distributed Control Nodes
By assigning alarms to unique function block identifiers and using a configuration GUI, the challenges of deploying alarms in distributed and heterogeneous systems are addressed, ensuring robust and accurate alarm monitoring across process automation nodes.
Patent Information
- Application Number
- JP2025538530
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2022-12-28
- Filing Date
- 2023-12-28
- Publication Date
- 2026-01-07
AI Technical Summary
Creating, updating, and deploying process automation alarms in distributed and heterogeneous systems is cumbersome and error-prone due to the need for manual configuration and lack of clear association between alarm configuration files and function blocks, leading to potential inaccuracies and failures in alarm monitoring.
Assigning alarms to unique function block identifiers accessible via a process automation network, using an alarm configuration GUI to define alarm parameters, and transmitting configuration files to corresponding DCNs, enabling efficient and robust alarm deployment across multiple nodes.
Facilitates accurate and efficient alarm configuration and deployment, reducing errors and ensuring consistent monitoring across distributed and heterogeneous systems, even with node replacements or modifications.
Smart Images

Figure 2026500572000001_ABST
Abstract
Description
[Background technology]
[0001] Alarms are utilized within a process automation system to detect potential anomalies and to cause actions to be taken in response to the detection of the potential anomaly. The potential anomaly may be an anomaly involving the process automation system and / or an anomaly involving the process automation process for which the process automation system is deployed. Actions for alarms may include, for example, causing a corresponding notification to be rendered in an interface monitored by an operator and / or causing a remediation to be automatically performed (e.g., an automation process or subprocess being automatically stopped or suppressed). As an example, an alarm may be configured to monitor sensor readings from sensors in the process automation system and cause a corresponding notification to be rendered when a sensor reading exceeds a high value (and / or a high-high value) and / or falls below a low value (and / or a low-low value).
[0002] In some process automation systems, all of the hardware and / or software for the process automation control nodes of the process automation system may be supplied and / or managed by a single entity (e.g., a single company), which allows the single entity to utilize its own proprietary techniques for creating and managing alarms associated with the corresponding process automation control nodes.
[0003] However, other process automation systems include heterogeneous hardware and / or software that are supplied and / or managed by multiple entities and / or deployed in a distributed manner. For example, a process automation system may include some process automation control nodes that are supplied and / or managed by a first entity, other process automation control nodes that are supplied and / or managed by a second entity, etc. Each process automation control node may have different hardware and / or software specifications, including different function blocks that define the control performed by the process automation control node.
[0004] A process automation control node may include a distributed control node (DCN) that includes hardware (e.g., a processor, memory, network interfaces, input and / or output ports, and / or other hardware) and software (e.g., function blocks) executed by at least some of the hardware. For example, software may be included in the memory of the DCN and executed by a processor of the DCN. The DCN software may, for example, utilize data from input ports of the DCN and / or data from other DCNs during execution and / or generate output for provision via output ports and / or network interfaces (e.g., for transmission to one or more endpoints via a process automation network of the process automation system). Summary of the Invention [Problem to be solved by the invention]
[0005] Creating, updating, and / or deploying process automation alarms in a process automation system that includes distributed and / or heterogeneous hardware and / or software presents various technical challenges. For example, a process automation alarm may require an alarm engine to monitor process variables of a particular function block, such as the input, output, and / or internal variables of the particular function block. The DCN that generates and / or enables access to the process variables must be accessible to the alarm engine to enable the alarm engine to monitor those process variables. Furthermore, the alarm engine must have access to appropriate alarm configuration files and must utilize those alarm configuration files when monitoring for the occurrence of corresponding alarm conditions and taking corresponding actions in response thereto. The alarm configuration files may specify conditions for corresponding process variables that, when met, cause the alarm engine to initiate a corresponding action. Furthermore, when the action initiated in response to an alarm condition being met includes initiating rendering (e.g., visual and / or audio rendering) of a corresponding output via an alarm viewer, establishing a persistent, connection-oriented communication session between the alarm engine and the alarm viewer may be required or desired. However, due to the distributed and / or heterogeneous nature of process automation systems, achieving one or more of such requirements can be cumbersome and / or error-prone.
[0006] As an example, assume that an alarm configuration file is stored locally on a particular DCN and utilized by the local alarm engine of the particular DCN when monitoring process variables of particular function blocks on the particular DCN (e.g., monitoring values for those variables during execution of the particular function block). It is further assumed that the alarm configuration file is stored locally and utilized by the particular DCN based on being pre-loaded onto the particular DCN (prior to commissioning the DCN in the process automation system) or manually configured via a human-machine interface (HMI) coupled to the DCN during commissioning. If a particular DCN is replaced with a new DCN implementing the same function blocks, this may require manually pre-loading the alarm configuration file onto the new DCN or manually configuring the new DCN via the HMI. Similarly, if a particular function block and / or alarm engine is removed from a particular DCN and newly implemented on an alternative DCN, it may require manually reassigning the alarm configuration file to the alternative DCN. In addition to manual reassignment being cumbersome and requiring utilization of computing resources, errors in manual reassignment may result in corresponding alarms not being truly active or being inaccurate (e.g., due to an incorrect condition being defined), which may result in the alarm condition not being monitored for occurrence and no corresponding action being taken, which may result in adverse conditions or other negative consequences in the process automation setting.
[0007] As another example, during initial commissioning of a DCN for a process automation system, there may be hundreds or thousands of alarm configuration files that need to be generated and / or deployed in the appropriate DCN for effective alarm monitoring. However, due to the distributed and / or heterogeneous nature of the process automation system, determining which DCN is the appropriate DCN for the corresponding alarm configuration file to ensure that alarm configuration files for all desired alarms are actually deployed and active and / or to update the alarms (e.g., by generating and deploying new alarm configuration files) may be cumbersome and / or error-prone. For example, it may not be readily apparent which DCN's alarm engine, among the hundreds or thousands of DCNs, is tasked with utilizing the corresponding alarm configuration file. Manually deploying the appropriate DCN may be cumbersome and / or error-prone, which may result in the corresponding alarm configuration file being deployed to an inappropriate DCN and corresponding alarm monitoring not being truly active. As yet another example, after initial commissioning of a process automation system, there may be a desire to update one or more alarm configuration files to achieve more effective alarm monitoring. However, determining which DCNs utilize the alarm configuration file to be updated can be similarly cumbersome and / or error-prone. For example, updating an alarm configuration file in a particular DCN may require physically locating the particular DCN and utilizing an HMI directly coupled to that DCN to update the alarm configuration file. [Means for solving the problem]
[0008] Implementations disclosed herein address these and other challenges by assigning each alarm to a corresponding function block identifier in an alarm database accessible via a process automation network. The function block identifier assigned to an alarm may be an alias for the function block corresponding to that alarm and may be unique with respect to all other function block aliases in the process automation system. The assignment of an alarm to a function block identifier may be the assignment of an alarm configuration file to the function block identifier. Furthermore, the assignment of an alarm to a function block identifier may be in addition to (or instead of) any assignment of the alarm to a corresponding DCN identifier, such as a DCN network addressable identifier (e.g., a DCN IP address or MAC address).
[0009] For example, a given function block may have a function block identifier of "FT101.PV." The function block identifier "FT101.PV" may be generated by a programmer of the given function block when creating the given function block, or may be automatically created and may be created or generated such that it is unique relative to all other function block identifiers of all other function blocks in the process automation system. In some implementations, a portion of the function block identifier may indicate the type of function block and may conform to a standardized type naming scheme. For example, the "PV" in "FT101.PV" may indicate that the function block is of a "process variable" type. Also, for example, ".AI" may indicate an "analog input" type function block, ".AO" may indicate an "analog output" type function block, and / or ".PID" may indicate a "proportional-integral-derivative" type function block. In some of these or other implementations, at least some of the function block identifiers may not conform to any standardized naming scheme, but may be semantically meaningful and / or conform to a non-standardized naming scheme of the programmer and / or entity (or entities) implementing the process automation system. "FT101" in "FT101.PV" is an example of such a portion of the function block identifiers. For example, in a process automation system, there may be multiple function block identifiers ending in ".PV." However, only one of them includes "FT101" before the ".PV," and further, all of them include characters before the ".PV" that are unique with respect to each other.
[0010] An alarm configuration file assigned to a given function block can be created (e.g., by a technician or other human operator) and can define parameters for alarms, such as conditions, for process variables of the given function block, and corresponding actions to be taken if the conditions are met. For example, an alarm configuration file for "FT101.PV" can define conditions for the process variable "FT101.PV" and can define descriptors or other notifications to be presented (e.g., in an alarm viewer) if the corresponding conditions are met. For example, a condition can include a process variable exceeding a threshold rate of change for a specified time, or a process variable being outside of high-high, high, low, and / or low-low setpoint values.
[0011] Implementations further address the above and / or other technical challenges by providing an alarm configuration GUI system that implements an alarm configuration graphical user interface (GUI). A user (e.g., a technician or other human operator) can interact with the alarm configuration GUI when defining corresponding alarms for corresponding function block identifiers of a process automation system. For example, the user can interact with the alarm configuration GUI when selecting a function block identifier and when defining parameters for an alarm configuration file. The parameters defined through interaction with the alarm configuration GUI can include, for example, conditions for corresponding process variables of the function block, descriptors or other notifications to be presented (e.g., in an alarm viewer) when the corresponding condition is met, a severity level for the condition, and / or other parameters. The parameters defined through the alarm configuration GUI can be used to generate a corresponding alarm configuration file. Furthermore, the function block identifiers defined through the alarm configuration GUI can be used to store an association of the alarm configuration file to the function block identifier. Still further, the generated alarm configuration file can be transmitted to a corresponding DCN in response to a determination that the corresponding DCN will locally utilize the function block identified by the function block identifier stored in association with the alarm configuration file in its alarm monitoring. After receiving the generated alarm configuration file, the DCN can implement local alarm monitoring based on the alarm configuration file and by utilizing the function blocks.
[0012] The alarm configuration GUI may be interacted with with one or more client devices (e.g., personal computers, laptops, smartphones). The interaction may be through an application on the client device, such as a dedicated application (e.g., dedicated to alarm configuration) or a general-purpose application capable of rendering the alarm configuration GUI (e.g., a browser application when the alarm configuration GUI is implemented via HTML and / or XML). The client device interacting with the alarm configuration GUI may be in at least selective communication with a process automation network, and interaction with the alarm configuration GUI through the client device may cause entries to be read and / or written to an alarm database, as described herein, coupled to the process automation network. Further, the alarm database, as described herein, may be used in deploying process automation alarms to various DCNs of a process automation system. Thus, the alarm configuration GUI allows a user to specify function block identifiers for alarms and conditions for the alarms, and cause the generation of a corresponding alarm configuration file and the deployment of the alarm configuration file to the corresponding DCN that utilizes the function blocks identified by the function block identifiers in alarm monitoring. In particular, this can be done without requiring a direct (e.g., wired) connection between the corresponding DCN and the HMI, and can be done without always requiring a user to ascertain the location and / or other characteristics of the corresponding DCN that utilizes the function block. In these and other ways, the use of an alarm configuration GUI allows alarms to be efficiently created and deployed across multiple DCNs of an automation system.
[0013] Through interaction with the alarm configuration GUI, a user can create new alarms for a function block, view existing alarms for a function block, and / or modify existing alarms for a function block (e.g., replace an existing alarm with a new alarm). In various implementations, the alarm configuration GUI requires successful authentication before allowing a user to at least create new alarms and / or modify existing alarms. Various single-factor or multi-factor authentication techniques may be utilized, such as username and password authentication, biometric authentication (e.g., fingerprint, voice, face), and / or location-based authentication (e.g., requiring the client device to be connected to a process automation network).
[0014] The alarm configuration GUI can utilize various techniques in guiding an interacting user to efficiently create new alarms and / or modify existing alarms. For example, the alarm configuration GUI can efficiently guide a user to function blocks by enabling search for function block identifiers via the GUI, enabling browsing of all function block identifiers via the GUI, and / or enabling search or browsing of a subset of function block identifiers via the GUI. The subset of function block identifiers can be, for example, an unconfigured subset or a recent changes subset. The unconfigured subset can include function block identifiers for function blocks that lack any (or some) alarms and / or include inactive alarms. The recent changes subset can include function block identifiers for function blocks with recent updates to their alarms, where recency can be pre-defined or can be defineable through interaction with the alarm configuration GUI.
[0015] As another example, when a function block identifier is selected through interaction with the alarm configuration GUI, the alarm configuration GUI can efficiently guide a user in specifying conditions and / or other parameters for an alarm for the function block corresponding to the function block identifier. For example, the function block's type can be used to select alarm types that are compatible with the function block's type, and only those alarm types are presented for specification in the alarm configuration GUI. As a specific example, the "PV" in "FT101.PV" can indicate that the function block is of a "process variable" type. As a result of selecting "FT101.PV" and the "PV" indicating a "process variable" type, only alarm types that are compatible with a "process variable" type function block (e.g., only error, level, rate of change, and deviation alarm types) can be presented for specification in the alarm configuration GUI. As another specific example, the "DOUT" in "AB303.DOUT" can indicate that the function block is of a "digital output" type. As a result of selecting "AB303.DOUT" and "DOUT" indicating a "Digital Output" type, only alarm types that are compatible with "Digital Output" type function blocks (e.g., only fault alarm types and discrete state alarm types) can be presented for specification in the alarm configuration GUI.
[0016] Also, for example, process variables of a function block may be identified and presented in the alarm configuration GUI to enable efficient specification of process variables to which alarm conditions are directed. As yet another example, entry graphical interface elements may be presented in the alarm configuration GUI to enable efficient specification of conditions related to a selected alarm type. The entry graphical interface elements may include, for example, free-form input fields (which may optionally be constrained to a range of values), drop-down selection interfaces, and / or other entry graphical interface elements. As yet a further example, existing alarms that have already been specified via alarm configuration files in an alarm database may be presented in the alarm configuration GUI to enable efficient review of existing alarms and even efficient modification of existing alarms (thereby creating new alarms to replace them).
[0017] After the conditions and / or other parameters of an alarm are specified via the alarm configuration GUI, a corresponding alarm configuration file may be generated. For example, the alarm configuration file may be generated in the alarm configuration GUI in response to selection of a confirmation interface element by an interacting user after specifying the parameters of the alarm. The alarm configuration file may also be stored in the alarm database in association with the corresponding function block identifier of the function block and, optionally, in association with the corresponding DCN that utilizes the function block in alarm monitoring, if known. As described herein, storing the alarm configuration file in association with the corresponding function block identifier may achieve various technical advantages.
[0018] The generated alarm configuration file may also be transmitted over the process automation network to a given DCN that utilizes the function block (corresponding to the alarm configuration file) in alarm monitoring. Transmitting the generated alarm configuration file to a given DCN causes the given DCN to perform local alarm monitoring based on the alarm configuration file and the function block. In some implementations or situations, the network-addressable DCN identifier of the given DCN may be known at the time of generation of the alarm configuration file. For example, the given DCN may have previously sent a transmission that includes the network-addressable DCN identifier and includes an indication that the DCN performs alarm monitoring based on the function block (e.g., includes the function block identifier of the function block). In some versions of those implementations or situations, the alarm configuration file may be proactively and unilaterally “pushed” to the given DCN through a transmission addressed to the network-addressable DCN identifier of the given DCN. In some other versions of those implementations or situations, an update request may be unilaterally pushed to the given DCN through a transmission addressed to the network-addressable DCN identifier. The update request lacks the actual alarm configuration file, but indicates to a given DCN that an updated alarm configuration file is available. The given DCN can subsequently request the alarm configuration file when it deems appropriate (e.g., when the alarm configuration conditions described herein are met). For example, the given DCN can later send an alarm configuration request as described herein and receive an alarm configuration file in response.
[0019] In some other implementations or situations, the network-addressable DCN identifier of a given DCN is not known (e.g., not stored in the alarm database in association with a function block identifier) at the time of generation of the alarm configuration file. For example, a given DCN may not yet be delegated at the time of generation of the alarm configuration file, or which DCN will perform alarm monitoring based on the function block may not even be determined at the time of generation of the alarm configuration file. In some versions of these implementations, the alarm configuration file is not provided to a given DCN until an alarm configuration request is sent by the given DCN. As described herein, the alarm configuration request may include a function block identifier, enabling identification of the alarm configuration file (based on its stored association in the alarm database with the function block identifier) and its transmission to a given DCN in response to the alarm configuration request.
[0020] As referenced in the preceding paragraph, implementations enable a process automation node, such as a DCN, to send an alarm configuration request over a process automation network that includes a function block identifier. The DCN can include a function block identifier in the alarm configuration request based on the corresponding function block being executed by the DCN and / or assigned by the DCN for use in alarm monitoring. For example, the DCN can include a function block identifier in the alarm configuration request in response to the corresponding function block being executed by the DCN. As another example, the DCN can include a function block identifier in the alarm configuration request in response to the corresponding function block being monitored by an alarm engine of the DCN (e.g., an alarm engine executed by a server implemented by the DCN). The function block monitored by the alarm engine of the DCN can be a function block that is also executed by the DCN, or a function block that is executed by an additional DCN but is nevertheless monitored by the DCN via communication between the DCN and the additional DCN. The communication between the DCN and the additional DCN can be via the process automation network and / or another channel.
[0021] The alarm configuration service may be implemented on one or more servers coupled to the process automation network and may manage the alarm database together with and / or in cooperation with an alarm configuration GUI system that implements the alarm configuration GUI. The alarm configuration service may send addressable DCN identifiers to the alarm viewer according to the techniques described herein. The alarm configuration service may additionally or alternatively send alarm configuration files to the appropriate DCN according to the techniques described herein. For example, the alarm configuration service may receive an alarm configuration request from the DCN and may search the alarm database using the function block identifiers in the request to retrieve alarm configuration files assigned to the function block identifiers in the alarm database. The alarm configuration service may send the retrieved alarm configuration files to the DCN in response to the alarm configuration request for their implementation by the alarm engine of the DCN. In these and other schemes, a newly delegated DCN (e.g., delegated upon initial commissioning of a process automation system or delegated to replace a removed DCN) can obtain the appropriate alarm configuration file to implement using only the function block identifiers of the function blocks utilized by the newly delegated DCN (e.g., executed by and / or assigned for use in alarm monitoring by the newly delegated DCN). Furthermore, the alarm configuration service can retrieve and provide alarm configuration files at will without any reference to the addressable DCN identifier of the particular DCN in which a given function block is implemented. Additionally or alternatively, a DCN with updates (e.g., removal or addition) to its utilized function blocks can obtain the appropriate alarm configuration file to implement using only the function block identifiers of the function blocks implemented by the DCN.Additionally or alternatively, the alarm configuration service may utilize the addressable DCN identifier of a particular DCN to cause the alarm viewer to establish a connection-oriented communication session with the particular DCN (e.g., by storing the addressable DCN identifier in an alarm database and / or by including the addressable DCN identifier in a push notification sent to the alarm viewer).
[0022] The use of alarm-to-function block identifier assignments when deploying alarms according to implementations disclosed herein can enable alarm deployment that is robust in distributed and / or heterogeneous process automation system settings and / or mitigates errors in such settings. For example, the use of function block identifiers instead of or in addition to DCN identifiers when determining which alarm configuration files to provide in response to an alarm configuration request can mitigate issues that may otherwise arise with an old DCN being replaced with a new DCN (with a new DCN identifier), alarm engine monitoring functionality being switched from a given DCN (with a given DCN identifier) to an alternate DCN (with an alternate DCN identifier), etc.
[0023] In various implementations, an alarm configuration request may be issued by the DCN in response to the DCN detecting the occurrence of one or more alarm configuration conditions. For example, an alarm configuration request may be issued by the DCN in response to a determination by the DCN that the DCN is newly commissioned (e.g., newly added to a process automation system), a determination that the DCN is being powered up (e.g., for the first time or after a reboot), a determination that its alarm engine is assigned to monitor a function block but that monitoring is not currently active (e.g., due to the absence of any alarm configuration files for the function block), a determination that a threshold duration has passed since the DCN last issued an alarm configuration request, receipt of an update request from an alarm configuration service, and / or detection of the occurrence of other conditions. Having the DCN issue an alarm configuration request in response to the detection of some such conditions can ensure that the DCN proactively seeks out alarm configuration files in situations where they are likely to be needed. Additionally or alternatively, by preventing the DCN from issuing alarm configuration requests when some conditions are not detected, process automation system resources may be conserved. For example, network resources may be saved, such as network resources utilized in transmitting alarm configuration requests from the DCN to the alarm configuration service and / or network resources utilized by the alarm configuration service in responding to alarm configuration requests.
[0024] In various implementations, an alarm configuration request or alarm configuration update issued by a DCN (or a separate transmission from the DCN provided in conjunction with the alarm configuration request) can include an addressable DCN identifier (e.g., an IP address and / or a MAC address) for a particular DCN. In some versions of those implementations, the alarm configuration service can update the alarm database based on the alarm configuration request including a functional block identifier and / or a DCN identifier to assign the addressable DCN identifier to an alarm configuration file (e.g., returned in response to the alarm configuration request or received along with the alarm configuration notification) and / or to a functional block identifier (included in the alarm configuration request or alarm configuration notification). In some of those versions, the alarm viewer is tasked with monitoring the alarm database for the presence of addressable DCN identifiers for which the alarm viewer does not have a corresponding established connection-oriented communication session, and in response to identifying such addressable DCN identifiers, the alarm viewer can establish a connection-oriented communication session with them. In some additional or alternative versions of those implementations, the alarm configuration service may additionally or alternatively send a push notification to the alarm viewer including an addressable DCN identifier based on the alarm configuration request including an addressable DCN identifier to cause the alarm viewer to automatically establish a connection-oriented communication session with the DCN. Optionally, the alarm configuration service may send the push notification only after first determining that the alarm viewer does not already have a connection-oriented communication session established with the DCN. Such a determination may be based, for example, on data provided by the alarm viewer and / or data contained in an alarm database.
[0025] The addressable DCN identifier assigned in the alarm database may then be used by the alarm engine for one or more purposes other than establishing a connection-oriented communication session with the DCN. For example, such purposes may include utilizing the DCN identifier to push alarm configuration file updates to a particular DCN. For example, when an alarm configuration file is created for a functional block identifier using the alarm configuration GUI, a notification may be sent to the particular DCN using the DCN identifier based on the DCN identifier being assigned to the alarm configuration file. The notification may then cause the particular DCN to issue an alarm configuration request with the corresponding functional block identifier, resulting in the particular DCN receiving the updated alarm configuration file. As another example, when a new alarm configuration file is created for a functional block identifier using the alarm configuration GUI, the alarm configuration file may be proactively and unilaterally pushed to a particular DCN using the DCN identifier based on the DCN identifier being assigned to the alarm configuration file.
[0026] In response to a later alarm configuration request (or other transmission) that includes new addressable DCN identifiers and function block identifiers and / or alarm configuration files, the alarm configuration files and / or function block identifiers may be assigned new addressable DCN identifiers in the alarm database. For example, assume that a particular DCN is replaced with a replacement DCN having a new addressable DCN identifier. In response to transmitting an alarm configuration request or alarm configuration notification with the replacement DCN, the alarm configuration service can replace the assignment of the addressable DCN identifier with an assignment of the new addressable DCN identifier to the alarm configuration file and / or function block identifier in the database. In implementations in which the alarm viewer is tasked with monitoring the alarm database for the presence of addressable DCN identifiers for which the alarm viewer does not have a corresponding established connection-oriented communication session, the alarm viewer can identify the new addressable DCN identifiers as such DCN identifiers and, in response, can establish connection-oriented communication sessions with them. In response to a later alarm configuration transmission that includes a new addressable DCN identifier and function block identifier and / or alarm configuration file, the configuration service may additionally or alternatively send a push notification to the alarm viewer that includes the new addressable DCN identifier to cause the alarm viewer to automatically establish a connection-oriented communication session with the DCN.
[0027] Accordingly, implementations disclosed herein enable efficient deployment of alarm configuration files to appropriate process automation nodes as they are brought online in a newly commissioned process automation system, and can optionally ensure that alarm viewers establish connection-oriented communication sessions with those process automation nodes. Furthermore, implementations may additionally or alternatively enable robust adaptation to replacement and / or modification of process automation nodes and / or other system components in an active process automation system. For example, implementations enable robust alarm adaptation when a function block is removed from execution and / or alarm monitoring in a first DCN and redeployed for execution and / or alarm monitoring in a second DCN. Also, for example, implementations enable robust alarm adaptation and / or connection-oriented communication session adaptation when a first DCN executing and / or monitoring a first function block is replaced by a second DCN (e.g., with different hardware specifications) that also executes and / or monitors the first function block.
[0028] As mentioned above, establishing a persistent connection-oriented communication session between the alarm engine and the alarm viewer may be desirable, for example, to ensure security and / or robustness of the alarm viewer, to ensure low latency rendering of output responding to alarm messages, to reduce traffic on the process automation network (over which the connection-oriented communication session may be established), and / or to ensure that the alarm viewer knows when the alarm engine is inactive.
[0029] As one particular example, an alarm viewer may be configured to react only to alarm events provided via a connection-oriented communication session (over a process automation network) with an alarm engine that the alarm viewer has established. This may prevent the alarm viewer from reacting to any erroneous alarm messages that are sent (e.g., accidentally or fraudulently) over the process automation network but not via a connection-oriented communication session that the alarm viewer has established. As another particular example, a connection-oriented communication session may ensure that data corresponding to an alarm event is delivered in order and / or via the same path, which reduces latency for the alarm viewer to receive and act on the alarm event. As yet another particular example, the connection-oriented communication session may be via a reliable protocol, whereby the alarm viewer acknowledges delivery of alarm message data to the corresponding alarm engine and / or automatically requests retransmission when there is lost or corrupted data. This may ensure that the alarm viewer is robust and actually receives and acts on alarm event data. As a further specific example, alarm events provided via the connection-oriented communication session are not broadcast to various other DCN and / or other components also connected to the process automation network, thereby reducing network traffic in those various components. As another further specific example, establishing a connection-oriented communication session between the alarm engine and the alarm viewer can enable the alarm viewer to determine whether the alarm engine is truly active based on whether the connection-oriented communication session remains established, and to provide a notification when the alarm engine is determined to be truly inactive.For example, when the alarm engine determines that a previously established connection-oriented communication session with the alarm engine is no longer established, the alarm engine may provide a corresponding notification to the operator, which may be due to, for example, the alarm engine crashing, the DCN in which the alarm engine is implemented being disconnected from the network, and / or the DCN not operating properly.
[0030] However, due to the distributed and / or heterogeneous nature of process automation systems, implementing one or more of the desires and / or requirements for connection-oriented communication sessions can be cumbersome and / or error-prone.
[0031] As an example, assume that an alarm configuration file is stored locally on a particular DCN and is being utilized by a local alarm engine of a particular DCN when monitoring process variables of particular function blocks on the particular DCN (e.g., monitoring values for those variables during execution of the particular function block). It is further assumed that the alarm configuration file is stored locally and utilized by a particular DCN based on being pre-loaded onto the particular DCN (prior to commissioning the DCN in a process automation system) or manually configured via a human-machine interface (HMI) coupled to the DCN during commissioning. It is still further assumed that an alarm viewer has an established connection-oriented communication session with a particular DCN based on the DCN's network-addressable DCN identifier (also referred to herein as an "addressable DCN identifier") having previously been manually provided in the alarm viewer's interface (e.g., based on technician input).
[0032] When a particular DCN is replaced with a new DCN that implements the same function blocks, it may require manually preloading alarm configuration files on the new DCN or manually configuring the new DCN via an HMI. Furthermore, it may require that a new addressable DCN identifier of the new DCN be manually provided to the alarm viewer interface to enable the alarm viewer to establish a connection-oriented communication session with the new DCN. In addition to the fact that manually preloading alarm configuration files or configuring a new DCN via an HMI is cumbersome and requires the use of computing resources, errors in either approach may result in corresponding alarms not being truly active or accurate (e.g., due to incorrect conditions being defined). Furthermore, in addition to the fact that manually providing a new addressable DCN identifier to the alarm viewer is cumbersome and requires the utilization of computing resources, errors in providing a new addressable DCN identifier (e.g., specifying an improper addressable DCN identifier) and / or failure to provide a new addressable DCN identifier may result in the alarm viewer not establishing a connection-oriented communication session with the new DCN, effectively causing the corresponding alarm to become inactive (i.e., corresponding notifications are not provided in the alarm viewer due to the connection-oriented communication session not being established). Thus, failure to monitor for the occurrence of an alarm condition and / or failure to take any corresponding action may result. This, in turn, may result in adverse conditions or other negative consequences in the process automation setting.
[0033] As another example, upon initial commissioning of a DCN for a process automation system, there may be hundreds or thousands of alarm configuration files that need to be deployed in the appropriate DCN for effective alarm monitoring. However, due to the distributed and / or heterogeneous nature of the process automation system, determining which DCN is the appropriate DCN for the corresponding alarm configuration file may be cumbersome and / or error-prone. For example, it may not be readily apparent which DCN's alarm engine, among the hundreds or thousands of DCNs, is tasked with utilizing the corresponding alarm configuration file. Manually deploying the appropriate DCN may be cumbersome and / or error-prone, which may result in the corresponding alarm configuration file being deployed in the wrong DCN and the corresponding alarm monitoring not being truly active. Moreover, determining which DCN, among the hundreds or thousands of DCNs, has active alarm monitoring may be cumbersome and / or error-prone. Furthermore, manually providing an addressable DCN identifier for a new DCN in the alarm viewer's interface to enable the alarm viewer to establish a connection-oriented communication session with such DCN can be cumbersome and / or error-prone.
[0034] Implementations disclosed herein address these and other challenges by selectively having any DCN that includes a corresponding active alarm engine send a corresponding alarm configuration transmission (e.g., an alarm configuration request or an alarm configuration notification). The alarm configuration transmission from the DCN includes an addressable DCN identifier of the DCN (e.g., an IP address or MAC address of the DCN) (e.g., in the header and / or body of the transmission) and also includes a direct or indirect indication that the DCN is performing alarm monitoring based on function blocks of the process automation system.
[0035] Further, implementations address these and other challenges by having the alarm viewer establish a persistent connection-oriented communication session with the DCN using the addressable DCN identifier in response to receiving an alarm configuration transmission and determining that a persistent connection-oriented communication session is not established between the alarm viewer and the DCN indicated by the addressable DCN identifier in the alarm configuration transmission. For example, optionally, after the alarm viewer verifies that a connection is not already established, a push notification including the addressable DCN identifier may be automatically sent to the alarm viewer to cause the alarm viewer to automatically establish a Transmission Control Protocol (TCP) connection or other connection-oriented communication session with the DCN. As another example, the alarm viewer can be caused to automatically establish a connection-oriented communication session by storing the addressable DCN identifier in an alarm database that the alarm viewer is tasked with monitoring (e.g., at regular or aperiodic intervals). For example, the alarm viewer may monitor the alarm database for the presence of addressable DCN identifiers for which the alarm viewer does not have a corresponding established connection-oriented communication session, and in response to identifying such addressable DCN identifiers, may establish a connection-oriented communication session with them.
[0036] As referenced above, a connection-oriented communication session between the alarm viewer and an alarm engine of the DCN can be established in response to receiving an alarm configuration transmission from the DCN and determining that a connection-oriented communication session is not currently established using the addressable DCN identifier included in the alarm configuration transmission. In some implementations or situations, the alarm configuration transmission is an alarm configuration request that includes function block identifiers. The DCN can include function block identifiers in the alarm configuration request based on the corresponding function blocks being executed by the DCN and / or assigned by the DCN for use in alarm monitoring. Additionally, as also described herein, the alarm configuration service can respond to the alarm configuration request by sending alarm configuration files to the DCN in response to determining that each of the alarm configuration files is assigned to a corresponding one of the function block identifiers in the alarm configuration request. This can enable, for example, a newly delegated DCN implementing an alarm engine to obtain the appropriate alarm configuration files from the alarm configuration service. This may additionally or alternatively enable an already delegated DCN to obtain new alarm configuration files that have been specified via the alarm configuration service but have not yet been provided to the DCN for implementation by their alarm engines, for example.
[0037] In some additional or alternative implementations or situations, the alarm configuration transmission is an alarm configuration notification that includes the function block identifier and specifies a corresponding alarm configuration file that has been preloaded on the DCN and / or created locally at the DCN (e.g., via a direct connection with a human-machine interface (HMI)). This can, for example, enable an alarm configuration service that receives the alarm configuration notification to update an alarm database to reflect, for example, the association of the alarm configuration file to the function block. This, in turn, can enable an operator (e.g., a technician) to remotely view the alarm configuration files and their associations to function blocks via access to the alarm database and / or to remotely modify the alarm configuration file. The remotely modified alarm configuration file can then optionally be provided to the DCN in response to an alarm configuration request as described herein.
[0038] The above description is provided as a summary of some implementations of the present disclosure. Further descriptions of these and other implementations are set forth in more detail below.
[0039] Additionally, some implementations include one or more processors of one or more devices, where the one or more processors are operable to execute instructions stored in associated memory, where the instructions are configured to cause performance of any of the above-described methods. The processors may include various hardware processors, such as central processing units (CPUs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), graphics processing units (GPUs), digital signal processors (DSPs), and / or other processors. Some implementations additionally or alternatively include one or more transitory or non-transitory computer-readable storage media that store computer instructions executable by the one or more processors to perform any of the methods disclosed herein.
[0040] It should be understood that all combinations of the above concepts and additional concepts described in more detail herein are contemplated as being part of the subject matter disclosed herein, for example, all combinations of claimed subject matter listed at the end of this disclosure are contemplated as being part of the subject matter disclosed herein. [Brief explanation of the drawings]
[0041] [Figure 1] FIG. 1 illustrates an exemplary environment in which selected aspects of the present disclosure may be practiced, according to various implementations. [Figure 2] 2 illustrates the example environment of FIG. 1 after the first DCN of FIG. 1 has been replaced with an alternative DCN. [Figure 3] 2 illustrates the exemplary environment of FIG. 1 after the first DCN of FIG. 1 has been modified to remove alarm monitoring functionality and the alarm monitoring functionality removed from the first DCN has been implemented on a second DCN. [Figure 4A] 10A-10C illustrate an exemplary progression of an alarm configuration GUI as a user interacts with the alarm configuration GUI to cause the generation of an alarm configuration file associated with a functional block identifier. [Figure 4B] 10A-10C illustrate an exemplary progression of an alarm configuration GUI as a user interacts with the alarm configuration GUI to cause the generation of an alarm configuration file associated with a functional block identifier. [Figure 4C] 10A-10C illustrate an exemplary progression of an alarm configuration GUI as a user interacts with the alarm configuration GUI to cause the generation of an alarm configuration file associated with a functional block identifier. [Figure 4D] 10A-10C illustrate an exemplary progression of an alarm configuration GUI as a user interacts with the alarm configuration GUI to cause the generation of an alarm configuration file associated with a functional block identifier. [Figure 5A]FIG. 10 illustrates another exemplary progression of the alarm configuration GUI as a user interacts with the alarm configuration GUI to cause the generation of a new alarm configuration file to replace an existing alarm configuration file associated with a functional block identifier. [Figure 5B] FIG. 10 illustrates another exemplary progression of the alarm configuration GUI as a user interacts with the alarm configuration GUI to cause the generation of a new alarm configuration file to replace an existing alarm configuration file associated with a functional block identifier. [Figure 5C] FIG. 10 illustrates another exemplary progression of the alarm configuration GUI as a user interacts with the alarm configuration GUI to cause the generation of a new alarm configuration file to replace an existing alarm configuration file associated with a functional block identifier. [Figure 5D] FIG. 10 illustrates another exemplary progression of the alarm configuration GUI as a user interacts with the alarm configuration GUI to cause the generation of a new alarm configuration file to replace an existing alarm configuration file associated with a functional block identifier. [Figure 6] FIG. 10 illustrates an exemplary method for utilizing an alarm configuration GUI in generating alarm configuration files associated with function block identifiers and transmitting the alarm configuration files to a DCN that utilizes the function blocks in alarm monitoring. [Figure 7] FIG. 7 illustrates an example implementation of block 614 of FIG. 6. [Figure 8] FIG. 1 illustrates an exemplary method for generating and transmitting an alarm configuration request, receiving an alarm configuration file in response thereto, and performing local alarm monitoring based on the received alarm configuration file. [Figure 9] FIG. 1 illustrates an exemplary method for storing alarm configuration files in association with function block identifiers and transmitting alarm configuration files in response to an alarm configuration request that includes the function block identifiers associated with the alarm configuration files. [Figure 10]FIG. 1 illustrates an exemplary method for generating and transmitting an alarm configuration request, receiving an alarm configuration file in response thereto, and performing local alarm monitoring based on the received alarm configuration file. [Figure 11] FIG. 10 illustrates an exemplary method for using an addressable DCN identifier received in an alarm configuration transmission from a DCN to establish a persistent connection-oriented communication session between an alarm viewer and an alarm engine of the DCN. [Figure 12A] FIG. 12 illustrates one particular implementation of the exemplary method of FIG. [Figure 12B] 12 illustrates another specific implementation of the exemplary method of FIG. 11. [Figure 13] FIG. 1 illustrates a schematic diagram of an exemplary computer architecture in which selected aspects of the present disclosure may be implemented. DETAILED DESCRIPTION OF THE INVENTION
[0042] Implementations disclosed herein relate to ensuring robust and / or accurate alarm monitoring based on function blocks implemented by a DCN of a process automation system. At least a subset of such function blocks are each utilized in implementing at least a portion of a corresponding at least partially automated process. As used herein, an "at least partially automated process" includes any process collaboratively implemented within a process automation system by multiple devices with little or no human intervention. One common example of an at least partially automated process is a process loop in which one or more actuators are automatically (without human intervention) operated based on the output of one or more sensors. Some at least partially automated processes may be subprocesses of an overall process automation system workflow, such as the single process loop previously mentioned. Other at least partially automated processes may include all or a significant portion of the overall process automation system workflow. In some cases, the degree to which a process is automated can exist along a gradient, range, or scale of automation. Processes that are partially automated but still require human intervention may be at or near one end of the scale. Processes that do not require significant human intervention may approach the other end of the scale, representing fully autonomous processes. In general, process automation may be used to automate processes in a variety of areas, such as chemical manufacturing, development, and / or refining (e.g., chemical processing), catalysis, machinery, and / or other areas.
[0043] Referring now to FIG. 1 , an exemplary environment 100 in which various aspects of the present disclosure may be implemented is generally illustrated. The environment 100 includes a process automation system 108 that may be implemented in various industrial settings, such as a chemical processing plant, an oil or natural gas refinery, a catalyst plant, a manufacturing facility, or part of another industrial setting. The process automation system 108 is illustrated in FIG. 1 as including an alarm configuration service 120, an alarm database 125, an alarm configuration graphical user interface (GUI) system 130, an alarm viewer 140, a process automation network 106, and distributed control nodes (DCNs) 110A-110N. The process automation system 108 may include various additional components, which, however, are not illustrated in FIG. 1 for the sake of brevity.
[0044] The process automation network 106 may be implemented using various wired and / or wireless communication technologies, including, but not limited to, cellular networks such as the Institute of Electrical and Electronics Engineers (IEEE) 802.3 standard (Ethernet), IEEE 802.11 (Wi-Fi), 3GPP® Long Term Evolution (“LTE”), or other wireless protocols designated as 3G, 4G, 5G, and beyond, and / or other types of communication networks of various types of topologies (e.g., mesh). Process automation is often employed in scenarios where the cost of failure tends to be significant, both in terms of human safety and financial costs to stakeholders. Thus, in various implementations, the process automation network 106 may be configured with redundancy and / or backup to provide high availability (HA) and / or high quality of service (QoS). Additionally, nodes exchanging data via the process automation network 106 may implement time-sensitive networking (TSN) to facilitate time synchronization and / or real-time control streams. Operatively coupled to the process automation network 106 are various nodes / devices, such as an alarm configuration service 120, an alarm viewer 140, an alarm configuration GUI system 130 (optionally via the alarm configuration service 120), and DCNs 110A-N.
[0045] DCNs 110A, 110B, 110C, and 110N are shown in FIG. 1. However, it should be noted that additional (e.g., hundreds or even thousands) DCNs may be provided in the process automation system 108, as indicated by the ellipsis between DCN 110C and DCN 110N. Some DCNs in the process automation system 108 may have inputs / outputs (I / O) for coupling with sensors, human-machine interfaces (HMIs), actuators, and / or other components. Other DCNs in the process automation system 108 may optionally omit I / O.
[0046] The DCN 110A is coupled to a flow transmitter (FT) component 111A via a first I / O and to an actuator (e.g., a valve) 113A via a second I / O. The actuator 113A and other actuators described herein may be electrical, hydraulic, mechanical, and / or pneumatic components controllable to affect some aspect of the process automation workflow occurring in the process automation equipment 108. The FT component 111A also includes sensors that provide sensor data indicative of the rate of flow of a corresponding fluid flow and actuators that may be adjusted to control the corresponding fluid flow. The sensors described herein may take a variety of forms, including, but not limited to, pressure sensors, temperature sensors, flow sensors, various types of proximity sensors, optical sensors (e.g., photodiodes), pressure wave sensors (e.g., microphones), humidity sensors (e.g., humistors), radiation dosimeters, laser absorption spectroscopy (e.g., multi-pass optical cells), and / or other forms.
[0047] The DCN 110A includes a processor 112A that can utilize associated memory (and corresponding instructions stored therein) to perform corresponding functions of the DCN 110A, including implementing function blocks 114A of the DCN 110A, which may be stored in some of the associated memory, and also including implementing an alarm engine 116A.
[0048] Each of the function blocks 114A of the DCN 110A can define one or more aspects of sensor monitoring and / or actuator control performed by the DCN 110A. In some implementations, each of the function blocks 114A is a corresponding software model including input / output variables, through variables, internal variables, and / or internal behavioral descriptions of the function to be performed by the function block. As a non-limiting example, one of the function blocks 114A of the DCN 110A can control an actuator of the FT component 111A based on sensor data from a sensor of the FT component 111A. As another non-limiting example, another of the function blocks 114A of the DCN 110A can control the actuator 113A in response to an output from another function block, such as another function block implemented in the DCN 110A and / or other DCNs 110B-N.
[0049] The alarm engine 116A may optionally be implemented using an open standard protocol. For example, the alarm engine 116A may be implemented by an Open Platform Communication (OPC) Unified Architecture (OPC-UA) server executed on the DCN 110A by those processors 112A. The alarm engine 116A may utilize the alarm configuration files described herein in monitoring for the occurrence of alarm conditions defined by the alarm configuration files and in performing corresponding actions when an alarm condition is detected. The corresponding actions may also optionally be defined by the alarm configuration file. The conditions defined by the alarm configuration file may include or be constrained by conditions that reference process variables of the function block, such as input variables, output variables, through variables, and / or internal variables of the function block. Actions performed in response to the detection of an alarm condition by the alarm engine may include, for example, sending corresponding data to the alarm viewer 140 to cause rendering of a corresponding audible and / or visual alarm message in one or more output interfaces. Sending the corresponding data can be via a connection-oriented communication session established between the alarm engine 116A and the alarm viewer 140, as described herein. The connection-oriented communication session can have been previously established in response to receiving a prior alarm configuration transmission from the DCN 110A, as described herein, or the connection-oriented communication session can be established in response to providing manual input to the alarm viewer 140. Actions taken in response to detecting an alarm condition can additionally or alternatively include causing repairs to be performed, for example, stopping and / or altering the function block responsible for the alarm condition and / or related function blocks.
[0050] As one example, the alarm engine 116A can monitor for conditions that reference process variables of a function block of the function block 114A that is related to the FT component 111A. For example, the conditions can define high-high, high, low, and / or low-low boundaries for a measured flow variable (based on a sensor of the FT component 111A) of the function block. Also, for example, the condition can define a maximum rate of change of the measured flow variable. As another example, the condition can define a maximum deviation between the measured flow variable and a setpoint for the flow variable. As another example, the alarm engine 116A can additionally or alternatively monitor for conditions that reference other process variables of additional function blocks of the function block 114A that are related to the actuator component 113A. For example, the condition can define a state of the actuator component 113A, as determined based on inputs to the additional function block.
[0051] As described herein, the DCN 110A can obtain an alarm configuration file from the alarm configuration service 120 via the process automation network 106 that defines the alarms to be monitored by the alarm engine 116A. The alarm configuration file can optionally include an alarm configuration file generated through interaction with the alarm configuration GUI system 130 described herein. As an example, the DCN 110A can send an alarm configuration request to the alarm configuration service 120 via the process automation network 106. The DCN 110A can include a function block identifier for the function block 114A in the alarm configuration request and can include such function block identifier based on the function block 114A being the function block 114A executed by the DCN 110A and / or based on the function block 114A being the function block for which alarm monitoring will be performed by the alarm engine 116A (once the corresponding alarm configuration file is obtained). The DCN 110A can send the alarm configuration request in response to detecting the occurrence of an alarm configuration condition, such as one or more alarm configuration conditions described herein. As another example, the alarm configuration file may be obtained by the DCN 110A as a result of being proactively and unilaterally pushed to the DCN 110A by the alarm configuration service 120.
[0052] The DCN 110B is coupled to a flow transmitter (FT) component 111B via a first I / O and to a sensor 115B via a second I / O. The DCN 110B includes a processor 112B that can utilize associated memory (and corresponding instructions stored therein) to perform corresponding functions of the DCN 110B. Those functions include implementing function blocks 114B of the DCN 110B, which may be stored in some of the associated memory. In particular, the DCN 110B does not include any corresponding alarm engine, and therefore the functions performed by the processor 112B do not include implementing any alarm engine. Rather, alarm monitoring of the DCN 110A related to function blocks 114B is performed by the DCN 110C (described below).
[0053] Each of the function blocks 114B of the DCN 110B can define one or more aspects of sensor monitoring and / or actuator control performed by the DCN 110B. In some implementations, each of the function blocks 114B is a software model that includes input / output variables, through variables, internal variables, and / or internal behavioral descriptions of the functions to be performed by the function blocks. As a non-limiting example, one of the function blocks 114B of the DCN 110B can control an actuator of the FT component 111B based on sensor data from a sensor of the FT component 111B, sensor data from sensor 115B, and / or sensor data from other sensors (e.g., a sensor of the FT 111A).
[0054] The DCN 110C is not coupled to any external components via any I / O, and can optionally omit any I / O. Furthermore, the DCN 110C does not include any function blocks that it executes. Thus, the DCN 110C does not implement any function blocks that directly or indirectly "control" any automated processes of the process automation system 108. However, the processor 112C of the DCN 110C implements an alarm engine 116C that monitors the function blocks of other DCNs in the process automation system. In some implementations, the DCN 110C can be dedicated exclusively to alarm monitoring.
[0055] The alarm engine 116C may optionally be implemented using an open standard protocol, such as by an OPC-UA server executed on the DCN 110C by their processors 112C. The alarm engine 116C may utilize the alarm configuration files described herein in monitoring for the occurrence of alarm conditions defined by the alarm configuration files and in performing corresponding actions when an alarm condition is detected. The conditions defined by the alarm configuration files may include or be constrained to conditions that reference process variables of function blocks. Function blocks to be monitored by the alarm engine 116C include function blocks not executed by the DCN 110C (because the DCN 110C does not execute any function blocks). For example, the alarm engine 116C may monitor function block 114B of the DCN 110B and / or function blocks of other DCNs. For example, monitoring of the function blocks 114B during their execution may be via communications from the DCN 110B reflecting the process variables of the function blocks 114B during their execution. Such communication may optionally be via a connection-oriented connection between DCN 110B and DCN 110C, for example, via process automation network 106. As an example, alarm engine 116C may monitor for a condition that references a process variable of a function block of function block 114B that is related to sensor component 115B. For example, the condition may define high-high, high, low, and / or low-low boundaries for an internal variable of a function block of function block 114B that depends on sensor data from sensor 115B.
[0056] Actions performed in response to detection of an alarm condition by the alarm engine 116C may include, for example, sending corresponding data to the alarm viewer 140 to cause rendering of a corresponding audible and / or visual alarm message in one or more output interfaces. Sending the corresponding data may be via a connection-oriented communication session established between the alarm engine 116C and the alarm viewer 140. The connection-oriented communication session 106C may have been previously established in response to receiving a prior alarm configuration transmission from the DCN 110C as described herein, or further, the connection-oriented communication session is established in response to providing manual input to the alarm viewer 140. Actions performed in response to detection of an alarm condition may additionally or alternatively include causing a remediation to be performed.
[0057] As described herein, the DCN 110C can obtain an alarm configuration file that defines alarms to be monitored by the alarm engine 116C from the alarm configuration service 120 via the process automation network 106. For example, the DCN 110C can send an alarm configuration request to the alarm configuration service 120 via the process automation network 106. The DCN 110C can include a function block identifier for the function block 114B in the alarm configuration request based on the function block 114B being the function block for which alarm monitoring will be performed by the alarm engine 116C (once the corresponding alarm configuration file is obtained). The DCN 110C can send the alarm configuration request in response to detecting an alarm configuration condition. As another example, the alarm configuration file can be obtained by the DCN 110C as a result of being proactively and unilaterally pushed to the DCN 110C by the alarm configuration service 120.
[0058] The DCN 110N is coupled to the sensor 115N via a first I / O. The DCN 110N includes a processor 112N that can utilize associated memory (and corresponding instructions stored therein) to perform corresponding functions of the DCN 110N. Those functions include implementing function blocks 114N of the DCN 110N, which may be stored in some of the associated memory. Those functions also include implementing an alarm engine 116N. As described herein, the DCN 110N can obtain an alarm configuration file that defines the alarms to be monitored by the alarm engine 116N from an alarm configuration service 120 via the process automation network 106.
[0059] Actions performed in response to detection of an alarm condition by the alarm engine 116N may include, for example, sending corresponding data to the alarm viewer 140 to cause rendering of a corresponding audible and / or visual alarm message in one or more output interfaces. Sending the corresponding data may be via a connection-oriented communication session established between the alarm engine 116N and the alarm viewer 140. The connection-oriented communication session 106C may have been previously established in response to receiving a prior alarm configuration transmission from the DCN 110N as described herein, or further, the connection-oriented communication session is established in response to providing manual input to the alarm viewer 140.
[0060] The alarm configuration service 120 is illustrated as including a configuration module 122, a request module 124, and a push module 126. In some implementations, the alarm configuration service 120 is implemented within a process automation facility, for example, within a single building or across a single campus of buildings or other industrial infrastructure. In such implementations, the alarm configuration service 120 may be implemented on one or more local computing systems, such as on one or more server computers. However, in some implementations, some or all aspects of the alarm configuration service 120 may be implemented in a computing system remote from the process automation facility. In some of these implementations, the alarm configuration service 120 may be in communication with the process automation network 106 over a wide area network.
[0061] Configuration module 122 can receive alarm configuration files and their assignments to function block identifiers, and can store the alarm configuration files and associated function block identifiers in alarm database 125. For example, a first alarm configuration file can be assigned to a first function block identifier of “FT101.PV,” a second alarm configuration file can be assigned to a second function block identifier of “FT202.SP,” etc. Further, configuration module 122 can store in alarm database 125 the first alarm configuration file and its assignment (e.g., pointer or other association) to the “FT101.PV” function block identifier, the second alarm configuration file and its assignment (e.g., pointer or other association) to the “FT202.SP” function block identifier, etc.
[0062] The alarm configuration files and their associations may be generated based on user interface input from technicians and / or other humans who implement and / or maintain the process automation system 108. In some implementations, some or all of the alarm configuration files and their associations are received via a bulk configuration file 150. The bulk configuration file 150 may be, for example, .csv or other structured or unstructured format and may be created using one or more programs.
[0063] In some implementations, some or all of the alarm configuration files and their associations may be received via an alarm configuration graphical user interface (GUI) system 130. The alarm configuration GUI system 130 may be implemented via the configuration module 122 or may be implemented via a separate component in at least selective communication with the configuration module 122.
[0064] The alarm configuration GUI system 130 may interact with (and optionally be implemented in whole or in part by) one or more client devices (not shown in FIG. 1 ), each in at least selective network communication with the process automation network 106. The interaction may be through an application on the client device and through an alarm configuration GUI rendered by the alarm configuration GUI system 130. The alarm configuration GUI may include graphical interface elements for specifying function block identifiers and for specifying alarm configuration file parameters for the function block identifiers. For example, the alarm configuration GUI may include fields for specifying function block identifiers (e.g., from a drop-down menu, via free-form entry, via search or auto-complete based on the entered characters), and may include fields for specifying function block variables and conditions for those variables. For example, the alarm configuration GUI may allow for specification of a function block identifier, and once the function block identifier is specified, may present function block variables for the corresponding function block. Additionally, each of the function block variables may be selectable, and when selected, a corresponding condition for the function block variable may be defined through further interaction with the alarm configuration GUI. The selected function block variables and conditions can then be used to generate corresponding alarm configuration files, which are associated with the function block identifiers. Updates to the alarm configuration files can be performed via additional bulk configuration files and / or via additional interactions with the alarm configuration GUI. For example, alarm configuration GUI system 130 can allow viewing and modifying (and even deleting) existing alarm configuration files in alarm database 125 (optionally while maintaining their association to function block identifiers and optionally to DCN identifiers).
[0065] The request and / or notification module 124 (also referred to herein for simplicity as the “request module”) receives and processes alarm configuration transmissions (e.g., alarm configuration requests and / or alarm configuration notifications) from a DCN, such as one or more of DCNs 110A-N, that are received via the process automation network 106.
[0066] The alarm configuration request received by the request module 124 may include the function block identifier of the function block and, optionally, the DCN identifier of the DCN that sent the alarm configuration request. In response to receiving the alarm configuration request, the request module 124 may access the alarm database 125 and identify a function block identifier in the alarm database 125 that matches the function block identifier in the alarm configuration request. Further, the request module 124 may identify a stored alarm configuration file associated with the matching function block identifier. Still further, the request module 124 may transmit the identified alarm configuration file in response to the alarm configuration request over the process automation network to the DCN that issued the alarm configuration request.
[0067] Optionally, the request module 124 can update the alarm database 125 to store an association of the addressable DCN identifier optionally included in the alarm configuration request to the identified function block identifier and / or the identified alarm configuration file. In doing so, the request module 124 can remove any stored association of a disparate addressable DCN identifier to the identified function block identifier and / or the identified alarm configuration file.
[0068] As described herein, the alarm viewer 140 and / or the push module 126 can utilize the stored association of the addressable DCN identifier to the identified function block identifier and / or the identified alarm configuration file. For example, the alarm viewer 140 can use the addressable DCN identifier to establish a corresponding connection-oriented communication session with the corresponding DCN. The alarm viewer 140 can do so in response to detecting that the addressable DCN identifier is stored in the alarm database 125 in association with the function block identifier and / or the alarm configuration file and based on determining that the alarm viewer 140 does not already have an established connection-oriented communication session with the corresponding DCN. In some implementations, the request and / or notification module 124 can additionally or alternatively send a push notification to the alarm viewer 140 that includes the addressable DCN identifier to cause the alarm viewer to automatically establish a connection-oriented communication session with the DCN.
[0069] An alarm configuration notification received by the request and / or notification module 124 can include an addressable DCN identifier of the DCN that sent the alarm configuration notification and can include a function block identifier and a corresponding alarm configuration file that is pre-loaded on the DCN and / or created locally at the DCN. This can enable, for example, an alarm configuration service that receives the alarm configuration notification to update an alarm database to reflect, for example, the association of the alarm configuration file to the function block. In response to receiving the alarm configuration notification, the request and / or notification module 124 can store the function block identifier and alarm configuration file of the alarm configuration notification and the association of the function block identifier to the alarm configuration file in the alarm database 125. In some implementations, the request and / or notification module 124 can also store the association of the addressable DCN identifier included in the alarm configuration notification to the received function block identifier and / or the received alarm configuration file. In some implementations, the request and / or notification module 124 may additionally or alternatively send a push notification to the alarm viewer 140 that includes the addressable DCN identifier of the alarm configuration notification to cause the alarm viewer to automatically establish a connection-oriented communication session with the DCN.
[0070] The push module 126 is optional and, when provided, may be used to cause the updated alarm configuration file to be provided to a corresponding DCN, such as would be used to cause the updated alarm configuration file to be provided to a corresponding DCN utilizing a previously updated version of the alarm configuration file. For example, in response to updating an alarm configuration file via the alarm configuration GUI system 130, the configuration module 122 may store the updated alarm configuration file in the alarm database 125 in association with the functional block identifier, while maintaining any association of functional block identifiers to addressable DCN identifiers and / or creating an association of the updated alarm configuration file to the addressable DCN identifier. As described with respect to the request module 124, the request module 124 may store the association of addressable DCN identifiers to functional block identifiers and / or alarm configuration files in the alarm database 125 in response to an alarm configuration request from a corresponding DCN, including the functional block identifier. The push module 126 may identify the updated alarm configuration file in response to a notification from the configuration module 122 or in response to recognizing an update in the alarm database 125. In response to identifying the updated alarm configuration file, the push module 126 may cause the updated alarm configuration file to be provided to a DCN corresponding to the addressable DCN identifier associated with the updated alarm configuration file and / or its associated function block identifier.
[0071] In some implementations, when causing a DCN corresponding to an addressable DCN identifier to be provided with an updated alarm configuration file, the push module 126 can send the updated alarm configuration file to the DCN identifier independently of any alarm configuration request from the DCN. In some implementations, when causing a DCN corresponding to an addressable DCN identifier to be provided with an updated alarm configuration file, the push module 126 can send an update request to the DCN identifier, which, when received by the DCN, can be determined to be an alarm configuration condition. The DCN can then send the alarm configuration request when deemed appropriate by the DCN. The alarm configuration request can be processed by the request module 124, and the updated alarm configuration file is sent to the DCN by the request module 124 in response to the alarm configuration request. An implementation in which the push module 126 provides an update request instead of a new updated alarm configuration file allows the DCN receiving the update request to decide when it is appropriate to send an alarm configuration request and receive an updated alarm configuration file in response thereto. This allows the DCN to receive and / or process updated alarm configuration files as they are sent and / or to manage its resource utilization. For example, an update request may be small in data size (e.g., 1 byte or less) and may require very little processing when received, whereas an alarm configuration file may be larger in size (e.g., 2 bytes or more) and may require more processing when received (e.g., removal of a previously updated alarm configuration file and replacement with an updated alarm configuration file). Thus, the DCN can receive update requests and locally decide when to send alarm configuration requests in response. For example, at the time an update request is received, DCN resources may be heavily used due to control of the DCN's actuators and / or alarm engine detecting that a current alarm condition is met.Based on the existence of one or both of these conditions, the DCN may wait to issue an alarm configuration request when one or both of these conditions no longer exist.
[0072] In situations where there is no DCN identifier associated with an updated alarm configuration file, the push module 126 can optionally broadcast an update request to the multiple DCNs 110A-N of the process automation system 108 via the process automation network 106. The update request, when received by each of the DCNs, can be determined to be an alarm configuration condition. Each DCN can then send an alarm configuration request in response. In some implementations, the broadcasted update request can be distinguished (e.g., can comprise different data) from an update request sent to a single DCN using a DCN identifier. In some of these implementations, a DCN receiving a broadcasted update request can recognize it as such and send an alarm configuration request with a timing based on when the update request is broadcast. For example, for a DCN broadcast request, each DCN can randomly choose a corresponding time delay between 1 second and 100 seconds and send an alarm configuration request with the randomly selected time delay. This can ensure a non-concentrated distribution of alarm configuration request transmissions and prevent overloading of the process automation network 106 and / or request module 124 resources when processing alarm configuration requests.
[0073] Returning to alarm configuration GUI system 130, alarm configuration GUI system 130 renders an alarm configuration GUI through which a user can interact to create a new alarm for a function block, to view existing alarms for a function block, and / or to modify existing alarms for a function block (e.g., replace an existing alarm with a new alarm). Alarm configuration GUI system 130 is shown in FIG. 1 as including an authenticator 132, a function block resolver 134, a parameter resolver 136, and a GUI module 138.
[0074] The authenticator 132 may utilize one or more authentication techniques when authenticating a user and may require that a user be successfully authenticated before allowing the user to view alarms, create new alarms, and / or modify existing alarms through use of the alarm configuration GUI system 130. For example, the authenticator 132 may require that a user be successfully authenticated and verification that the authenticated user has “edit access” before allowing the user to create new alarms and / or modify existing alarms. The authenticator 132 may utilize single-factor or multi-factor authentication techniques when authenticating a user.
[0075] The function block resolver 134 can guide a user to function blocks by enabling search for all function block identifiers via the alarm configuration GUI, by enabling browsing of all function block identifiers via the alarm configuration GUI, and / or by enabling search or browsing of a subset of function block identifiers via the alarm configuration GUI. For example, the function block resolver 134 can search for a matching (partial or complete) function block identifier in response to receiving typed or spoken input via the alarm configuration GUI. For example, the process automation system's alarm database 125 and / or other databases can include all function block identifiers of the process automation system 108 and their respective associations with corresponding function blocks. The function block resolver 134 can compare the typed or spoken input characters with the function block identifiers in the database to identify one or more matches and cause the GUI module 138 to present the matching function block identifiers. For example, in response to typing "FT101.PV," the function block resolver 134 can resolve a single matching function block identifier and cause the GUI module 138 to present it. Also, for example, in response to typing "FT10," function block resolver 134 can identify multiple matching function block identifiers, such as "FT101.PV" and "FT105.PV," and cause GUI module 138 to present each of them. Furthermore, function block resolver 134 can resolve a single one of them based on selection of the single one of them when presented via GUI module 138. In some implementations, function block resolver 134 can constrain the search to a subset of function block identifiers in response to receiving a corresponding input via the alarm configuration GUI.In some implementations, in response to receiving corresponding input via the alarm configuration GUI, the function block resolver 134 can cause the GUI module 138 to present all or a subset of the function block identifiers, allowing a user to select one of the presented function block identifiers to resolve to a single function block identifier.
[0076] Once a function block identifier is resolved by function block resolver 134, parameter resolver 136 can guide a user in specifying conditions and / or other parameters for alarms for the function block corresponding to the resolved function block identifier. For example, parameter resolver 136 can use the function block's type to select alarm types that are compatible with the function block's type, causing GUI module 138 to present only those alarm types for specification in the alarm configuration GUI. For example, the "PV" in "FT101.PV" can indicate that the function block is of a "process variable" type. As a result of selecting "FT101.PV" and the "PV" indicating a "process variable" type, parameter resolver 136 can cause GUI module 138 to present only alarm types for specification in the alarm configuration GUI that are compatible with the function block's "process variable" type (e.g., only fault, level, rate of change, and deviation alarm types). Also, for example, the parameter resolver 136 can cause the GUI module 138 to present the resolved function block's process variables in the alarm configuration GUI to enable efficient specification of the process variables to which the alarm condition is directed. As yet another example, the parameter resolver 136 can cause the GUI module 138 to present entry graphical interface elements in the alarm configuration GUI to enable efficient specification of conditions related to the selected alarm type. The entry graphical interface elements can include, for example, free-form input fields, drop-down selection interfaces, and / or other entry graphical interface elements. As yet another example, the parameter resolver 136 can cause the GUI module 138 to present existing alarms that have already been specified via alarm configuration files in the alarm database for the resolved function block identifier to be presented in the alarm configuration GUI to enable efficient review of, and even efficient modification of, existing alarms.
[0077] The GUI module 138 causes the rendering of corresponding output in the alarm configuration GUI and processes input (e.g., typing, selecting graphical elements, and / or spoken input) received through the alarm configuration GUI. As referenced above, the GUI module 138 can interact with the function block resolver 134 and / or the parameter resolver 136 in updating the alarm configuration GUI during user interaction in specifying alarms.
[0078] After the conditions and / or other parameters of an alarm are specified via the alarm configuration GUI, a corresponding alarm configuration file may be generated. For example, alarm configuration GUI system 130 may generate the alarm configuration file in response to selection of a confirmation interface element by an interacting user in the alarm configuration GUI after specifying the parameters of the alarm. Alarm configuration GUI system 130 may also store the alarm configuration file in alarm database 125 in association with the corresponding function block identifier of the function block and, optionally, in association with the corresponding DCN that utilizes the function block in alarm monitoring, if known. For example, alarm configuration GUI system 130 may provide the alarm configuration file and its associated function block identifier to configuration module 122, which may store the alarm configuration file in alarm database 125 in association with the function block identifier.
[0079] The alarm viewer 140 may be in communication with the alarm engines 116A, 116C, and 116N of the DCNs 110A, 110C, and 110N and may cause the rendering of at least any active alarms via one or more output devices in response to and in accordance with alarm messages received via the alarm engines via respective communication sessions (e.g., connection-oriented communication sessions as described herein). For example, the alarm viewer 140 may cause the display of at least active alarms via a fixed display screen within the process automation equipment. The fixed display screen may be communicatively coupled to a computing system implementing the alarm viewer 140. Also, for example, the alarm viewer 140 may cause at least some active alarms (e.g., alarms designated as “high priority” in a corresponding alarm configuration file) to be transmitted to an individual's mobile phone, e.g., as a text message alert or a push notification via an alarm application installed on the mobile phone. Such transmission may be via the process automation network 106 and / or via one or more WANs connected to the process automation network. The rendering of an active alarm by the alarm viewer 140 may optionally include an audio and / or visual rendering of a descriptor or other message corresponding to the condition that caused the alarm, such as a descriptor defined in the alarm configuration file for the alarm.
[0080] Active alarms may be signaled to the alarm viewer 140 based on a transmission from the DCN in which the alarm engine has determined the occurrence of the active alarm. The transmission may include a message related to the alarm, for example, a descriptor of the alarm as determined using an alarm configuration file, an identification of the function block and / or process variable that caused the alarm, and / or a display of the alarm configuration file. The alarm viewer 140 may utilize information contained in the transmission from the DCN and / or information derived from the alarm database 125 utilizing information contained in the transmission when rendering details on the alarm.
[0081] In various implementations, a connection-oriented communication session between the alarm viewer 140 and the DCN implementing the alarm engine may be desired to ensure low-latency rendering of alarms by the alarm viewer 140 and / or the security of the alarm viewer 140. In some of these implementations, the alarm viewer 140 may utilize an addressable DCN identifier stored in the alarm database 125 by the request module 124 and / or provided to the alarm viewer 140 by the request module 124 in a push notification when establishing such a connection-oriented communication session. This may ensure that a connection-oriented communication session is established between the alarm viewer 140 and the corresponding DCN, and may overcome difficulties associated with determining which DCN implements the alarm engine in a heterogeneous and / or distributed process automation system.
[0082] 1 illustrates an example environment 100 at an initial point in time, such as immediately after initial commissioning of the process automation system 108. In some implementations, during initial commissioning, one or more of the DCNs 110A-N may initially include locally stored function blocks (and corresponding function block identifiers) and / or locally stored alarm engines (and corresponding function block identifiers), but may not have any alarm configuration files stored thereon. After connecting to the process automation network 106, such one or more of the DCNs 110A-N may each send a corresponding alarm configuration request and, in response, may retrieve any responsive alarm configuration files from the alarm configuration service 120. Those responsive alarm configuration files may include, for example, some alarm configuration files from the bulk configuration file 150 and / or some alarm configuration files defined via user interaction with the alarm configuration system 130. Additionally, the addressable DCN identifier obtained from the alarm configuration request may be provided to the alarm viewer 140 (directly or via the alarm database 125) to cause the alarm viewer 140 to establish a connection-oriented communication session with the corresponding DCN that implements the alarm engine.
[0083] 2 illustrates the example environment 100 of FIG. 1 after the DCN 110A of FIG. 1 has been replaced with an alternative DCN 110A1. The alternative DCN 110A1 can replace the DCN 110A due to, for example, a failure of the DCN 110A or an inability of an I / O of the DCN 110A to additionally connect a sensor 115A (connected to 110A1 in FIG. 2). In FIG. 2, the DCN 110A1 is coupled to an FT component 111A via a first I / O, an actuator 113A via a second I / O, and a sensor 115A via a third I / O. The DCN 110A1 includes a processor 112A1 that can utilize associated memory (and corresponding instructions stored therein) to perform corresponding functions of the DCN 110A1. These functions include implementing functional blocks 114A1 of the DCN 110A1, which may be stored in some of the associated memory. Those functions also include implementing alarm engine 116A1. In response to commissioning or powering on, DCN 110A1 can send an alarm configuration request that includes function block identifiers of function block 114A1 and / or of function blocks monitored by alarm engine 116A1, which can include additional function blocks relative to function block 114A (FIG. 1).
[0084] In response to the alarm configuration request, the request module 124 can identify from the alarm database 125 an alarm configuration file stored in association with the functional block identifier of the alarm configuration request. Further, the request module 124 can send the identified alarm configuration file to the DCN 110A1 to cause implementation of the alarm configuration file by the DCN 110A1. Still further, the request module 124 can optionally update the alarm database 125 to store an association of the DCN identifier of the DCN 110A1 with the alarm configuration file and / or the functional block identifier, and / or provide a push notification to the alarm viewer 140 that includes the DCN identifier of the DCN 110A1. Note that the DCN identifier of the DCN 110A1 can be unique with respect to the DCN identifier of the DCN 110A that is being replaced. Updating alarm database 125 to reflect the DCN identifier of DCN 110A1 and / or providing a push notification to alarm viewer 140 may enable alarm viewer 140 to establish a connection-oriented communication session with DCN 110A1 and / or enable updated alarm configuration files to be effectively pushed by push module 126. Furthermore, the unique DCN identifier of DCN 110A1 indicates the robustness of including function block identifiers in alarm configuration requests and / or their use by request module 124 when responding to the request and / or enabling alarm viewer 140 to establish a connection-oriented communication session with DCN 110A1. For example, if some of the responsive alarm configuration files were instead stored in association with only the DCN identifier of DCN 110A, and the DCN identifier of DCN 110A1 were included in the request instead of the function block identifier, request module 124 would not be able to identify such alarm configuration files in response to alarm configuration requests from DCN 110A1.
[0085] 3 shows the example environment 100 of FIG. 1 after the DCN 110A of FIG. 1 has been modified to remove the alarm engine 116A. As a result of the alarm engine 116A being removed, any connection-oriented communication session 110A (FIG. 1) between the alarm viewer 140 and the DCN 110A no longer exists (i.e., that session involved the alarm engine 116A). Additionally, the alarm engine 116C (FIG. 1) of the DCN 110C has been modified to now also include within its alarm monitoring functionality the alarm monitoring functionality performed by the alarm engine 116A (removed from the first DCN 110A). In response to detecting an alarm configuration condition, the DCN 110C can send an alarm configuration request including function block identifiers of function blocks monitored by the alarm engine 116C1, which can include function blocks previously monitored by the alarm engine 116A (FIG. 1).
[0086] In response to the alarm configuration request, the request module 124 may identify from the alarm database 125 an alarm configuration file stored in association with the functional block identifier of the alarm configuration request. Further, the request module 124 may transmit the identified alarm configuration file to the DCN 110C to cause implementation of the alarm configuration file by the DCN 110C. Still further, the request module 124 may optionally update the alarm database 125 to store an association of the DCN identifier of the DCN 110C with the alarm configuration file and / or the functional block identifier.
[0087] 4A-5D, some non-limiting examples of interactions that may occur between a user and the alarm configuration GUI in causing the creation of an alarm configuration file and its association with a function block identifier are provided. For convenience, in describing the aspects of Figures 4A-5D, some reference is made to components of the alarm system configuration GUI system 130 that may be utilized in the interactions.
[0088] 4A , an exemplary initial GUI 460A is illustrated that includes a function block search entry field 461A through which a user can enter (e.g., type) some or all of the function block identifier being sought. The function block resolver 134 can perform a search for matching function block identifiers based on the character entry in the search entry field 461A. For example, the function block resolver 134 can perform a live search as the user types (e.g., updating search results with each character typed), or can wait to perform the search until “enter” is selected, a threshold pause in typing is detected, or other completion indicator is detected.
[0089] Initial GUI 460A also includes selectable options 462A, 463A, and 464A. Selection of selectable option 462A can cause the presentation of only function block identifiers with unconfigured alarms and / or can constrain the search (performed based on the input in function block search entry field 461A) to only function block identifiers with unconfigured alarms. Selection of selectable option 463A can cause the presentation of all function block identifiers and / or can constrain the search (performed based on the input in function block search entry field 461A) to no subset of function block identifiers. Selection of selectable option 464A can cause the presentation of only function block identifiers with recent changes to their alarms and / or can constrain the search (performed based on the input in function block search entry field 461A) to only function block identifiers with recent changes. Optionally, selection of selectable option 464A causes the presentation of an entry field through which the user can specify criteria for recent (e.g., within the last three days, within the last week, etc.).
[0090] 4B, a further GUI 460B is illustrated, including a function block search entry field 461B that has been updated to reflect a resolved function block identifier of “FT101.PV.” For example, “FT101.PV” may be resolved by the function block resolver 134 based on a search for a matching function block identifier performed based on the entry of characters in the search entry field 461A in GUI 460A of FIG. 4A. For example, the characters “FT10” may have been entered, resulting in a search being performed that includes “FT101.PV,” “FT105.PV,” and “FT108.AI” as partial matching results. Further, each of those partial matching results may have been rendered by the GUI engine 138, and the “FT101.PV” result selected by the user results in a resolution of “FT101.PV” and a transition to the further GUI 460B of FIG. 4B.
[0091] The further GUI 460B also includes an alarm type selectable GUI element 465B and a variable selectable GUI element 466B.
[0092] Selection of the alarm type selectable GUI element 465B may cause the following selectable options to be presented (e.g., in a drop-down menu as shown): “Error,” “Level,” “Rate of Change,” and “Deviation,” any one of which may be selected to configure the corresponding type of alarm. As described herein, selection of the alarm type selectable GUI element 465B may cause the parameter resolver 136 to display only those alarm types in the GUI engine 138 in response to determining that those alarm types are compatible with the “Process Variable” alarm type indicated by the “.PV” in “FT101.PV” (the resolved function block identifier).
[0093] Selection of the variable selectable GUI element 466B may cause the following selectable options to be presented (e.g., in a drop-down menu as shown): "Input V1," "Input V2," "Internal V1," and "Output V1," one or more of which may be selected for use in configuring the corresponding alarm. As described herein, the presented selectable variables may be actual variables of the function block corresponding to "FT101.PV." When the selectable GUI element 466B is selected, the parameter resolver 136 may cause the GUI engine 138 to display them in response to them being variables of the function block corresponding to "FT101.PV" (the resolved function block identifier).
[0094] In FIG. 4C, a further GUI 460C is shown after the user has interacted with the alarm type selectable GUI element 465B in GUI 460B of FIG. 4B to select the “Level” alarm type 465C and with the variable selectable GUI element 466B in GUI 460B of FIG. 4B to select the “Input V1” variable 466C.
[0095] Further GUI 460C also includes entry fields 467C1-4 that allow a user to enter values to define each of the high-high, high, low, and low-low conditions for "Level" alarm type 465C and for "Input V1." Further GUI 460C also includes entry fields 468C1-4 that allow a user to enter values to define each of the custom messages that correspond to the occurrence of the high-high, high, low, and low-low conditions.
[0096] 4D, a further GUI 460D is illustrated after a user has interacted with entry fields 467C1-4 of FIG. 4C to enter a high-high value 467D1 of "9.8," to enter a high value 467D2 of "8.0," to enter a low value 467D3 of "2.0," and to enter a low-low value 467D4 of "0.3." Notably, a user who chooses not to interact with entry fields 468C1-4 leaves them blank.
[0097] Also shown in FIG. 4D is a confirmation interface element 469D. Selection of the confirmation interface element 469D causes an alarm configuration file to be generated and stored in association with the "FT101.PV" function block identifier. For example, the generated alarm configuration file can specify "9.8" as the condition for process variable "INPUT V1" that, when met, causes a high-high notification to be provided. Also, for example, the alarm configuration file can specify "8.0" as the condition for process variable "INPUT V1" that, when met, causes a high notification to be provided. The alarm configuration file can similarly specify low and low-low conditions. In particular, leaving entry fields 468C1-4 blank can result in respective default messages being utilized in the alarm configuration file for notification in response to the occurrence of high-high, high, low, and low-low conditions. If entry fields 468C1-4 were instead filled in based on user input, the respective filled messages could be utilized instead. For example, if 468C1 is filled in with "Dangerous Temperature Level in Tank 1," that message can be specified in the alarm configuration file as the notification to be provided in response to the occurrence of a high-high condition.
[0098] 5A-5D, another exemplary progression of the alarm configuration GUI is illustrated as a user interacts with the alarm configuration GUI to cause the generation of a new alarm configuration file to replace an existing alarm configuration file associated with a function block identifier.
[0099] 5A , an exemplary initial GUI 560A is illustrated, including a function block search entry field 561A through which a user can input (e.g., type) some or all of the function block identifiers being sought. Function block resolver 134 can perform a search for matching function block identifiers based on the character entry in search entry field 561A. Initial GUI 460A also includes selectable options 562A, 563A, and 564A. Selection of selectable option 562A can cause the presentation of only function block identifiers with unconfigured alarms and / or can constrain the search (performed based on the input in function block search entry field 561A) to only function block identifiers with unconfigured alarms. Selection of selectable option 563A can cause the presentation of all function block identifiers and / or can constrain the search (performed based on the input in function block search entry field 561A) to no subset of function block identifiers. Selection of selectable option 564A can cause the presentation of only function block identifiers with recent changes to their alarms and / or can cause the search (performed based on the input in function block search entry field 561A) to be constrained to only function block identifiers with recent changes. Optionally, selection of selectable option 564A causes the presentation of an entry field through which the user can specify the criteria for recent.
[0100] 5B, a further GUI 560B is illustrated that includes a function block search entry field 561B that has been updated to reflect a resolved function block identifier of "FT202.PV." For example, "FT202.PV" may be resolved by function block resolver 134 based on a search for a matching function block identifier that is performed based on the entry of characters in search entry field 561A in GUI 560A of FIG. 5A. As another example, "FT202.PV" may be resolved by function block resolver 134 based on a user selecting selectable option 563A and then selecting "FT202.PV" from a list that is displayed in response to the selection.
[0101] The function block identifier "FT202.PV" is a function block identifier already stored in the alarm database 125 in association with an existing alarm configuration file. The parameter resolver 136 can access the alarm database 125 to determine these existing associations, thereby causing the GUI module 138 to render selectable GUI elements corresponding to the existing alarm configuration files: a first selectable GUI element 565B1 corresponding to the first alarm configuration file stored in association with "FT202.PV," a second selectable GUI element 565B2 corresponding to the second alarm configuration file stored in association with "FT202.PV," and a third selectable GUI element 565B3 corresponding to the third alarm configuration file stored in association with "FT202.PV." Any one of the selectable GUI elements 565B1-565B3 can be selected to enable editing of the corresponding alarm configuration file and generation of a new alarm configuration file to replace the existing alarm configuration file. For example, FIGS. 5C and 5D illustrate additional GUIs 560C and 560D that may appear in response to a user's selection of a first selectable GUI element 565B1.
[0102] The further GUI 560B also includes a new alarm selectable GUI element 566B that, when selected, allows creation of a new alarm configuration file to be associated with the function block identifier. In particular, such creation may be restricted to only alarms that do not conflict with existing alarm configuration files, such as alarms of different alarm types and / or that specify conditions on different variables (other than “input V1”). In some implementations, for example, the new alarm selectable GUI element may be omitted when it is determined that there are no additional alarms that do not conflict with existing alarm configuration files. This may force the user to modify existing alarm configuration files to prevent the creation of conflicting alarm configuration files.
[0103] Further GUI 560B also includes a GUI element 567B1 that includes a DCN identifier ("QR22") of a DCN that performs alarm monitoring utilizing the function block corresponding to "FT202.PV." The DCN identifier may be retrieved from alarm database 125 based on being stored in association with the function block identifier "FT202.PV" (e.g., based on a prior alarm configuration request that specified "FT202.PV" and "QR22").
[0104] In Figure 5C, a further GUI 560C is illustrated after a user selects a first selectable GUI element 565B1 in GUI 560B of Figure 5B, and further GUI 560C includes a graphical interface element 561C indicating that the graphical interface element 561C is an item from the first alarm configuration file that corresponds to the selected first selectable GUI element 565B1 that is displayed and editable in further GUI 560C.
[0105] Further GUI 560C also includes entry fields 567C1-3 that reflect currently specified values that reflect the rate of change condition for "Input V1": a current value 567C1 of "5.0" for the amount of change, a current value 567C3 of "10.0" for the specified time, and a value 567C4 of "seconds" for the time units for the specified time. In other words, the current values specify that a rate of change alarm should trigger if the value of "Input V1" changes by 5.0 within a 10-second interval. Further GUI 560C also includes entry field 568C1 that reflects a current custom message corresponding to the rate of change condition specified by the currently specified values.
[0106] The respective values in each of entry fields 567C1-3 are editable through interaction with the entry field. For example, entry fields 567C1 and 567C2 can be edited via typing, and entry field 567C3 can be edited via touch or mouse input (e.g., to select in a dropdown from other discrete time unit options, such as "milliseconds," "minutes," and / or "hours"). The current custom message in entry field 568C1 is also editable.
[0107] In Figure 5D, a further GUI 560D is illustrated after the user has interacted with entry field 567C2 of GUI 560C of Figure 5C to change "10.0" to "15.0" and with entry field 568C1 of GUI 560C of Figure 5C to replace "Tank 1" with "Primary Tank." Notably, the user chooses not to interact with entry fields 567C1 and 567C2, leaving them with their original current values.
[0108] 5D , a confirmation interface element 569D is also illustrated. Selection of the confirmation interface element 569D causes a new alarm configuration file to be generated and stored in the alarm database 125 in association with the “FT202.PV” function block identifier. This, in turn, causes the new alarm configuration file to replace the edited alarm configuration file in the alarm database 125. For example, the edited alarm configuration file can be removed from the alarm database 125, or it can remain in the alarm database 125 but be marked as “legacy,” “no longer in use,” or with other flags to prevent its provision to any DCN for use in active alarm monitoring.
[0109] 6 illustrates an example method 600 for utilizing an alarm configuration GUI in generating alarm configuration files associated with function block identifiers and transmitting the alarm configuration files to a DCN that utilizes the function blocks in alarm monitoring. For convenience, the operations of the flowcharts are described with reference to a system that performs the operations. This system may include various components of various computer systems, such as alarm configuration GUI system 130 and / or alarm configuration service 120. Moreover, while the operations of method 600 are shown in a particular order, this is not intended to be limiting. One or more operations may be reordered, omitted, or added.
[0110] In block 602, the system resolves functional block identifiers based on user interface (UI) input received via an alarm configuration GUI. In some implementations, block 602 can include sub-block 602A and / or sub-block 602B.
[0111] In subblock 602A, the system resolves function block identifiers based on a lookup based on free-form UI input provided via the alarm configuration GUI. In subblock 602B, the system resolves function block identifiers based on receiving a selection UI input that selects a function block identifier from multiple rendered function block identifiers. In some implementations, subblock 602A may be executed without executing subblock 602B. For example, the system may resolve a single function block identifier from a lookup based on free-form UI input provided via the alarm configuration GUI. In some implementations, both subblock 602A and subblock 602B are executed. For example, the system may identify multiple function block identifiers from a lookup based on free-form UI input provided via the alarm configuration GUI, each of the function block identifiers may be rendered, and a single function block identifier is resolved based on selecting one of the function block identifiers during rendering. In some implementations, subblock 602B may be executed without executing subblock 602A. For example, the function block identifiers may be rendered without any lookup, and one of the function block identifiers is resolved based on being selected.
[0112] In block 604, the system renders existing alarms (if any) for the resolved function block identifier and / or new alarm options (if any) for the resolved function block identifier in the alarm configuration GUI. For example, if there are no existing alarms for the resolved function block identifier, the system may render only options for new alarms to be created. In some implementations, block 604 may include a sub-block 604A in which the system renders new alarm options depending on the function block type of the resolved function block identifier in block 602 and / or depending on the existing alarms (if any) for the resolved function block identifier. For example, the system may render only new alarm options that are of a type that is compatible with the function block type of the resolved function block identifier in block 602. As another example, the system may render only new alarm options that do not conflict with existing alarms.
[0113] In block 606, the system monitors for a selection of one of the rendered alarms (e.g., an existing rendered alarm or a rendered alarm option). If the system detects a selection of one of the rendered alarms in block 606, the system proceeds to block 608 based on the selected alarm.
[0114] In block 608, the system receives further UI input to modify an existing alarm (i.e., when an existing alarm is selected in block 606) or specify a new alarm (i.e., when a new alarm option is selected in block 606) and updates the GUI to reflect the modification of the existing alarm or the specification of a new alarm.
[0115] At block 610, the system monitors for confirmation of modifications to an existing alarm or specification of a new alarm. For example, the system may monitor for a user selection of a confirmation interface element rendered in an alarm configuration GUI, a user utterance of "done" or "confirm," and / or other confirmatory user input. If at block 610, the system detects confirmation of modifications to an existing alarm or specification of a new alarm, the system proceeds to block 612.
[0116] At block 612, the system generates an alarm configuration file based on the further UI input received at block 608 and stores the generated alarm configuration file in the alarm database in association with the resolved function block identifier. In some implementations, the alarm configuration file may also be stored in the alarm database in association with metadata related to the creation of the alarm configuration file. For example, the metadata may include a creation date, a creation time, and / or a username corresponding to the user who created the alarm configuration file (e.g., a username used during authentication).
[0117] In some implementations, block 612 includes a sub-block 612A in which the system stores alarm configuration files in association with DCN identifiers of DCNs that utilize function blocks in alarm monitoring. This can include a direct association between the DCN identifier and the alarm configuration file, or an indirect association via an association of the alarm configuration file to the function block identifier and an association of the function block identifier to the DCN identifier. As described herein, the association of the function block identifier to the DCN identifier can be based on a prior alarm configuration request from the DCN that included, for example, both the function block identifier and the DCN identifier.
[0118] In block 614, the system transmits the alarm configuration file over the network to the DCN that utilizes the function block (corresponding to the resolved function block identifier) in alarm monitoring.
[0119] In block 616, the system determines whether further user interaction via the GUI indicates a desire to define additional alarms for that function block and / or other function blocks. If so, the system proceeds back to block 602 (e.g., in the case of a desire to define additional alarms for other function blocks) or block 604 (e.g., in the case of a desire to define additional alarms for the same function block). If not, the system can proceed to block 618 and the iteration of method 600 can end.
[0120] FIG. 7 illustrates an example implementation 614A of block 614 of FIG.
[0121] In block 614A1, the system determines whether there is an associated DCN identifier stored in the alarm database in association with the function block identifier.
[0122] If so, in block 614A3, the system either sends an alarm configuration file to the DCN using the DCN identifier (i.e., proactively and unilaterally) or sends an update request to the DCN using the DCN identifier. The system then proceeds to block 614A4 to determine whether an alarm configuration file or an update request was sent in block 614A3. If an alarm configuration file was sent, the system proceeds to block 614A7 and the iteration of implementation 614A ends. If an update request was sent instead, the system proceeds to block 614A5. In some implementations, when an update request is sent in block 614A3, the update request may be sent directly to the DCN (and not to any other DCN) and may be a message informing the DCN that an updated alarm configuration file is available, which, when received at the DCN, may be an alarm configuration condition (e.g., may lead to a “yes” decision in block 802 of method 800).
[0123] If the determination in block 614A1 is no, then in block 614A2, the system broadcasts an update request to all DCNs in the network, which, when received at the DCN, may be an alarm configuration condition for the DCN. Alternatively, in block 614A2, the system may instead wait for a DCN associated with the functional block identifier to send an alarm configuration request in response to an alternative alarm configuration condition. In some implementations, the system may dynamically determine whether to broadcast the update request in block 614A2 or instead wait for an alarm configuration request from the corresponding DCN in response to the corresponding DCN detecting the alternative condition. In some of these implementations, the dynamic decision may be based on the priority of the alarm configuration file, such as a severity level explicitly defined in the alarm configuration file. For example, the dynamic decision may be to broadcast an update request if the severity level is the highest priority level, and otherwise wait for an alarm configuration request in response to the corresponding DCN detecting the alternative condition. In some of these implementations, the dynamic determination may additionally or alternatively be based on network conditions of the process automation network and / or a determined or estimated current workload of the DCN of the process automation system. Note that in some implementations, the update request optionally sent in block 614A3 may optionally differ from the update request of block 614A2 and may consequently be processed differently by receiving the DCN. For example, the DCN may act on the update request of block 614A3 as soon as possible but optionally delay acting based on the update request of block 614A2 (e.g., based on a randomly selected delay duration).
[0124] In block 614A5, the system receives an alarm configuration request from the DCN that includes the resolved function block identifier of block 602 (FIG. 6) that is associated in the alarm database with the alarm configuration file created in block 612 (FIG. 6). The DCN may have sent the alarm configuration request of block 614A5 in response to receiving the update request sent in block 614A3 or broadcast in block 614A2.
[0125] In some implementations, block 614A5 includes sub-block 614A5A. In sub-block 614A5A, the system stores the DCN identifier associated with the alarm configuration request in an alarm database in association with the retrieved alarm configuration file and / or the function block identifier of the request. The system may also store the DCN identifier in association with any additional retrieved alarm configuration files and / or additional function block identifiers of the request. The DCN identifier is an identifier of the DCN that sent the alarm configuration request. The DCN identifier may be included in the alarm configuration request or may be determined, for example, from a transmission header associated with the request. The DCN identifier may optionally be a network-addressable identifier, such as an IP address or MAC address. In various implementations, when the DCN identifier is stored in the database in association with the alarm configuration file, the DCN identifier may then be utilized for various purposes, such as those described herein.
[0126] In block 614A6, the system transmits the alarm configuration file over the network to the DCN in response to the request. The system transmits the alarm configuration file based on the alarm configuration file being stored in the alarm database in association with the function block identifier of the alarm configuration request. The system then proceeds to block 614A7.
[0127] 8 is a flowchart illustrating an example method 800 for generating and transmitting an alarm configuration request, receiving an alarm configuration file in response thereto, and performing local alarm monitoring based on the received alarm configuration file. For convenience, the operations of the flowchart are described with reference to a system that performs the operations. The system may include various components of various computer systems, such as any one of the DCNs 110A-N. Moreover, while the operations of method 800 are shown in a particular order, this is not intended to be limiting. One or more operations may be reordered, omitted, or added.
[0128] At block 802, the system monitors for the occurrence of an alarm configuration condition. If an alarm configuration condition is detected at block 802, the system proceeds to block 804. In some implementations, at block 802, the system monitors for the occurrence of any one of several conditions, such as determining that the system is newly commissioned, determining that the system is powered up, determining that its alarm engine is assigned to monitor a function block but that monitoring is not currently active, determining that a threshold duration has passed since the system last issued an alarm configuration request, and / or receiving an update request from an alarm configuration service (e.g., from push module 126).
[0129] At block 804, the system generates an alarm configuration request that includes function block identifiers for the function blocks based on the function blocks being locally executed and / or locally utilized in alarm monitoring. For example, the system may include the function block identifiers based on the function block identifiers being assigned for use by the system's alarm engine in alarm monitoring. In some implementations, the alarm configuration request includes multiple function block identifiers for multiple function blocks based on the function blocks being locally executed and / or locally utilized in alarm monitoring.
[0130] In block 806, the system transmits the alarm configuration request generated in block 804 over a process automation network.
[0131] In block 808, the system receives the alarm configuration file for the function block identifier in response to the request over the process automation network. In block 808, the system can optionally receive multiple alarm configuration files, for example, when the alarm configuration request includes multiple function block identifiers. In some implementations, the alarm configuration file is received in block 808 in response to execution of block 614A6 of implementation 614A of FIG. 7.
[0132] In block 809, the system determines whether all of the received alarm configuration files are duplicates, that is, whether all of the received alarm configuration files are already stored locally and are utilized locally by the system's alarm engine in performing alarm monitoring. If so, the system proceeds back to block 802 to monitor for the occurrence of another alarm configuration condition. If not, the system proceeds to block 810.
[0133] In block 810, the system performs local alarm monitoring based on the received alarm configuration file (if not a duplicate) and function blocks, and based on any additional received alarm configuration files (if not a duplicate) and corresponding function blocks.
[0134] Block 810 may optionally include sub-block 810A. In sub-block 810A, when performing local alarm monitoring based on the received alarm configuration file and function blocks, the system monitors the function blocks for conditions in the alarm configuration file to be met (e.g., during execution of the function blocks), and in response to detecting that the conditions are met, performs a corresponding action for the met condition.
[0135] 9 is a flowchart illustrating an example method 900 for storing alarm configuration files in association with function block identifiers and transmitting alarm configuration files in response to alarm configuration requests that include the function block identifiers associated with the alarm configuration files. For convenience, the operations of the flowchart are described with reference to a system that performs the operations. The system may include various components of various computer systems, such as alarm configuration service 120. Moreover, while the operations of method 900 are shown in a particular order, this is not intended to be limiting. One or more operations may be reordered, omitted, or added.
[0136] In block 902, the system receives alarm configuration files and their associated function block identifiers. Block 902 can optionally include sub-block 902A and / or sub-block 902B. In sub-block 902A, the system receives at least some of the alarm configuration files and their associated function block identifiers via bulk upload. In sub-block 902B, the system receives at least some of the alarm configuration files and their associated function block identifiers via user interaction with an alarm configuration GUI, such as alarm configuration GUI system 130.
[0137] At block 904, the system stores the alarm configuration files received at block 902 in an alarm database, storing each of the alarm configuration files in association with a corresponding function block identifier in the alarm database.
[0138] In block 906, the system receives an alarm configuration request from the DCN over the process automation network, the alarm configuration request including a particular function block identifier and optionally additional function block identifiers. The DCN can include the function block identifiers in the alarm configuration request based on the function block identifiers being implemented by the DCN and / or monitored by an alarm engine of the DCN.
[0139] In block 908, the system retrieves alarm configuration files from the alarm database. The system retrieves the alarm configuration files based on the alarm configuration files being stored in association with the function block identifiers of the request in block 906. In block 908, the system can also optionally retrieve additional alarm configuration files based on the additional alarm configuration files being stored in association with the additional function block identifiers of the request in block 906. In various implementations, one or more of the retrieved alarm configuration files can be unique with respect to all other alarm configuration files in the database and / or can be provided to other DCNs in response to other alarm configuration requests. For example, one or more of the retrieved alarm configuration files can have unique conditions and / or variables, or unique combinations of conditions and variables, with respect to all other alarm configuration files provided to other DCNs in response to other alarm configuration requests.
[0140] In block 910, the system transmits to the DCN the alarm configuration file retrieved in block 908, and optionally any additional alarm configuration files retrieved in block 908. The system transmits the alarm configuration files over the process automation network in response to the alarm configuration request in block 906.
[0141] In optional block 912, the system stores the DCN identifier associated with the alarm configuration request in an alarm database in association with the retrieved alarm configuration file and / or the function block identifier of the request. The system may also store the DCN identifier in association with any additional retrieved alarm configuration files and / or additional function block identifiers of the request. The DCN identifier is the identifier of the DCN that sent the alarm configuration request. The DCN identifier may be included in the alarm configuration request or may be determined, for example, from a transmission header associated with the request. The DCN identifier may optionally be a network-addressable identifier, such as an IP address or MAC address. In various implementations, when the DCN identifier is stored in the database in association with the alarm configuration file, the DCN identifier may subsequently be utilized by, for example, the alarm viewer 140, in establishing a connection-oriented connection with the corresponding DCN. This may enable low-latency and / or secure transmission of alarm data from the corresponding DCN to the alarm viewer 140. In these and other ways, secure and / or rapid rendering of alarms via the alarm viewer may occur. Furthermore, this is possible without requiring manual assignment of DCN identifiers with which the alarm viewer should establish connection-oriented connections.
[0142] At block 914, the system waits for additional alarm configuration requests from another DCN. If additional alarm configuration requests are received, the system proceeds back to block 906 to process the additional alarm configuration requests. Note that although shown sequentially in method 900, multiple alarm configuration requests may be processed in parallel in various implementations.
[0143] 10 is a flowchart illustrating an example method 1000 for receiving an updated alarm configuration file and its associated function block identifiers and deploying the updated alarm configuration file to a DCN. For convenience, the operations of the flowchart are described with reference to a system that performs the operations. The system may include various components of various computer systems, such as the alarm configuration service 120. Moreover, while the operations of the method 1000 are shown in a particular order, this is not intended to be limiting. One or more operations may be reordered, omitted, or added.
[0144] The system receives an updated alarm configuration file and its associated function block identifiers at block 1002. For example, the updated alarm configuration file and its association with function block identifiers may be received via bulk upload and / or via user interaction with an alarm configuration GUI.
[0145] In block 1004, the system stores the updated alarm configuration file in association with the function block identifier in the alarm database. For example, the system can replace the previous alarm configuration file associated with the function block identifier in the alarm database with the updated alarm configuration file and associate the updated alarm configuration file with the function block identifier.
[0146] In block 1006, the system determines whether there is an associated DCN identifier stored in the alarm database in association with the function block identifier (and / or previous alarm configuration file). If so, in block 1008, the system sends an update request to the DCN using the DCN identifier. For example, the update request may be sent directly to the DCN (and not to any other DCN) and may be a message informing the DCN that an updated alarm configuration file is available, which, when received at the DCN, may be an alarm configuration condition (e.g., which may lead to a “yes” decision in block 802 of method 800).
[0147] If the determination in block 1006 is no, then in block 1007, the system broadcasts an update request to all DCNs in the network, which, when received at the DCN, may be an alarm configuration condition for the DCN. Alternatively, in block 1008, the system may instead wait for a DCN associated with the functional block identifier to send an alarm configuration request in response to an alternative alarm configuration condition. In some implementations, the system may dynamically determine whether to broadcast the update request in block 1008 or instead wait for an alarm configuration request from the corresponding DCN in response to the corresponding DCN detecting the alternative condition. In some of these implementations, the dynamic decision may be based on the priority of the alarm configuration file, such as a priority level explicitly defined in the alarm configuration file. For example, the dynamic decision may be to broadcast the update request if the priority level is the highest priority level, and otherwise wait for an alarm configuration request in response to the corresponding DCN detecting the alternative condition. In some of these implementations, the dynamic determination may additionally or alternatively be based on network conditions of the process automation network and / or a determined or estimated current workload of the DCN of the process automation system. Note that, as described herein, in some implementations, the update request optionally sent in block 1007 may optionally differ from the update request of block 1008 and, as a result, may be processed differently by receiving the DCN. For example, the DCN may act on the update request of block 1008 as soon as possible but may optionally delay acting based on the update request of block 1007 (e.g., based on a randomly selected delay duration).
[0148] In block 1010, the system receives an alarm configuration request from the DCN that includes the function block identifier of block 1002 that is associated in the alarm database with the updated alarm configuration file. The DCN may have sent the alarm configuration request of block 1010 in response to receiving the update request sent in block 1008 or broadcast in block 1007.
[0149] In block 1012, the system transmits the updated alarm configuration file to the DCN in response to the request over the process automation network. The system transmits the updated alarm configuration file based on the updated alarm configuration file being stored in the alarm database in association with the function block identifier of the alarm configuration request.
[0150] 11 is a flowchart illustrating an example method 1100 for using an addressable DCN identifier received in an alarm configuration transmission from a DCN to establish a persistent connection-oriented communication session between an alarm viewer and an alarm engine of the DCN. For convenience, the operations of the flowchart are described with reference to a system that performs the operations. The system may include various components of various computer systems, such as the alarm configuration service 120 (e.g., the request module 124) and / or the alarm viewer 140. Moreover, while the operations of the method 1100 are shown in a particular order, this is not intended to be limiting. One or more operations may be reordered, omitted, or added.
[0151] In block 1102, the system receives an alarm configuration transmission from a DCN over a process automation network, the alarm configuration transmission including an addressable DCN identifier. In some implementations, block 1102 includes sub-block 1103A or sub-block 1103B.
[0152] In sub-block 1103A, the alarm configuration send is an alarm configuration request that also includes function block identifiers. The DCN may include function block identifiers in the alarm configuration request based on the corresponding function blocks being executed by the DCN and / or assigned by the DCN for use in alarm monitoring. Further, and as described herein (e.g., method 1100 of FIG. 11 ), the alarm configuration service may respond to the alarm configuration request by sending alarm configuration files to the DCN in response to determining that each of the alarm configuration files is assigned to a corresponding one of the function block identifiers in the alarm configuration request.
[0153] In sub-block 1103B, the alarm configuration transmission is an alarm configuration notification. The alarm configuration notification may optionally include a function block identifier and may specify a corresponding alarm configuration file pre-loaded on the DCN and / or created locally at the DCN (e.g., via a direct connection with a human machine interface (HMI)). Additionally, and as described herein, an alarm configuration service that receives the alarm configuration notification updates an alarm database, for example, to reflect the association of the alarm configuration file to the function block.
[0154] In block 1104, the system determines whether there is already an established connection-oriented communication session between the alarm viewer and the DCN. If so, the system proceeds to block 1110 and the current iteration of method 1100 ends. If not, the system proceeds to block 1106.
[0155] In block 1106, the system uses the addressable DCN identifier from the alarm configuration transmission of block 1102 to establish a persistent connection-oriented communication session between the alarm viewer and an alarm engine in the DCN. For example, the alarm viewer can initiate the establishment of a TCP connection or other persistent connection-oriented communication session, which may be established with an OPC-UA server implementing an alarm engine on the DCN. In some implementations, the addressable DCN identifier includes an IP address and port of the DCN, and the alarm viewer uses the IP address and port to establish the persistent connection-oriented communication session. The port may be, for example, a port used by an alarm engine in the DCN. For example, it may be a port used by an OPC-UA server implementing an alarm engine on the DCN.
[0156] In block 1108, the system causes the rendering of alarm messages sent by an alarm engine of the DCN using the established persistent connection-oriented communication session. For example, the alarm engine of the DCN can detect an alarm condition based on local alarm monitoring and can send alarm messages to an alarm viewer using the established persistent connection-oriented communication session. The alarm viewer can receive the alarm messages and cause their rendering.
[0157] Figure 12A illustrates one particular implementation 1100A of the example method 1100 of Figure 11. In Figure 12A, the blocks illustrated to the left of the dashed line and under "Alarm Configuration Service" indicate blocks that may be performed by an alarm configuration service, such as alarm configuration service 120 (Figures 1-3), in this particular implementation 1100A. Additionally, the blocks illustrated to the right of the dashed line and under "Alarm Viewer" indicate blocks that may be performed by an alarm viewer, such as alarm viewer 140 (Figures 1-3), in this particular implementation 1100A.
[0158] In block 1102A, an alarm configuration service receives an alarm configuration transmission from the DCN over the process automation network.
[0159] In optional block 1104A1, the alarm configuration service determines whether the DCN that sent the alarm configuration transmission received in block 1102A is a new DCN for alarm monitoring. If so, the alarm configuration service proceeds to block 1106A1. If not, the alarm configuration service proceeds to block 1110A, and the current iteration of implementation 1100A ends. In some implementations, in block 1104A1, the alarm configuration service can access an alarm database that it manages to determine whether there are any existing entries for the addressable DCN identifier of the DCN included in the alarm configuration transmission. If so, the alarm configuration service can determine that the DCN is not a new DCN for alarm monitoring. If not, the alarm configuration service can determine that the DCN is a new DCN for alarm monitoring. In some implementations, in block 1104A1, the alarm configuration service can poll the alarm viewer to determine whether the alarm viewer has an existing connection-oriented communication session established using the addressable DCN identifier. If so, the alarm configuration service can determine that the DCN identifier is not a new DCN identifier for alarm monitoring. If not, the alarm configuration service can determine that the DCN identifier is a new DCN identifier for alarm monitoring.
[0160] In block 1106A1, the alarm configuration service sends the addressable DCN identifier from the alarm configuration transmission directly to the alarm viewer.
[0161] In optional block 1104A2, the alarm viewer determines, in response to receiving the addressable DCN identifier sent in block 1106A1, whether the alarm viewer already has an established connection-oriented communication session with the addressable DCN identifier. If so, the alarm viewer proceeds to block 1110A, and the current iteration of implementation 1100A ends. If not, the alarm viewer proceeds to block 1106A2.
[0162] In block 1106A2, the alarm viewer uses the received addressable DCN identifier (sent in block 1106A1) to establish a persistent connection-oriented communication session with the alarm engine of the DCN corresponding to the addressable DCN identifier.
[0163] In block 1108A, the system causes the rendering of an alarm message sent by an alarm engine in the DCN using the established persistent connection-oriented communication session.
[0164] Figure 12B illustrates another specific implementation 1100B of the example method of Figure 4. As in Figure 12A, in Figure 12B, the blocks illustrated to the left of the dashed line and under "Alarm Configuration Service" indicate blocks that may be performed by an alarm configuration service, such as alarm configuration service 120 (Figures 1-3), in this specific implementation 1100B. Additionally, the blocks illustrated to the right of the dashed line and under "Alarm Viewer" indicate blocks that may be performed by an alarm viewer, such as alarm viewer 140 (Figures 1-3), in this specific implementation 1100B.
[0165] In block 1102B, the alarm configuration service receives an alarm configuration transmission from the DCN over the process automation network.
[0166] In block 1104B1, the alarm configuration service determines whether the alarm configuration transmission of block 1102B is an alarm configuration transmission that requires a new association of data from the alarm configuration transmission to the addressable DCN identifier of that transmission in an alarm database managed by the alarm configuration service. If so, the alarm configuration service proceeds to block 1106B1. If not, the alarm configuration service proceeds to block 1110B and the current iteration of implementation 1100B ends. In some implementations, in block 1104B1, the alarm configuration service may access the alarm database to determine whether there is an existing entry for the association of data from the alarm configuration transmission to the addressable DCN identifier of that transmission. If so, the alarm configuration service may determine that the alarm configuration transmission of block 1102B is not an alarm configuration transmission that requires a new association in the database. If not, the alarm configuration service may determine that the alarm configuration transmission of block 1102B is an alarm configuration transmission that requires a new association in the database.
[0167] In block 1106B1, the alarm configuration service creates a new association in the alarm database of data from the alarm configuration transmission to the addressable DCN identifier of that transmission. For example, the new association can be an association of a function block from the alarm configuration transmission to the DCN identifier of that transmission and / or an association of an alarm configuration file (e.g., from the alarm configuration transmission) to the DCN identifier of that transmission.
[0168] In block 1104B2, the alarm viewer determines whether there are any new addressable DCN identifiers in the alarm database with which the alarm viewer has not yet established a connection-oriented communication session. If not, the alarm viewer may repeat block 1104B2, optionally after a periodic or non-periodic delay. If so, the system proceeds to block 1106B2.
[0169] In block 1106B2, the system uses the new addressable DCN identifier from the alarm database to establish a persistent connection-oriented communication session with the alarm engine of the DCN corresponding to the new addressable DCN identifier. The system can also return to block 1104B2 and continue monitoring for another new addressable DCN identifier in the alarm database with which an alarm viewer has not yet established a connection-oriented communication session.
[0170] In block 1108B, the system causes the rendering of alarm messages sent by the alarm engine of the DCN using the established persistent connection-oriented communication session.
[0171] 13 is a block diagram of an exemplary computing device 1310 that may optionally be utilized to perform one or more aspects of the techniques described herein. For example, computing device 1310 is an example of a computing device that can implement all or a portion of an alarm configuration service and / or optionally all or a portion of some DCN. Computing device 1310 typically includes at least one processor 1314 that communicates with several peripheral devices via a bus subsystem 1312. These peripheral devices may include, for example, a storage subsystem 1324 including a memory subsystem 1325 and a file storage subsystem 1326, a user interface output device 1320, a user interface input device 1322, and a network interface subsystem 1316. The input and output devices enable user interaction with computing device 1310. Network interface subsystem 1316 provides an interface to an outside network and is coupled to corresponding interface devices in other computing devices.
[0172] The user interface input devices 1322 may include a keyboard, a pointing device such as a mouse, a trackball, a touchpad, or a graphics tablet, a scanner, a touchscreen integrated into a display, a voice recognition system, an audio input device such as a microphone, and / or other types of input devices. In general, use of the term "input device" is intended to include all possible types of devices and methods for inputting information into the computing device 1310 or onto a communications network.
[0173] The user interface output devices 1320 may include a display subsystem, a printer, a fax machine, or a non-visual display such as an audio output device. The display subsystem may include a cathode ray tube (CRT), a flat panel device such as a liquid crystal display (LCD), a projection device, or other mechanism for producing a visible image. The display subsystem may also provide a non-visual display, such as via an audio output device. In general, use of the term "output device" is intended to include all possible types of devices and methods for outputting information from the computing device 1310 to a user or to another machine or computing device.
[0174] The storage subsystem 1324 stores programming and data constructs that provide the functionality of some or all of the modules described herein. For example, the storage subsystem 1324 may include logic for performing selected aspects of the methods of Figures 6-12 and for implementing the various components shown in Figures 1-3.
[0175] These software modules are typically executed by the processor 1314 alone or in combination with other processors. The memory 1325 used in the storage subsystem 1324 can include several memories, including a main random access memory (RAM) 1330 for storing instructions and data during program execution, and a read-only memory (ROM) 1332 in which fixed instructions are stored. The file storage subsystem 1326 can provide persistent storage for program and data files and may include a hard disk drive, a floppy disk drive with associated removable media, a CD-ROM drive, an optical drive, or a removable media cartridge. Modules that implement the functionality of some implementations may be stored in the storage subsystem 1324 by the file storage subsystem 1326 or in other machines accessible by the processor 1314.
[0176] The bus subsystem 1312 provides a mechanism for allowing the various components and subsystems of the computing device 1310 to communicate with each other as intended. Although the bus subsystem 1312 is illustrated schematically as a single bus, alternative implementations of the bus subsystem may use multiple buses.
[0177] The computing device 1310 can be of various types, including a workstation, a server, a computing cluster, a blade server, a server farm, or any other data processing system or computing device. Due to the ever-changing nature of computers and networks, the description of the computing device 1310 shown in Figure 13 is intended only as a specific example to illustrate some implementations. Many other configurations of the computing device 1310 are possible, having more or fewer components than the computing device shown in Figure 13.
[0178] While several implementations have been described and illustrated herein, various other means and / or structures for performing the functions and / or obtaining one or more of the results and / or advantages described herein may be utilized, and each such variation and / or modification is deemed to be within the scope of the implementations described herein. More generally, all parameters, dimensions, materials, and configurations described herein are intended to be exemplary, and the actual parameters, dimensions, materials, and / or configurations will depend on the specific application or applications for which the present teachings are used. Those skilled in the art will recognize, or be able to ascertain using no more than routine experimentation, many equivalents to the specific implementations described herein. Accordingly, it will be understood that the above-described implementations are presented by way of example only, and that, within the scope of the appended claims and their equivalents, implementations may be practiced otherwise than as specifically described and claimed. Implementations of the present disclosure are directed to each individual feature, system, article, material, kit, and / or method described herein. In addition, any combination of two or more such features, systems, articles, materials, kits, and / or methods is included within the scope of the present disclosure, if such features, systems, articles, materials, kits, and / or methods are not mutually inconsistent.
[0179] In some implementations, a method is provided, the method including receiving one or more instances of user interface input via an alarm configuration interface, the one or more instances collectively defining one or more conditions to be used for process automation alarms and function block identifiers of function blocks of a process automation system via which the conditions are to be monitored. The method further includes generating an alarm configuration file specifying the conditions in response to receiving the instances of user interface input, and storing the alarm configuration file in a database in association with the function block identifier for the function block. After storing the alarm configuration file in the database in association with the function block identifier, the method further includes determining that a distributed control node (DCN) of the process automation system will locally utilize the function block identified by the function block identifier in alarm monitoring. The method further includes retrieving the alarm configuration file from the database based on the alarm configuration file being stored in association with the function block identifier, and transmitting the retrieved alarm configuration file to the DCN over a network of the process automation system in response to determining that the DCN will utilize the process automation function block identified by the function block identifier in alarm monitoring. The step of transmitting the retrieved alarm configuration file causes the DCN to perform alarm monitoring consistent with the retrieved alarm configuration file.
[0180] These and other implementations of the techniques disclosed herein may include one or more of the following features.
[0181] In some implementations, determining that the DCN will locally utilize the function block when monitoring alarms includes receiving an alarm configuration request sent by the DCN over a network of the process automation system, and determining that the DCN will locally utilize the function block when monitoring alarms in response to the alarm configuration request including the function block identifier. In these implementations, retrieving an alarm configuration file from a database and transmitting the retrieved alarm configuration file to the DCN in response to receiving the alarm configuration request. In some versions of these implementations, the alarm configuration request further includes a DCN identifier that uniquely identifies the DCN to all other DCNs of the process automation system, and the method further includes receiving the alarm configuration request and storing the DCN identifier in the database in association with the function block identifier in response to the alarm configuration request including the function block identifier and the DCN identifier. In some of these versions, the method further includes receiving one or more additional instances of user interface input via an alarm configuration interface, the one or more additional instances collectively specifying one or more alternative conditions and function block identifiers to be used for the process automation alarm; generating an alternative alarm configuration file specifying the alternative conditions in response to receiving the additional instances of user interface input, storing the alternative alarm configuration file in a database in association with the function block identifier, and removing an association of the alarm configuration file with the function block identifier from the database; and transmitting the alternative alarm configuration file to a DCN over a network using the DCN identifier after storing the alternative alarm configuration file in the database in association with the function block identifier and based on the database storing the DCN identifier in association with the function block identifier and storing the alternative alarm configuration file in association with the function block identifier.The step of transmitting the alternative alarm configuration file causes the DCN to perform alarm monitoring consistent with the alternative alarm configuration file instead of performing alarm monitoring consistent with the alarm configuration file. Optionally, the step of transmitting the alternative alarm configuration file includes unilaterally transmitting the retrieved configuration file to the DCN using a DCN identifier.
[0182] In some implementations, receiving instances of user interface inputs via the alarm configuration interface that collectively specify one or more conditions and function block identifiers includes receiving one or more initial instances of the user interface inputs that specify the function block identifiers and receiving one or more subsequent instances of the user interface inputs that specify the conditions to be used for the process automation alarm. In some versions of these implementations, the method further includes identifying the function block identifiers based on the initial instances of the user interface inputs, generating a graphical output that depends on the identification of the function block identifiers, and causing the graphical output to be rendered via the alarm configuration interface. The subsequent instances of the user interface inputs are received via interaction with the graphical output that depends on the identification of the function block identifiers. In some versions of these implementations, generating a graphical output that depends on the identification of the function block identifiers includes generating the graphical output according to a function block type specified by the function block identifiers. In some of these versions, generating a graphical output dependent on the identification of the function block identifier includes identifying a current condition for the process automation alarm based on a current alarm configuration file stored in a database in association with the function block identifier, and generating a graphical output to reflect the identified current condition for the process automation alarm.
[0183] In some implementations, determining that the DCN will locally utilize the function block when monitoring alarms includes determining that the DCN will locally utilize the function block when monitoring alarms based on a pre-stored association of the DCN to the function block. In some versions of these implementations, sending the retrieved alarm configuration file to the DCN in response to the DCN determining that the process automation function block will be utilized includes unilaterally sending the retrieved configuration file to the DCN.
[0184] In some implementations, sending the retrieved alarm configuration file to the DCN in response to the DCN determining to utilize the process automation function block includes sending an initial communication to the DCN indicating availability of an updated alarm configuration file, receiving an alarm configuration request from the DCN after the initial communication, and sending the retrieved alarm configuration file to the DCN in response to receiving the alarm configuration request from the DCN.
[0185] In some implementations, the function block identifier is unique to the function block and is not assigned to any other function block in the process automation system.
[0186] In some implementations, the method further includes authenticating a user providing one or more instances of user interface input, in some of these implementations, storing the alarm configuration file in the database in association with the function block identifier is further responsive to authenticating the user.
[0187] In some implementations, a method is provided, the method including receiving one or more initial instances of user interface input via an alarm configuration interface and selecting a function block identifier for a function block from a plurality of function block identifiers for a process automation system based on the initial instance of the user interface input. The method further includes generating a graphical output dependent on the selection of the function block identifier, causing the graphical output to be rendered via the alarm configuration interface, and receiving one or more subsequent instances of the user interface input via interaction with the graphical output dependent on the identification of the function block identifier. The method further includes determining one or more conditions to be used for the process automation alarm based on the subsequent instances of the user interface input. In response to determining the condition, the method further includes storing an alarm configuration file specifying the condition and an association of the alarm configuration file with the function block identifier in a database, and in response to determining that the DCN will utilize the function block identified by the function block identifier in alarm monitoring, transmitting the alarm configuration file to a distributed control node (DCN) over a network of the process automation system. Transmitting the retrieved alarm configuration file causes the DCN to perform alarm monitoring consistent with the alarm configuration file.
[0188] These and other implementations of the techniques disclosed herein may include one or more of the following features.
[0189] In some implementations, generating the graphical output dependent on the selection of the function block identifier includes generating the graphical output according to the function block type specified by the function block identifier. In some versions of those implementations, generating according to the function block type specified by the function block identifier includes generating the graphical output to include only alarm types that are compatible with the function block type. In some of those versions, generating the graphical output to include only alarm types that are compatible with the function block type includes including descriptors for only alarm types that are compatible with the function block type in an alarm type drop-down menu.
[0190] In some implementations, generating a graphical output dependent on the selection of a function block identifier includes identifying a function block identified by the function block identifier, identifying one or more process variables included in the function block, and generating the graphical output to include the one or more process variables included in the function block.
[0191] In some implementations, generating a graphical output dependent on the selection of the function block identifier includes identifying a current condition for the process automation alarm based on a current alarm configuration file stored in the database in association with the function block identifier, and generating a graphical output to reflect the identified current condition for the process automation alarm.
[0192] In some implementations, a system is provided, the system including a database, one or more network interfaces, memory storing instructions, and one or more processors. The processor is operable to execute the instructions to receive an instance of a user interface input via an alarm configuration interface, the instance collectively defining one or more conditions to be used for process automation alarms and function block identifiers of function blocks via which the conditions are to be monitored. In executing the instructions, the processor is further to generate an alarm configuration file specifying the conditions in response to receiving the instance of the user interface input and to store the alarm configuration file in the database in association with the function block identifier for the function block. In executing the instructions, the processor is further to determine, after storing the alarm configuration file in association with the function block identifier in the database, that a distributed control node (DCN) locally utilizes the function block identified by the function block identifier in alarm monitoring, and to transmit the alarm configuration file to the DCN over the process automation network using the one or more network interfaces in response to the DCN determining that the DCN utilizes the process automation function block identified by the function block identifier in alarm monitoring and storing the alarm configuration file in association with the function block identifier. Sending the retrieved alarm configuration file causes the DCN to perform alarm monitoring consistent with the retrieved alarm configuration file.
[0193] In some implementations, a method is provided, the method including receiving an alarm configuration request via a network of the process automation system, the alarm configuration request having been sent by a distributed control node (DCN) of the process automation system. The alarm configuration request includes a function block identifier of a function block based on the function block being executed by the DCN and / or assigned by the DCN for use in alarm monitoring. In response to receiving the alarm configuration request, the method further includes retrieving an alarm configuration file from an alarm database based on the alarm configuration file being stored in association with the function block identifier and the function block identifier being included in the received alarm configuration request, and transmitting the retrieved alarm configuration file to the DCN via the network of the process automation system. The step of transmitting the retrieved alarm configuration file causes the DCN to perform alarm monitoring consistent with the retrieved alarm configuration file.
[0194] These and other implementations of the techniques disclosed herein may include one or more of the following features.
[0195] In some implementations, the alarm configuration file defines alarm conditions that are conditioned on one or more outputs of the function block and / or that are conditioned on one or more inputs to the function block. In some versions of these implementations, the alarm conditions are thresholds for sensor-based inputs of one or more inputs to the function block. In some additional or alternative versions of these implementations, the alarm conditions include values that were previously manually specified via user interface inputs to the function block.
[0196] In some implementations, the alarm configuration file is specific to the function block and is not assigned to any other function block in the process automation system.
[0197] In some implementations, the function block identifier is unique to the function block and is not assigned to any other function block in the process automation system.
[0198] In some implementations, the function blocks are executed by the DCN and are included in the alarm configuration request based on being executed by the DCN.
[0199] In some implementations, function blocks are assigned for use by an alarm engine of a DCN when alarms are monitored by the DCN, and are included in alarm configuration requests based on being assigned for use by an alarm engine of a DCN when alarms are monitored by the DCN.
[0200] In some implementations, the functional blocks are executed in an additional DCN that is in communication with the DCN.
[0201] In some implementations, the alarm configuration request further includes a DCN identifier that uniquely identifies the DCN relative to all other DCNs in the process automation system. In some versions of those implementations, the method further includes, in response to receiving the alarm configuration request, storing an association of the DCN identifier to the alarm configuration file in the alarm database. In some of those versions, when the alarm configuration request is received, the alarm configuration file is stored in the alarm database in association with an alternate DCN identifier of an alternate DCN of the process automation system, and the method further includes removing the association of the alarm configuration file with the alternate DCN identifier from the alarm database. The DCN identifier is optionally a network address of the DCN.
[0202] In some implementations, at a prior time, prior to receiving the alarm configuration request, the alarm configuration file was stored locally at an alternate DCN of the process automation system that previously utilized the alarm configuration file in performing alarm monitoring for the function block. Further, at the requested time of receiving the alarm configuration request, the alternate DCN is no longer part of the process automation system or has been reconfigured to no longer perform alarm monitoring for the function block.
[0203] In some implementations, a method implemented by a hardware processor of a distributed control node (DCN) of a process automation system is provided, comprising detecting the occurrence of one or more alarm configuration conditions. The method further includes, in response to detecting the occurrence of the one or more alarm configuration conditions, generating an alarm configuration request, including incorporating function block identifiers of function blocks into the alarm configuration request based on the function blocks being executed by the DCN and / or utilized in alarm monitoring by the DCN, and transmitting the alarm configuration request incorporating the function block identifiers over a network of the process automation system. The method further includes receiving, in response to transmitting the alarm configuration request over the network, an alarm configuration file identified based on the function block identifiers, and performing alarm monitoring based on the received alarm configuration file and the function blocks.
[0204] These and other implementations of the techniques disclosed herein may include one or more of the following features.
[0205] In some implementations, detecting the occurrence of one or more alarm configuration conditions includes detecting a power-up of a DCN, detecting a newly commissioned DCN in a process automation system, and / or detecting that alarm monitoring by the DCN for the function block is not currently active.
[0206] In some implementations, the alarm configuration file defines alarm conditions that are conditioned on one or more outputs of the function block and / or that are conditioned on one or more inputs to the function block.
[0207] In some implementations, the function block identifier is unique to the function block and is not assigned to any other function block in the process automation system.
[0208] In some implementations, a process automation system is provided, the process automation system including an alarm configuration server, the alarm configuration server including one or more network interfaces communicatively coupled to a network of the process automation system, an alarm database including a plurality of function block-specific alarm configuration files and a corresponding association for each of the function block-specific alarm configuration files to a corresponding function block identifier, and one or more alarm configuration processors. The alarm configuration processor executes stored instructions to receive an alarm configuration request transmitted by a node of the process automation system over the network, the alarm configuration request including the function block identifier of the function block based on which the function block is assigned for use in alarm monitoring by the node. In executing the stored instructions, the alarm configuration processor is further responsive to receiving the alarm configuration request to retrieve a particular alarm configuration file from the alarm database based on the corresponding association for the particular alarm configuration file to the function block identifier included in the received alarm configuration request, and to transmit the retrieved alarm configuration file to the node over the network. Transmitting the retrieved alarm configuration file causes the node to perform alarm monitoring consistent with the retrieved alarm configuration file.
[0209] In some implementations, the process automation system further includes nodes, which are optionally distributed control nodes (DCNs) that execute the function blocks.
[0210] In some implementations, a method implemented by a hardware processor is provided, including receiving an alarm configuration transmission from a distributed control node (DCN) of the process automation system over a network of the process automation system. When the transmission is received, the DCN does not have any established communication sessions with an alarm viewer application of the process automation system. Further, the alarm configuration transmission indicates that the DCN is performing alarm monitoring based on one or more function blocks of the process automation system, the alarm configuration transmission including a network-addressable DCN identifier of the DCN. The method further includes, in response to receiving the alarm configuration transmission, providing the network-addressable DCN identifier to the alarm viewer application. Providing the network-addressable DCN identifier to the alarm viewer application causes the alarm viewer application to establish a persistent connection-oriented communication session with an alarm engine of the DCN over the network using the network-addressable DCN identifier and cause rendering of alarm messages sent by the alarm engine of the DCN using the persistent connection-oriented communication session.
[0211] These and other implementations of the techniques disclosed herein may include one or more of the following features.
[0212] In some implementations, persistent connection-oriented communication sessions with the DCN are established using the Transmission Control Protocol (TCP).
[0213] In some implementations, the network-addressable DCN identifier includes an Internet Protocol (IP) address, and the alarm viewer application uses the IP address when establishing a persistent connection-oriented communication session with the DCN. In some of those implementations, the network-addressable DCN identifier further includes a port, and the alarm viewer application uses the port when establishing a persistent connection-oriented communication session with an alarm engine of the DCN.
[0214] In some implementations, the alarm configuration transmission is an alarm configuration request that includes a function block identifier, and the DCN includes the function block identifier in the alarm configuration request based on an assignment of the function block by the DCN for use in alarm monitoring. In some versions of those implementations, the method further includes storing the alarm configuration file in the alarm database in association with the function block identifier and transmitting the alarm configuration file to the DCN over the network of the process automation system in response to including the function block identifier in the received alarm configuration request. In those versions, the DCN did not have the alarm configuration file prior to transmitting the alarm configuration file to the DCN.
[0215] In some implementations, the alarm configuration transmission is an alarm configuration notification that includes an alarm configuration file, and the alarm configuration notification is sent by the DCN in response to the alarm configuration file being pre-loaded on the DCN or configured via a direct connection with the DCN.
[0216] In some implementations, providing the network-addressable DCN identifier to the alarm viewer application includes sending a push notification over a network to the alarm viewer application that includes the network-addressable DCN identifier. In some of those implementations, the method further includes determining that the DCN does not have any established communication sessions with the alarm viewer application, and sending the push notification over the network to the alarm viewer application is further responsive to determining that the DCN does not have any established communication sessions with the alarm viewer application.
[0217] In some implementations, providing the network-addressable DCN identifier to the alarm viewer application includes storing an association of the network-addressable DCN identifier to one or more alarm configuration files in an alarm database, and the alarm viewer application monitors the alarm database for new network-addressable DCN identifiers.
[0218] In some implementations, a method implemented by a hardware processor is provided, comprising receiving an alarm configuration transmission over a network of a process automation system, the alarm configuration transmission being transmitted by a distributed control node (DCN) of the process automation system and including a network-addressable DCN identifier of the DCN and including a function block identifier of a function block based on which the function block is assigned for use in alarm monitoring by an alarm engine of the DCN. The method further comprises, in response to receiving the alarm configuration transmission and determining that a connection-oriented communication session between the alarm viewer and the alarm engine of the DCN is not established, establishing, by the alarm viewer over the network using the network-addressable DCN identifier, a persistent connection-oriented communication session with the alarm engine of the DCN. The method further comprises, after establishing the persistent connection-oriented communication session with the alarm engine of the DCN, causing the alarm viewer to render an alarm message in response to the alarm message being transmitted by the alarm engine of the DCN to the alarm viewer using the persistent connection-oriented communication session.
[0219] These and other implementations of the techniques disclosed herein may include one or more of the following features.
[0220] In some implementations, the network-addressable DCN identifier comprises an Internet Protocol (IP) address, which the alarm viewer application utilizes in establishing a persistent connection-oriented communication session with the DCN.
[0221] In some implementations, the network-addressable DCN identifier further includes a port of a server on the DCN that implements the alarm engine, and the alarm viewer application utilizes the port in establishing a persistent connection-oriented communication session with the alarm engine of the DCN.
[0222] In some implementations, the alarm configuration transmission is an alarm configuration request, and the method further includes storing the alarm configuration file in the alarm database in association with the function block identifier and transmitting the alarm configuration file to the DCN over a network of the process automation system in response to including the function block identifier in the received alarm configuration request. In those implementations, the DCN did not have the alarm configuration file prior to transmitting the alarm configuration file to the DCN.
[0223] In some implementations, the alarm configuration transmission is an alarm configuration notification that includes an alarm configuration file, and the alarm configuration notification is sent by the DCN in response to the alarm configuration file being pre-loaded on the DCN or configured via a direct connection with the DCN.
[0224] In some implementations, a process automation system is provided, the process automation system including: an alarm database including a plurality of function block-specific alarm configuration files and, for each of the function block-specific alarm configuration files, a corresponding association to a corresponding function block identifier; and one or more alarm configuration processors. The alarm configuration processor executes stored instructions to receive an alarm configuration request sent by a node of the process automation system over a network, the alarm configuration request including a network-addressable identifier of the node and a function block identifier of the function block. The alarm configuration request includes the function block identifier based on which the function block is assigned for use in alarm monitoring by the node. In executing the stored instructions, the alarm configuration processor is further to provide the network-addressable identifier to an alarm viewer application of the process automation system in response to receiving the alarm configuration request. Providing the network-addressable identifier to the alarm viewer application causes the alarm viewer application to establish a persistent connection-oriented communication session with an alarm engine of the node over the network using the network-addressable identifier and cause rendering of alarm messages sent by the alarm engine of the node using the persistent connection-oriented communication session.
[0225] These and other implementations of the techniques disclosed herein may include one or more of the following features.
[0226] In some implementations, the system further includes one or more alarm viewer processors that implement an alarm viewer application. In some versions of those implementations, the one or more alarm viewer processors execute stored alarm viewer instructions to determine that the network-addressable identifier was provided by the one or more alarm configuration processors and, in response to determining that the network-addressable DCN identifier was provided by the one or more alarm configuration processors, to establish a persistent connection-oriented communication session with an alarm engine of the DCN over the network using the network-addressable DCN identifier. In some of those versions, upon determining that the network-addressable DCN identifier was provided by the one or more alarm configuration processors, one or more of the alarm viewer processors will monitor an alarm database for the occurrence of any network-addressable DCN identifier with which the alarm viewer has not established any connection-oriented communication session, and will determine that the network-addressable DCN identifier was provided by the one or more alarm configuration processors in response to identifying during the monitoring the network-addressable DCN identifier as one with which the alarm viewer has not established a connection-oriented communication session. Optionally, the system further includes a node, which may optionally be a distributed control node (DCN) that executes the function block. [Explanation of symbols]
[0227] 100 Environment 106 Process Automation Network 108 Process automation systems, process automation equipment 110 Distributed Control Node (DCN) 111 Flow Transmitter (FT) Components 112 processors 113 Actuator Components 114 Function Blocks 115 Sensor Components 116 Alarm Engine 120 Alarm Configuration Service 122 Configuration Module 124 Request and / or Notification Module 125 Alarm Database 126 Push Module 130 Alarm Configuration Graphical User Interface (GUI) System 132 Authenticator 134 Function Block Resolver 136 Parameter Resolver 138 GUI module, GUI engine 140 Alarm Viewer 150 Bulk Configuration Files 460 GUI 461 Function Block Discovery Entry Field 462 selectable options 463 selectable options 464 selectable options 465 Alarm Type Selectable GUI Element 466 Variable Selectable GUI Elements 467 Entry Field 468 Entry Field 469 Confirmation Interface Elements 560 GUI 561 Function Block Search Entry Field, Graphical Interface Element 562 selectable options 563 selectable options 564 selectable options 565 Selectable GUI Elements 566 Alarm Selectable GUI Element 567 GUI elements, entry fields 568 Entry Field 569 Confirmation Interface Elements 1310 Computing Devices 1312 Bus Subsystem 1314 processor 1316 Network Interface Subsystem 1320 User Interface Output Device 1322 User Interface Input Devices 1324 Memory Subsystem 1325 Memory Subsystem 1326 File Storage Subsystem 1330 Random Access Memory (RAM) 1332 Read-Only Memory (ROM)
Claims
1. receiving one or more instances of user interface input via an alarm configuration interface, the one or more instances comprising: One or more conditions to be used for the process automation alarm, and collectively defining function block identifiers for function blocks of a process automation system through which the condition is to be monitored; In response to receiving said instance of user interface input, generating an alarm configuration file specifying said conditions; and storing the alarm configuration file in association with the function block identifier for the function block in a database; after storing the alarm configuration file in association with the function block identifier in the database; determining that a distributed control node (DCN) of the process automation system locally utilizes the function block identified by the function block identifier when monitoring alarms; retrieving the alarm configuration file from the database based on the alarm configuration file being stored in association with the function block identifier; and transmitting the retrieved alarm configuration file to the DCN over a network of the process automation system in response to a determination that the DCN will utilize the process automation function block identified by the function block identifier in alarm monitoring; the step of transmitting the retrieved alarm configuration file causes the DCN to perform alarm monitoring consistent with the retrieved alarm configuration file; method.
2. The step of determining that the DCN will locally utilize the function block when monitoring an alarm comprises: receiving an alarm configuration request sent by the DCN via the network of the process automation system; determining, in response to the alarm configuration request including the function block identifier, that the DCN utilize the function block locally in alarm monitoring; the steps of retrieving the alarm configuration file from the database and transmitting the retrieved alarm configuration file to the DCN are responsive to receiving the alarm configuration request. The method of claim 1.
3. the alarm configuration request further includes a DCN identifier that uniquely identifies the DCN with respect to all other DCNs in the process automation system; in response to receiving the alarm configuration request, the alarm configuration request including the function block identifier and the DCN identifier; storing the DCN identifier in association with the function block identifier in the database. The method of claim 2 further comprising:
4. receiving one or more additional instances of user interface input via the alarm configuration interface, the one or more additional instances comprising: one or more alternative conditions to be used for the process automation alarm; and collectively defining the function block identifiers; in response to receiving the additional instance of user interface input; generating an alternate alarm configuration file specifying the alternate conditions; storing the alternate alarm configuration file in association with the function block identifier in the database; and removing the association of the alarm configuration file with the function block identifier from the database; after storing the alternate alarm configuration file in the database in association with the function block identifier, and based on the database storing the DCN identifier in association with the function block identifier and storing the alternate alarm configuration file in association with the function block identifier, transmitting the alternate alarm configuration file to the DCN over the network using the DCN identifier; and transmitting the alternative alarm configuration file causes the DCN to perform alarm monitoring consistent with the alternative alarm configuration file instead of performing alarm monitoring consistent with the alarm configuration file. The method of claim 3.
5. The method of claim 4 , wherein transmitting the alternate alarm configuration file comprises unsolicitedly transmitting the retrieved configuration file to the DCN using the DCN identifier.
6. receiving, via the alarm configuration interface, the instance of user interface input that collectively defines the one or more conditions and the function block identifier; receiving an initial one or more of said instances of user interface input that defines said function block identifier; receiving one or more subsequent ones of the instances of user interface input that define the condition to be used for the process automation alarm. The method of claim 1.
7. identifying the function block identifier based on the initial one of the instances of user interface input; generating a graphical output dependent on said identification of said function block identifiers; and causing the graphical output to be rendered via the alarm configuration interface; the subsequent ones of the instances of user interface input are received via interaction with the graphical output dependent on the identification of the function block identifier. The method of claim 6.
8. generating a graphical output dependent on the identification of the function block identifiers, generating the graphical output in response to a function block type specified by the function block identifier. The method of claim 7.
9. generating a graphical output dependent on the identification of the function block identifiers, identifying a current condition for the process automation alarm based on a current alarm configuration file stored in the database in association with the function block identifier; generating the graphical output to reflect the identified current condition for the process automation alarm. The method of claim 7.
10. The step of determining that the DCN will locally utilize the function block when monitoring an alarm comprises: determining that the DCN will locally utilize the function block when monitoring alarms based on a pre-stored association of the DCN to the function block; The method of claim 1.
11. transmitting the retrieved alarm configuration file to the DCN in response to the DCN determining that the process automation function block is to be utilized, unilaterally transmitting the retrieved configuration file to the DCN. The method of claim 10.
12. transmitting the retrieved alarm configuration file to the DCN in response to the DCN determining that the process automation function block is to be utilized, sending an initial communication to the DCN indicating availability of an updated alarm configuration file; receiving an alarm configuration request from the DCN after the initial communication from the DCN; transmitting the retrieved alarm configuration file to the DCN in response to receiving the alarm configuration request from the DCN. The method of claim 1.
13. The method of claim 1 , wherein the function block identifier is unique to the function block and is not assigned to any other function block in the process automation system.
14. authenticating a user providing the one or more instances of user interface input; storing the alarm configuration file in the database in association with the function block identifier is further responsive to authentication of the user. The method of claim 1.
15. receiving one or more initial instances of user interface input via an alarm configuration interface; selecting a function block identifier for a function block from a plurality of function block identifiers for a process automation system based on the initial instance of user interface input; generating a graphical output dependent on said selection of said function block identifiers; causing the graphical output to be rendered via the alarm configuration interface; receiving one or more subsequent instances of user interface input via interaction with the graphical output dependent on an identification of the function block identifier; determining one or more conditions to be used for a process automation alarm based on the subsequent instance of user interface input; In response to determining the condition, storing an alarm configuration file specifying the conditions and an association of the alarm configuration file with the function block identifier in a database; and transmitting the alarm configuration file to a distributed control node (DCN) over a network of the process automation system in response to a determination that the DCN will utilize the function block identified by the function block identifier in alarm monitoring; The step of transmitting the retrieved alarm configuration file causes the DCN to perform alarm monitoring consistent with the alarm configuration file. method.
16. generating the graphical output dependent on the selection of the function block identifiers; generating the graphical output in response to a function block type specified by the function block identifier.
16. The method of claim 15.
17. The step of generating in accordance with the function block type designated by the function block identifier includes: generating the graphical output to include only alarm types that are compatible with the function block type.
17. The method of claim 16.
18. 18. The method of claim 17, wherein generating the graphical output to include only alarm types compatible with the function block type comprises including in an alarm type drop-down menu descriptors for only the alarm types compatible with the function block type.
19. generating the graphical output dependent on the selection of the function block identifiers, identifying the function block identified by the function block identifier; identifying one or more process variables included in the function block; generating the graphical output to include the one or more process variables contained in the function blocks.
16. The method of claim 15.
20. generating the graphical output dependent on the selection of the function block identifiers; identifying a current condition for the process automation alarm based on a current alarm configuration file stored in the database in association with the function block identifier; generating the graphical output to reflect the identified current condition for the process automation alarm.
16. The method of claim 15.
21. A database, one or more network interfaces; a memory for storing instructions; one or more processors, wherein the one or more processors: receiving an instance of a user interface input via an alarm configuration interface, the instance comprising: One or more conditions to be used for the process automation alarm, and receiving, collectively specifying function block identifiers of function blocks through which the condition is to be monitored; In response to receiving said instance of user interface input, generating an alarm configuration file specifying said conditions; and storing the alarm configuration file in the database in association with the function block identifier for the function block; after storing the alarm configuration file in association with the function block identifier in the database; determining, when monitoring alarms, that a distributed control node (DCN) locally utilizes the function block identified by the function block identifier; and determining that the DCN utilizes the process automation function block identified by the function block identifier in alarm monitoring; and In response to the alarm configuration file being stored in association with the function block identifier, and transmitting the alarm configuration file to the DCN via a process automation network using the one or more network interfaces. Operable to execute the instructions; transmitting the retrieved alarm configuration file causes the DCN to perform alarm monitoring consistent with the retrieved alarm configuration file; system.
22. receiving an alarm configuration request sent by a distributed control node (DCN) of a process automation system over a network of the process automation system, the alarm configuration request includes a function block identifier for a function block based on which the function block is to be executed by the DCN and / or assigned for use in alarm monitoring by the DCN; In response to receiving the alarm configuration request, retrieving the alarm configuration file from an alarm database based on the alarm configuration file being stored in association with the function block identifier and the inclusion of the function block identifier in the received alarm configuration request; and transmitting the retrieved alarm configuration file to the DCN via the network of the process automation system; the step of transmitting the retrieved alarm configuration file causes the DCN to perform alarm monitoring consistent with the retrieved alarm configuration file; method.
23. 23. The method of claim 22, wherein the alarm configuration file defines alarm conditions that are conditioned on one or more outputs of the function block and / or that are conditioned on one or more inputs to the function block.
24. 24. The method of claim 23, wherein the alarm condition is a threshold for a sensor-based input of the one or more inputs to the function block.
25. 24. The method of claim 23, wherein the alarm condition comprises a value previously manually specified via a user interface input for the function block.
26. The method of claim 22 , wherein the alarm configuration file is specific to the function block and is not assigned to any other function block of the process automation system.
27. The method of claim 22 , wherein the function block identifier is unique to the function block and is not assigned to any other function block in the process automation system.
28. 23. The method of claim 22, wherein the function blocks are executed by the DCN and included in the alarm configuration request based on being executed by the DCN.
29. 23. The method of claim 22, wherein the function blocks are allocated for use by an alarm engine of the DCN when alarms are monitored by the DCN, and are included in the alarm configuration request based on being allocated for use by the alarm engine of the DCN when alarms are monitored by the DCN.
30. The method of claim 22 , wherein the functional blocks are executed in an additional DCN in communication with the DCN.
31. 23. The method of claim 22, wherein the alarm configuration request further includes a DCN identifier that uniquely identifies the DCN relative to all other DCNs in the process automation system.
32. In response to receiving the alarm configuration request, storing an association of said DCN identifier to said alarm configuration file in said alarm database; 32. The method of claim 31 , further comprising:
33. When the alarm configuration request is received, the alarm configuration file is stored in the alarm database in association with an alternative DCN identifier of an alternative DCN of the process automation system; removing the association of the alarm configuration file with the alternative DCN identifier from the alarm database.
33. The method of claim 32, further comprising:
34. The method of claim 33, wherein the DCN identifier is a network address of the DCN.
35. the alarm configuration file is stored locally at an alternate DCN of the process automation system that previously utilized the alarm configuration file in performing alarm monitoring for the function block at a prior time prior to receiving the alarm configuration request; At the requested time of receiving the alarm configuration request, the alternate DCN is no longer part of the process automation system or has been reconfigured to no longer perform alarm monitoring for the function block.
23. The method of claim 22.
36. 1. A method implemented by one or more processors of a distributed control node (DCN) of a process automation system, comprising: detecting the occurrence of one or more alarm configuration conditions; in response to detecting the occurrence of the one or more alarm configuration conditions; generating an alarm configuration request, the alarm configuration request including incorporating function block identifiers of function blocks into the alarm configuration request based on the function blocks being executed by the DCN and / or utilized in alarm monitoring by the DCN; transmitting the alarm configuration request incorporating the function block identifier over a network of the process automation system; receiving, over the network in response to transmitting the alarm configuration request, an alarm configuration file identified based on the function block identifier; and performing alarm monitoring based on the received alarm configuration file and the function blocks; A method for providing the above.
37. Detecting the occurrence of one or more alarm configuration conditions includes: detecting power-up of the DCN; detecting in the process automation system that the DCN is newly delegated; and / or detecting that alarm monitoring by the DCN for the function block is not currently active.
37. The method of claim 36.
38. 37. The method of claim 36, wherein the alarm configuration file defines alarm conditions that are conditioned on one or more outputs of the function block and / or that are conditioned on one or more inputs to the function block.
39. 37. The method of claim 36, wherein the function block identifier is unique to the function block and is not assigned to any other function block in the process automation system.
40. 1. A process automation system comprising: an alarm configuration server, the alarm configuration server comprising: one or more network interfaces communicatively coupled to a network of the process automation system; an alarm database including a plurality of function block specific alarm configuration files and, for each of the function block specific alarm configuration files, a corresponding association to a corresponding function block identifier; and one or more alarm configuration processors, said one or more alarm configuration processors comprising: receiving, via the network, an alarm configuration request transmitted by a node of the process automation system; receiving the alarm configuration request, the alarm configuration request including a function block identifier for a function block based on which the function block is assigned for use in alarm monitoring by the node; In response to receiving the alarm configuration request, retrieving a particular alarm configuration file from the alarm database based on the corresponding association for the particular alarm configuration file to the function block identifier included in the received alarm configuration request; and and transmitting the retrieved alarm configuration file to the node over the network. Executes the stored instructions, transmitting the retrieved alarm configuration file causes the node to perform alarm monitoring consistent with the retrieved alarm configuration file; Process automation systems.
41. 41. The process automation system of claim 40, further comprising the node, wherein the node is a distributed control node (DCN) that executes the function block.
42. 1. A method implemented by one or more processors, comprising: receiving an alarm configuration transmission from a distributed control node (DCN) of the process automation system over a network of the process automation system; when the alarm configuration transmission is received, the DCN does not have any established communication sessions with an alarm viewer application of the process automation system; the alarm configuration transmission indicating that the DCN is performing alarm monitoring based on one or more function blocks of the process automation system, the alarm configuration transmission including a network addressable DCN identifier of the DCN; in response to receiving the alarm configuration transmission; providing the network addressable DCN identifier to the alarm viewer application, The alarm viewer application establishing a persistent connection-oriented communication session with an alarm engine of the DCN over the network using the network-addressable DCN identifier; causing the rendering of alarm messages sent by the alarm engine of the DCN using the persistent connection-oriented communication session; A method for providing the above.
43. 43. The method of claim 42, wherein the persistent connection-oriented communication session with the DCN is established using Transmission Control Protocol (TCP).
44. 43. The method of claim 42, wherein the network-addressable DCN identifier comprises an Internet Protocol (IP) address, and the alarm viewer application utilizes the IP address in establishing the persistent connection-oriented communication session with the DCN.
45. 45. The method of claim 44, wherein the network-addressable DCN identifier further includes a port, and wherein the alarm viewer application utilizes the port in establishing the persistent connection-oriented communication session with the alarm engine of the DCN.
46. 43. The method of claim 42, wherein the alarm configuration transmission is an alarm configuration request that includes a function block identifier, and the DCN includes the function block identifier in the alarm configuration request based on an assignment of the function block by the DCN for use in alarm monitoring.
47. storing an alarm configuration file in an alarm database in association with the function block identifier, and transmitting the alarm configuration file to the DCN via the network of the process automation system in response to the function block identifier being included in the received alarm configuration request; the DCN did not have the alarm configuration file prior to sending the alarm configuration file to the DCN; 47. The method of claim 46.
48. 43. The method of claim 42, wherein the alarm configuration transmission is an alarm configuration notification that includes an alarm configuration file, the alarm configuration notification being sent by the DCN in response to the alarm configuration file being pre-loaded on the DCN or configured via a direct connection with the DCN.
49. 43. The method of claim 42, wherein providing the network-addressable DCN identifier to the alarm viewer application comprises sending a push notification over the network to the alarm viewer application that includes the network-addressable DCN identifier.
50. determining that the DCN does not have any established communication sessions with the alarm viewer application; the step of sending the push notification to the alarm viewer application over the network is further responsive to determining that the DCN does not have any established communication sessions with the alarm viewer application.
50. The method of claim 49.
51. 50. The method of claim 49, wherein providing the network-addressable DCN identifier to the alarm viewer application comprises storing an association of the network-addressable DCN identifier to one or more alarm configuration files in an alarm database, and wherein the alarm viewer application monitors the alarm database for new network-addressable DCN identifiers.
52. 1. A method implemented by one or more processors, comprising: receiving an alarm configuration transmission over a network of the process automation system, the alarm configuration transmission comprising: transmitted by a distributed control node (DCN) of the process automation system; a network addressable DCN identifier for said DCN; including function block identifiers for the function blocks based on which the function blocks are assigned for use in alarm monitoring by an alarm engine of the DCN; in response to receiving the alarm configuration transmission and determining that a connection-oriented communication session between an alarm viewer and an alarm engine of the DCN is not established; establishing, by the alarm viewer, a persistent connection-oriented communication session with the alarm engine of the DCN over the network using the network-addressable DCN identifier; after establishing the persistent connection-oriented communication session with the alarm engine of the DCN; causing an alarm message to be rendered by the alarm viewer in response to the alarm message being transmitted to the alarm viewer by the alarm engine of the DCN using the persistent connection-oriented communication session; A method for providing the above.
53. 53. The method of claim 52, wherein the network-addressable DCN identifier comprises an Internet Protocol (IP) address, and the alarm viewer application utilizes the IP address in establishing the persistent connection-oriented communication session with the DCN.
54. 54. The method of claim 53, wherein the network-addressable DCN identifier further includes a port of a server on the DCN that implements the alarm engine, and wherein the alarm viewer application utilizes the port in establishing the persistent connection-oriented communication session with the alarm engine of the DCN.
55. The alarm configuration transmission is an alarm configuration request, and the method further comprises: an alarm configuration file is stored in an alarm database in association with the function block identifier, and in response to including the function block identifier in the received alarm configuration request, transmitting the alarm configuration file to the DCN via the network of the process automation system; the DCN did not have the alarm configuration file before sending the alarm configuration file to the DCN; 53. The method of claim 52.
56. 53. The method of claim 52, wherein the alarm configuration transmission is an alarm configuration notification that includes an alarm configuration file, the alarm configuration notification being sent by the DCN in response to the alarm configuration file being pre-loaded on the DCN or configured via a direct connection with the DCN.
57. 1. A process automation system comprising: an alarm database including a plurality of function block specific alarm configuration files and, for each of the function block specific alarm configuration files, a corresponding association to a corresponding function block identifier; one or more alarm configuration processors, wherein the one or more alarm configuration processors: receiving, via a network, an alarm configuration request transmitted by a node of the process automation system, the alarm configuration request comprising: a network addressable identifier of the node; and receiving a function block identifier based on which the function block is assigned for use in alarm monitoring by the node; In response to receiving the alarm configuration request, providing the network addressable identifier to an alarm viewer application of the process automation system; The alarm viewer application establishing a persistent connection-oriented communication session with an alarm engine of said node over said network using said network addressable identifier; and causing and providing for the rendering of alarm messages sent by the alarm engine of the node using the persistent connection-oriented communication session. Execute the stored instructions, Process automation systems.
58. 58. The process automation system of claim 57, further comprising one or more alarm viewer processors that implement the alarm viewer application.
59. the one or more alarm viewer processors: determining that the network addressable identifier was provided by the one or more alarm configuration processors; in response to determining that the network addressable DCN identifier has been provided by the one or more alarm configuration processors; to establish the persistent connection-oriented communication session with the alarm engine of the DCN over the network using the network-addressable DCN identifier; Executes stored alarm viewer commands, 59. The process automation system of claim 58.
60. Upon determining that the network addressable DCN identifier has been provided by the one or more alarm configuration processors, one or more of the alarm viewer processors: wherein said alarm viewer monitors an alarm database for the occurrence of any network addressable DCN identifier with which no connection-oriented communications session is established; determining that the network addressable DCN identifier was provided by the one or more alarm configuration processors in response to the alarm viewer identifying the network addressable DCN identifier during said monitoring as one with which the alarm viewer does not have a connection-oriented communication session established.
60. The process automation system of claim 59.
61. 61. The process automation system of claim 60, further comprising the node, wherein the node is a distributed control node (DCN) that executes the function block.