Process automation alerts for distributed control nodes
By assigning unique identifiers to the functional blocks of the process automation system and using the alarm configuration GUI, the difficulty of alarm configuration and monitoring in distributed and heterogeneous systems is solved, and robust alarm deployment and monitoring is achieved, ensuring the security and reliability of the system.
Patent Information
- Application Number
- CN202380089552.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-12-28
- Filing Date
- 2023-12-28
- Publication Date
- 2025-08-12
AI Technical Summary
In distributed and heterogeneous process automation systems, there are difficulties in generating, updating and deploying process automation alerts, which are prone to errors, resulting in inaccurate or untimely monitoring, which may lead to dangerous conditions or negative consequences.
By assigning a unique function block identifier to each function block and using the alarm configuration GUI to generate and deploy an alarm configuration file, avoiding direct connection to the DCN, and achieving effective alarm monitoring across DCN.
It realizes robust alarm configuration and monitoring in distributed and heterogeneous systems, reduces errors, ensures the effectiveness and timely response of alarms, and avoids potential process automation system risks.
Smart Images

Figure CN120476353A_ABST
Abstract
Description
Background Art
[0001] Alarms are used in process automation systems to detect potential anomalies and, in response to the detection of a potential anomaly, cause an action to be performed. The potential anomaly can be an anomaly of the process automation system and / or an anomaly of the process automation process in which the process automation system is deployed. The action of the alarm can include, for example, causing a corresponding notification to be presented at an interface monitored by an operator and / or automatically causing a remediation to be performed (e.g., automatically stopping or throttling an automated process or sub-process). As an example, an alarm can be configured to monitor a sensor reading from a sensor of the process automation system and cause a corresponding notification to be presented if the sensor reading is above a high value (and / or a high-high value) and / or below a low value (and / or a low-low value).
[0002] In some process automation systems, the hardware and / or software of the process automation control nodes of the process automation system can all be supplied and / or managed by a single entity (e.g., a single company). This enables the single entity to utilize its own proprietary technology to create and manage alarms associated with the corresponding process automation control nodes.
[0003] However, other process automation systems include heterogeneous hardware and / or heterogeneous software that is supplied and / or managed by multiple entities and / or deployed in a distributed manner. For example, a process automation system can include some process automation control nodes supplied and / or managed by a first entity, other process automation control nodes supplied and / or managed by a second entity, and so on. Each process automation control node can have different hardware and / or software specifications, including different functional blocks that define the controls performed by the process automation control node.
[0004] A process automation control node can include a distributed control node (DCN) that includes hardware (e.g., a processor, memory, a network interface, 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, the software can be included in a memory of the DCN and can be executed by a processor of the DCN. The DCN software can, for example, utilize data from input ports of the DCN and / or data from other DCNs during execution, and / or can generate output for provision on output ports and / or network interfaces (e.g., for transmission to one or more endpoints via a process automation network of a process automation system). Summary of the Invention
[0005] Generating, updating, and / or deploying process automation alarms in process automation systems that include distributed and / or heterogeneous hardware and / or software presents various technical challenges. For example, process automation alarms may require the alarm engine to monitor process variables of specific function blocks, such as input variables, output variables, and / or internal variables of the specific function blocks. The DCN that generates and / or provides 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 access and utilize appropriate alarm profiles when monitoring for the occurrence of corresponding alarm conditions and initiating corresponding actions in response. Alarm profiles can define conditions for corresponding process variables that, when met, cause the alarm engine to initiate corresponding actions. Furthermore, when the action initiated in response to the satisfaction of an alarm condition includes initiating the presentation of a corresponding output (e.g., visual and / or auditory presentation) via an alarm viewer, it may be necessary or desirable to establish a persistent, connection-oriented communication session between the alarm engine and the alarm viewer. However, due to the distributed and / or heterogeneous nature of process automation systems, implementing one or more of these requirements can be cumbersome and / or error-prone.
[0006] As an example, assume that an alarm profile is stored locally on a particular DCN and is utilized by the DCN's local alarm engine when monitoring process variables of a particular function block on the DCN (e.g., monitoring the values of those variables during execution of the particular function block). Furthermore, assume that the alarm profile is stored and utilized locally by the DCN, either by being preloaded on the DCN (prior to commissioning the DCN in a process automation system) or by being manually configured during commissioning via a human-machine interface (HMI) coupled to the DCN. If the DCN is replaced by a new DCN executing the same function block, it may be necessary to manually preload the alarm profile on the new DCN or manually configure the new DCN via the HMI. Similarly, if a particular function block and / or alarm engine is removed from the DCN and newly implemented on a replacement DCN, it may be necessary to manually reassign the alarm profile to the replacement DCN. Besides being cumbersome and requiring computational resources, errors in manual reassignment can also result in corresponding alarms being ineffective or inaccurate (e.g., due to incorrectly defined conditions). This results in no monitoring for the occurrence of an alarm condition, and no corresponding action being taken - which can lead to dangerous conditions or other negative consequences in a process automation setting.
[0007] As another example, when initially commissioning a DCN for a process automation system, hundreds or thousands of alarm profiles may exist, which need to be generated and / or deployed at appropriate DCNs for effective alarm monitoring. However, due to the distributed and / or heterogeneous nature of process automation systems, determining which DCN is the appropriate DCN for a corresponding alarm profile to ensure that the alarm profiles for all desired alarms are actually deployed and activated, and / or updating the alarms (e.g., by generating and deploying new alarm profiles), can be cumbersome and / or error-prone. For example, it may not be readily apparent which DCN's alarm engine should be tasked with utilizing a corresponding alarm profile, among the hundreds or thousands of DCNs. Manually locating the appropriate DCN can be cumbersome and / or error-prone, potentially resulting in the corresponding alarm profile being deployed to the wrong DCN and the corresponding alarm monitoring being ineffective. As yet another example, after the initial commissioning of a process automation system, it may be desirable to update one or more alarm profiles to achieve more effective alarm monitoring. However, determining which DCN utilizes the alarm profile to be updated can also be cumbersome and / or error-prone. For example, updating an alarm profile at a particular DCN can require physically locating the particular DCN and utilizing an HMI directly coupled to the DCN to update the alarm profile.
[0008] Embodiments 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 the alarm can be an alias for the function block corresponding to the alarm and can be unique relative to the aliases of all other function blocks in the process automation system. Assigning the alarm to the function block identifier can be the assignment of an alarm profile to the function block identifier. Furthermore, the assignment of the alarm to the function block identifier can be any assignment, such as a network addressable identifier of the DCN (e.g., an IP address or MAC address of the DCN), in addition to (or in lieu of) assigning the alarm to a corresponding DCN identifier.
[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 the programmer of the given function block when creating the given function block, or may be automatically generated, and may be created or generated so that it is unique relative to all other function block identifiers of all other function blocks in the process automation system. In some embodiments, a portion of the function block identifier may indicate the type of the function block and may conform to a standardized type designation scheme. For example, "PV" in "FT101.PV" may indicate that the function block has a "process variable" type. Furthermore, 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 embodiments, at least a portion of the function block identifier may not conform to any standardized designation scheme, but may be semantically meaningful and / or conform to a non-standardized designation scheme by the programmer and / or one or more entities implementing the process automation system. "FT101" in "FT101.PV" is an example of such a portion of a function block identifier. For example, in a process automation system, there may be multiple function block identifiers ending in ".PV". However, only one of these will include "FT101" before the ".PV", and, furthermore, all of these will include unique characters relative to each other before the ".PV".
[0010] An alarm profile assigned to a given function block can be generated (e.g., by an engineer or other human operator) and can specify parameters for an alarm, such as conditions for a given function block's process variable, and corresponding actions that should occur if the conditions are met. For example, an alarm profile "PV" for "FT101.PV" can specify conditions for the process variable "FT101.PV." If the corresponding conditions are met, a descriptor or other notification can be indicated that should be presented (e.g., in an alarm viewer). For example, the conditions can include the process variable exceeding a threshold rate of change within a specified time, or can include the process variable being outside of a range of high-high, high, low, and / or low-low setpoint values.
[0011] Embodiments further address the above and / or other technical challenges by providing an alarm configuration graphical user interface (GUI) system that implements an alarm configuration GUI. A user (e.g., an engineer or other human operator) can interact with the alarm configuration GUI to define alarms corresponding to corresponding function block identifiers of a process automation system. For example, the user can interact with the alarm configuration GUI to select a function block identifier and define parameters for an alarm profile. 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 if the corresponding conditions are met; severity levels for the conditions; and / or other parameters. Parameters defined through the alarm configuration GUI can be used to generate a corresponding alarm profile. Furthermore, the function block identifier defined through the alarm configuration GUI can be used to store an association between the alarm profile and the function block identifier. Furthermore, in response to determining that a corresponding DCN locally utilizes a function block identified by the function block identifier stored in association with the alarm profile for alarm monitoring, the generated alarm profile can be transmitted to the corresponding DCN. Upon receiving the generated alarm profile, the DCN can implement local alarm monitoring based on the alarm profile and utilizing the function block.
[0012] The alarm configuration GUI can be interacted with via one or more client devices (e.g., personal computers, laptops, smartphones). Interaction can occur via an application on the client device, such as a dedicated application (e.g., dedicated for alarm configuration) or a general-purpose application capable of presenting 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 can at least selectively communicate with a process automation network, and interaction with the alarm configuration GUI via the client device can enable reading and / or writing of input to an alarm database coupled to the process automation network, as described herein. Furthermore, as described herein, the alarm database can be used to deploy process automation alarms to various DCNs of the process automation system. Thus, the alarm configuration GUI enables a user to specify a function block identifier for an alarm and the conditions of the alarm, and causes a corresponding alarm configuration file to be generated and deployed to the corresponding DCN, which utilizes the function block identified by the function block identifier for alarm monitoring. Notably, this can be accomplished without requiring a direct (e.g., wired) connection between the corresponding DCN and the HMI, and without requiring the user to ascertain the location and / or other characteristics of the corresponding DCN utilizing the function block. In these and other ways, utilization of the alarm configuration GUI enables alarms to be efficiently generated and deployed across multiple DCNs of an automation system.
[0013] By interacting 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 embodiments, the alarm configuration GUI requires successful authentication before enabling the user to at least create a new alarm and / or modify an existing alarm. Various single or multi-factor authentication techniques can be utilized, such as username and password authentication, biometric authentication (e.g., fingerprint, voice, face), and / or location-based authentication (e.g., which requires the client device to be connected to a process automation network).
[0014] The alarm configuration GUI can utilize various techniques to guide the interacting user to efficiently create new alarms and / or modify existing alarms. For example, the alarm configuration GUI can efficiently guide the user to a function block by enabling searching for a function block identifier via the GUI, enabling browsing of all function block identifiers via the GUI, and / or enabling searching 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 recently changed subset. The unconfigured subset can include function block identifiers for function blocks that do not have any (or some) alarms and / or contain inactive alarms. The recently changed subset can include function block identifiers for function blocks that have had their alarms recently updated, where recency can be predefined or defined 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 effectively guide the 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 type can be used to select alarm types compatible with the function block type, and only those alarm types are presented in the canonical alarm configuration GUI. As a specific example, "PV" in "FT101.PV" can indicate that the function block has a "process variable" type. As a result of selecting "FT101.PV" and "PV" to indicate a "process variable" type, only alarm types compatible with function blocks of the "process variable" type are presented in the canonical alarm configuration GUI (e.g., only error, level, rate of change, and deviation alarm types). As another specific example, "DOUT" in "AB303.DOUT" can indicate that the function block has a "digital output" type. As a result of selecting "AB303.DOUT" and "DOUT" to indicate a "digital output" type, only alarm types compatible with function blocks of the "digital output" type are presented in the canonical alarm configuration GUI (e.g., only error and discrete state alarm types).
[0016] Furthermore, for example, process variables of function blocks can be identified and presented in the alarm configuration GUI, enabling efficient specification of process variables for which alarm conditions apply. As another example, input graphical interface elements can be presented in the alarm configuration GUI, enabling efficient specification of conditions associated with a selected alarm type. Input graphical interface elements can include, for example, free-form input fields (which can optionally be restricted to a range of values), drop-down selection interfaces, and / or other input graphical interface elements. As another example, existing alarms that have been specified via alarm profiles in the alarm database can be presented in the alarm configuration GUI, enabling efficient review of existing alarms and, further, efficient modification of existing alarms (thereby creating new alarms to replace existing alarms).
[0017] After specifying the conditions and / or other parameters of an alarm via the alarm configuration GUI, a corresponding alarm profile can be generated. For example, the alarm profile can be generated in response to an interactive user selecting a confirmation interface element in the alarm configuration GUI after specifying the parameters of the alarm. The alarm profile can also be stored in the alarm database in association with the corresponding function block identifier of the function block and, if known, the corresponding DCN of the function block utilized during alarm monitoring. As described herein, storing the alarm profile in association with the corresponding function block identifier can achieve various technical benefits.
[0018] The generated alarm profile can also be transmitted via the process automation network to a given DCN that utilizes the function block (corresponding to the alarm profile) during alarm monitoring. Transmitting the generated alarm profile to the given DCN enables the given DCN to implement local alarm monitoring based on the alarm profile and the function block. In some embodiments or scenarios, the network-addressable DCN identifier of the given DCN may be known when the alarm profile is generated. For example, the given DCN may have previously sent a transmission including the network-addressable DCN identifier and an instruction that the DCN perform alarm monitoring based on the function block (e.g., including the function block identifier of the function block). In some versions of those embodiments or scenarios, the alarm profile can be proactively and unilaterally "pushed" to the given DCN via a transmission addressed to the network-addressable DCN identifier of the given DCN. In some other versions of those embodiments or scenarios, an update request can be unilaterally pushed to the given DCN via a transmission addressed to the network-addressable DCN identifier. The update request does not contain the actual alarm profile, but rather indicates to the given DCN that an updated alarm profile is available. Thereafter, the given DCN can 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 transmit the alarm configuration request described herein and can receive the alarm configuration file in response.
[0019] In some other embodiments or situations, the network-addressable DCN identifier of a given DCN is unknown (e.g., not stored in association with a functional block identifier in an alarm database) when the alarm profile is generated. For example, the given DCN may not yet be commissioned when the alarm profile is generated, or the DCN that will implement alarm monitoring based on the functional block may not yet be determined when the alarm profile is generated. In some versions of those embodiments, the alarm profile will not be provided to the given DCN until an alarm configuration request is transmitted by the given DCN. As described herein, the alarm configuration request can include the functional block identifier, thereby enabling identification of the alarm profile and its transmission to the given DCN in response to the alarm configuration request (based on its stored association with the functional block identifier in the alarm database).
[0020] As referenced in the preceding paragraphs, embodiments enable a process automation node, such as a DCN, to transmit an alarm configuration request including a function block identifier via a process automation network. The DCN can include in the alarm configuration request a function block identifier based on a corresponding function block executed by the DCN and / or assigned for alarm monitoring by the DCN. For example, the DCN can include the function block identifier in the alarm configuration request in response to the DCN executing the corresponding function block. As another example, the DCN can include the function block identifier in the alarm configuration request in response to a corresponding function block 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 DCN's alarm engine can be a function block also executed by the DCN, or it can be a function block executed by an additional DCN but still monitored by the DCN via communication between the DCN and the additional DCN. Communication between the DCN and the additional DCN can be via the process automation network and / or via another channel.
[0021] An alarm configuration service can be implemented on one or more servers coupled to a process automation network and can manage an alarm database in conjunction with and / or in collaboration with an alarm configuration GUI system that implements an alarm configuration GUI. The alarm configuration service can transmit an addressable DCN identifier to an alarm viewer according to the techniques described herein. Additionally or alternatively, the alarm configuration service can transmit alarm configuration files to the appropriate DCN according to the techniques described herein. For example, the alarm configuration service can receive an alarm configuration request from a DCN and use the requested function block identifier to search the alarm database to retrieve an alarm configuration file assigned to the function block identifier in the alarm database. In response to the alarm configuration request, the alarm configuration service can transmit the retrieved alarm configuration file to the DCN for implementation by the DCN's alarm engine. In these and other embodiments, a newly commissioned DCN (e.g., commissioned at the initial commissioning of a process automation system or commissioned to replace a removed DCN) can obtain appropriate alarm configuration files to implement functions that utilize only the function block identifiers of function blocks that are executed by the newly commissioned DCN (e.g., those that are executed by the newly commissioned DCN and / or assigned for alarm monitoring by the newly commissioned DCN). Furthermore, the alarm configuration service can optionally retrieve and provide alarm configuration files without reference to the addressable DCN identifier of the specific DCN on which a given function block is to be implemented. Additionally or alternatively, a DCN with updates (e.g., removals or additions) to the function blocks it utilizes can obtain appropriate alarm configuration files to implement function block identifiers that utilize only the function blocks implemented by that DCN. Additionally or alternatively, the alarm configuration service can utilize the addressable DCN identifier of a specific DCN to enable an alarm viewer to establish a connection-oriented communication session with the specific DCN (e.g., by storing the addressable DCN identifier in an alarm database and / or including it in a push notification transmitted to the alarm viewer).
[0022] When deploying alarms according to embodiments disclosed herein, utilizing the assignment of alarms to function block identifiers can enable robust alarm deployment in distributed and / or heterogeneous process automation system settings and / or mitigate errors in such settings. For example, utilizing the function block identifiers, instead of or in addition to the DCN identifiers, when determining which alarm configuration file to provide in response to an alarm configuration request can mitigate issues that may arise in situations where an old DCN is replaced by a new DCN (having a new DCN identifier), an alarm engine monitoring function is switched from a given DCN (having a given DCN identifier) to an alternate DCN (having an alternate DCN identifier), etc.
[0023] In various embodiments, an alarm configuration request can 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 can be issued by the DCN in response to the DCN determining that it is newly commissioned (e.g., newly added to the process automation system), determining that it has been powered on (e.g., initially or after a reboot), determining that its alarm engine is assigned to monitor a function block but monitoring is currently inactive (e.g., due to the absence of any alarm profiles for the function block), determining that a threshold duration has exceeded since the last alarm configuration request was issued, receiving an update request from an alarm configuration service, and / or detecting the occurrence of other conditions. Causing the DCN to issue an alarm configuration request in response to detecting such specific conditions can ensure that the DCN proactively seeks alarm configuration files when they may be needed. Additionally or alternatively, by preventing the DCN from issuing an alarm configuration request when specific conditions are not detected, resources of the process automation system can be conserved. For example, network resources can be conserved, such as those used to transmit the alarm configuration request from the DCN to the alarm configuration service and / or those utilized by the alarm configuration service in response to the alarm configuration request.
[0024] In various embodiments, an alarm configuration request or alarm configuration update issued by a DCN (or a separate transmission of the DCN provided with the alarm configuration request) can include an addressable DCN identifier (e.g., an IP address and / or a MAC address) for a specific DCN. In some versions of those embodiments, the alarm configuration service can, based on the alarm configuration request including the functional block identifier and / or DCN identifier, update the alarm database to assign the addressable DCN identifier to the alarm configuration file (e.g., returned in response to the alarm configuration request or received in conjunction with the alarm configuration notification) and / or the functional block identifier (included in the alarm configuration request or alarm configuration notification). In some of these versions, the alarm viewer is tasked with monitoring the alarm database for the presence of addressable DCN identifiers that do not correspond to established connection-oriented communication sessions, and in response to identifying such addressable DCN identifiers, the alarm viewer can establish a connection-oriented communication session therewith. In some additional or alternative versions of those embodiments, the alarm configuration service can additionally or alternatively transmit a push notification including the addressable DCN identifier to the alarm viewer based on the alarm configuration request including the addressable DCN identifier, so that the alarm viewer automatically establishes a connection-oriented communication session with the DCN. Optionally, the alarm configuration service can transmit the push notification only after first determining that the alarm viewer has not already established a connection-oriented communication session with the DCN. Such a determination can be based on, for example, data provided by the alarm viewer and / or data included in the alarm database.
[0025] The addressable DCN identifier assigned in the alarm database can subsequently be used for one or more purposes beyond establishing a connection-oriented communication session with the DCN by the alarm engine. For example, such purposes can include utilizing the DCN identifier to push alarm profile updates to a specific DCN. For example, if an alarm profile is generated for a functional block identifier using the alarm configuration GUI, a notification can be transmitted to the specific DCN using the DCN identifier, and the DCN identifier can be used to transmit the notification based on its assignment to the alarm profile. The notification can cause the specific DCN to subsequently issue an alarm configuration request with the corresponding functional block identifier, resulting in the specific DCN receiving the updated alarm profile. As another example, if a new alarm profile is generated for a functional block identifier using the alarm configuration GUI, the DCN identifier can be used to proactively and unilaterally push the alarm profile to the specific DCN, and the DCN identifier can be used to push the alarm profile based on its assignment to the alarm profile.
[0026] In response to a later alarm configuration request (or other transmission) that includes a new addressable DCN identifier and functional block identifier and / or alarm profile, the new addressable DCN identifier can be assigned to the alarm profile and / or functional block identifier, as well as in the alarm database. For example, suppose a particular DCN is replaced with a DCN having a new addressable DCN identifier. In response to the replacement DCN transmission alarm configuration request or alarm configuration notification, the alarm configuration service replaces the assignment of the addressable DCN identifier to the alarm profile and / or functional block identifier in the database with the assignment of the new addressable DCN identifier to the alarm profile and / or functional block identifier. In embodiments where the alarm viewer is tasked with monitoring the alarm database for the presence of addressable DCN identifiers that do not correspond to established connection-oriented communication sessions, the alarm viewer can identify the new addressable DCN identifier as such a DCN identifier and, in response, establish a connection-oriented communication session therewith. In response to a later alarm configuration transmission including the new addressable DCN identifier and the functional block identifier and / or the alarm configuration file, the configuration service can additionally or alternatively transmit a push notification including the new addressable DCN identifier to the alarm viewer to cause the alarm viewer to automatically establish a connection-oriented communication session with the DCN.
[0027] Thus, embodiments disclosed herein enable efficient deployment of alarm profiles to appropriate process automation nodes as those process automation nodes are brought online in a newly commissioned process automation system—and can optionally ensure that an alarm viewer establishes a connection-oriented communication session with those process automation nodes. Furthermore, embodiments additionally or alternatively enable robust adaptation to replacements and / or modifications of process automation nodes and / or other system components in an active process automation system. For example, robust alarm adaptation is achieved when a function block is removed from execution and / or alarm monitoring at a first DCN and redeployed for execution and / or alarm monitoring at a second DCN. Furthermore, embodiments enable robust alarm adaptation and / or adaptation of connection-oriented communication sessions when, for example, a first DCN executing and / or monitoring a first function block is replaced by a second DCN that also executes and / or monitors the first function block (e.g., having different hardware specifications).
[0028] As described above, it can be desirable to establish a persistent connection-oriented communication session between the alarm engine and the alarm viewer. For example, it can be desirable to ensure the security and / or robustness of the alarm viewer, to ensure low-latency presentation of outputs responsive to alarm messages, to reduce traffic on the process automation network (via which the connection-oriented communication session can be established), and / or to enable the alarm viewer to recognize when the alarm engine is inactive.
[0029] As a specific example, the alarm viewer can be configured to react only to alarm events provided via a connection-oriented communication session established by the alarm viewer with an alarm engine (via the process automation network). This prevents the alarm viewer from reacting to any erroneous alarm messages transmitted (e.g., accidentally or maliciously) on the process automation network but not via the connection-oriented communication session established by the alarm viewer. As another specific example, the connection-oriented communication session can ensure that data corresponding to alarm events is delivered in sequence and / or via the same path, which can reduce the latency for the alarm viewer to receive and act on the alarm events. As yet another specific example, the connection-oriented communication session can be via a reliable protocol, whereby, in the event of lost or corrupted data, the alarm viewer provides confirmation of delivery of the alarm message data and / or an automatic repeat request to the corresponding alarm engine. This ensures that the alarm viewer is robust and actually receives and acts on the alarm event data. As an additional specific example, alarm events provided over the connection-oriented communication session will not be broadcast to various other DCNs and / or other components also connected to the process automation network, thereby reducing network traffic at those various components. As another additional 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 provide a notification if the alarm engine is determined not to be truly active. For example, when the alarm engine determines that a previously established connection-oriented communication session with the alarm engine is no longer established, it can provide a corresponding notification to the operator. This no longer being established can be due to, for example, an alarm engine crash, a DCN on which the alarm engine is implemented being disconnected from the network, and / or a DCN failure.
[0030] However, due to the distributed and / or heterogeneous nature of process automation systems, implementing one or more of the desires and / or needs for connection-oriented communication sessions can be cumbersome and / or error-prone.
[0031] As an example, assume that an alarm profile is stored locally on a particular DCN and is used by a local alarm engine of the particular DCN to monitor process variables of a particular function block on the particular DCN (e.g., to monitor the values of those variables during execution of the particular function block). Further assume that the alarm profile is stored and utilized locally by the particular DCN based on being preloaded on the particular DCN (prior to commissioning of the DCN in a process automation system) or based on manual configuration during commissioning via a human-machine interface (HMI) coupled to the DCN. Furthermore, assume that an alarm viewer has an established connection-oriented communication session with the particular DCN based on a network-addressable DCN identifier (also referred to herein as an "addressable DCN identifier") of the DCN previously manually provided at an interface of the alarm viewer (e.g., based on engineer input).
[0032] If a particular DCN is replaced by a new DCN that performs the same function block, it may be necessary to manually preload an alarm configuration file on the new DCN or manually configure the new DCN via the HMI. Furthermore, a new addressable DCN identifier for the new DCN may need to be manually provided to the alarm viewer interface to enable the alarm viewer to establish a connection-oriented communication session with the new DCN. Manually preloading an alarm configuration file or configuring a new DCN via the HMI is cumbersome and requires computing resources. Errors in either method can result in the corresponding alarm not being truly valid or inaccurate (e.g., due to incorrectly defined conditions). Furthermore, in addition to the cumbersome and computationally resource-intensive nature of manually providing the alarm viewer with the new addressable DCN identifier, errors in provisioning (e.g., specifying an incorrect addressable DCN identifier) and / or neglecting to provide the new addressable DCN identifier can result in the alarm viewer not establishing a connection-oriented communication session with the new DCN, rendering the corresponding alarm effectively inactive (i.e., no corresponding notification will be provided to the alarm viewer due to the lack of an established connection-oriented communication session). Consequently, this can result in missed detection of the occurrence of an alarm condition and / or the failure to take any corresponding action. This, in turn, can lead to hazardous conditions or other negative consequences in a process automation setting.
[0033] As another example, when a DCN in a process automation system is initially commissioned, hundreds or thousands of alarm profiles may exist, requiring deployment at appropriate DCNs for effective alarm monitoring. However, due to the distributed and / or heterogeneous nature of process automation systems, determining which DCN is appropriate for a corresponding alarm profile can be cumbersome and / or error-prone. For example, it may not be readily apparent which DCN's alarm engine should be assigned a task using a corresponding alarm profile, among the hundreds or thousands of DCNs. Manually locating the appropriate DCN can be cumbersome and / or error-prone, potentially resulting in the corresponding alarm profile being deployed to the wrong DCN and the corresponding alarm monitoring not being truly activated. Furthermore, determining which DCNs among the hundreds or thousands of DCNs have activated alarm monitoring can be cumbersome and / or error-prone. Furthermore, manually providing an addressable DCN identifier to an alarm viewer interface for such a DCN, so that the alarm viewer can establish a connection-oriented communication session with the new DCN, can be cumbersome and / or error-prone.
[0034] Embodiments disclosed herein address these and other challenges by enabling any DCN that includes a corresponding active alarm engine to selectively transmit a corresponding alarm configuration transmission (e.g., an alarm configuration request or an alarm configuration notification). The alarm configuration transmission from the DCN includes (e.g., in a header and / or body of the transmission) an addressable DCN identifier of the DCN (e.g., an IP address or MAC address of the DCN) and also includes a direct or indirect indication that the DCN is implementing alarm monitoring for a function block of a process automation system.
[0035] Furthermore, embodiments address these and other challenges by enabling the alarm viewer, 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, to establish a persistent connection-oriented communication session with the DCN using the addressable DCN identifier. For example, a push notification including the addressable DCN identifier can be automatically transmitted to the alarm viewer to enable the alarm viewer to automatically establish a Transmission Control Protocol (TCP) connection or other connection-oriented communication session with the DCN, optionally after the alarm viewer verifies that one is not already established. As another example, the alarm viewer can be enabled to automatically establish a connection-oriented communication session by storing the addressable DCN identifier in an alarm database that the alarm viewer is tasked to monitor (e.g., at regular or aperiodic intervals). For example, the alarm viewer can monitor the alarm database for the presence of an addressable DCN identifier that does not correspond to an established connection-oriented communication session and, in response to identifying such an addressable DCN identifier, establish a connection-oriented communication session with it.
[0036] As described above, a connection-oriented communication session can be established between the alarm viewer and the DCN's alarm engine in response to receiving an alarm configuration transmission from the DCN and determining that a connection-oriented communication session with the addressable DCN identifier included in the alarm configuration transmission is not currently established. In some embodiments or circumstances, the alarm configuration transmission is an alarm configuration request that includes a function block identifier. The DCN can include the function block identifier in the alarm configuration request based on the corresponding function blocks executed by the DCN and / or assigned for alarm monitoring by the DCN. Furthermore, and as described herein, the alarm configuration service can respond to the alarm configuration request by transmitting an alarm configuration file 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 commissioned DCN implementing an alarm engine to obtain an appropriate alarm configuration file from the alarm configuration service. This can also, or alternatively, enable, for example, an already commissioned DCN to obtain a new alarm configuration file that has been specified via the alarm configuration service but has not yet been provided to the DCN for implementation by its alarm engine.
[0037] In some additional or alternative embodiments or scenarios, the alarm configuration transmission is an alarm configuration notification that includes a function block identifier and specifies a corresponding alarm profile preloaded on the DCN and / or created locally at the DCN (e.g., via a direct connection to a human-machine interface (HMI)). This enables, 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 profile with the function block. This, in turn, enables an operator (e.g., an engineer) to remotely view the alarm profile and its association with the function block and / or remotely modify the alarm profile via access to the alarm database. The remotely modified alarm profile 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 an overview of some embodiments of the present disclosure. Further descriptions of those embodiments and other embodiments are described in more detail below.
[0039] In addition, some embodiments include one or more processors of one or more devices, wherein the one or more processors are operable to execute instructions stored in an associated memory, and wherein the instructions are configured to cause any of the aforementioned methods to be performed. The processor can include various hardware processors, such as a central processing unit (CPU), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a graphics processing unit (GPU), a digital signal processor (DSP), and / or other processors. Some embodiments additionally or alternatively include one or more transient or non-transitory computer-readable storage media storing computer instructions that can be executed by one or more processors to perform any of the methods disclosed herein.
[0040] It should be understood that all combinations of the foregoing 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 the claimed subject matter appearing at the end of this disclosure are considered to be part of the subject matter disclosed herein. BRIEF DESCRIPTION OF THE DRAWINGS
[0041] Figure 1 An example environment is illustrated for partially implementing selected aspects of the present disclosure in accordance with various implementations.
[0042] Figure 2 The diagram shows Figure 1 The first DCN has been replaced by the replacement DCN Figure 1 An example environment for
[0043] Figure 3 The diagram shows that Figure 1 After the first DCN has been modified to remove the alarm monitoring function and the alarm monitoring function removed from the first DCN is implemented on the second DCN, Figure 1 An example environment for
[0044] Figure 4A 、 Figure 4B 、 Figure 4C and Figure 4D Illustrated is an example progression of the alarm configuration GUI as a user interacts with the GUI to cause an alarm configuration file associated with a function block identifier to be generated.
[0045] Figure 5A 、 Figure 5B 、 Figure 5C and Figure 5D Illustrated is another example progression of the alarm configuration GUI as a user interacts with the alarm configuration GUI to cause a new alarm configuration file to be generated to replace an existing alarm configuration file associated with a function block identifier.
[0046] Figure 6An example method is illustrated for utilizing an alarm configuration GUI to generate an alarm configuration file associated with a function block identifier and transmitting the alarm configuration file to a DCN utilizing the function block under alarm monitoring.
[0047] Figure 7 Pictured Figure 6 An example of an implementation of block 614 is provided.
[0048] Figure 8 Illustrated are example methods of generating and transmitting an alarm configuration request, receiving an alarm configuration file in response, and implementing local alarm monitoring based on the received alarm configuration file.
[0049] Figure 9 Illustrated are example methods of storing an alarm profile in association with a function block identifier and transmitting the alarm profile in response to an alarm configuration request including the function block identifier associated with the alarm profile.
[0050] Figure 10 Illustrated are example methods of generating and sending an alarm configuration request, receiving an alarm configuration file in response, and implementing local alarm monitoring based on the received alarm configuration file.
[0051] Figure 11 Illustrated is an example method of 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.
[0052] Figure 12A Pictured Figure 11 A specific embodiment of an example method of.
[0053] Figure 12B Pictured Figure 11 Another specific embodiment of the exemplary method of .
[0054] Figure 13 An example computer architecture is schematically illustrated upon which selected aspects of the present disclosure can be implemented. DETAILED DESCRIPTION
[0055] Embodiments disclosed herein involve ensuring robust and / or accurate alarm monitoring based on function blocks implemented by a process automation system's DCN. At least a subset of these function blocks are each used to implement at least a portion of a corresponding at least partially automated process. As used herein, an "at least partially automated process" includes any process within a process automation system that is collaboratively implemented by multiple devices with little or no human intervention. A common example of an at least partially automated process is a process loop, in which one or more actuators are automatically operated (without human intervention) based on the output of one or more sensors. Some at least partially automated processes can be subprocesses of the overall process automation system workflow, such as the single process loop mentioned previously. Other at least partially automated processes can comprise all or a large portion of the overall process automation system workflow. In some cases, the degree to which a process is automated can exist along a gradient, spectrum, or scale of automation. Partially automated processes that still require human intervention may be at or near one end of the scale. Processes that require less human intervention may be near the other end of the scale, representing fully autonomous processes. Process automation can generally be used to automate processes in a variety of fields, such as the manufacture, development, and / or refinement of chemicals (e.g., chemical processing), catalysts, machinery, and / or other fields.
[0056] Now refer to Figure 1 , schematically depicts an example environment 100 in which various aspects of the present disclosure can be implemented. The environment 100 includes a process automation system 108 that can be implemented in various industrial facilities, such as a chemical processing plant, an oil or gas refinery, a catalyst plant, a manufacturing facility, or part of other industrial facilities. The process automation system 108 is Figure 1 1 , the process automation system 108 is shown 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 can include various additional components. However, for simplicity, the process automation system 108 is shown 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. Figure 1 These are not shown in the figure.
[0057] The process automation network 106 can be implemented using various wired and / or wireless communication technologies, including but not limited to the Institute of Electrical and Electronics Engineers (IEEE) 802.3 standard (Ethernet), IEEE 802.11 (Wi-Fi), cellular networks (such as 3GPP Long Term Evolution ("LTE")) or other wireless protocols designated as 3G, 4G, 5G and higher, and / or other types of communication networks in various types of topologies (e.g., mesh). Process automation is often employed in scenarios where the cost of failure tends to be high, both in terms of personal safety and financial costs to stakeholders. Therefore, in various embodiments, the process automation network 106 can be configured with redundancy and / or backup to provide high availability (HA) and / or high quality of service (QoS). Additionally, nodes exchanging data on the process automation network 106 can implement time-sensitive networking (TSN) to facilitate time synchronization and / or real-time control flows. Various nodes / devices are operably coupled with the process automation network 106 , such as the alarm configuration service 120 , the alarm viewer 140 , the alarm configuration GUI system 130 (optionally via the alarm configuration service 120 ), and the DCNs 110A-N.
[0058] DCN 110A, 110B, 110C and 110N Figure 1 . However, it should be noted that additional (e.g., hundreds or even thousands) DCNs can be provided in the process automation system 108, as indicated by the ellipses between DCN 110C and DCN 110N. Some DCNs in the process automation system 108 can have input / output (I / O) for coupling with sensors, human-machine interfaces (HMIs), actuators, and / or other components. Other DCNs in the process automation system 108 can optionally omit I / O.
[0059] The DCN 110A is coupled to a flow transmitter (FT) assembly 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 can be electric, hydraulic, mechanical, and / or pneumatic components that can be controlled to affect some aspect of the process automation workflow occurring at the process automation facility 108. The FT assembly 111A includes a sensor that provides sensor data indicating the flow rate of a corresponding fluid flow and also includes an actuator that can be adjusted to control the corresponding fluid flow. The sensors described herein can take various 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., hygrometers), radiation dosimeters, laser absorption spectrometers (e.g., multi-channel optical units), and / or other forms.
[0060] The DCN 110A includes a processor 112A that can utilize associated memory (and corresponding instructions stored therein) to implement corresponding functions of the DCN 110A. These functions include implementing function blocks 114A of the DCN 110A, which can be stored in some of the associated memory. Those functions also include implementing an alarm engine 116A.
[0061] Each of the function blocks 114A of DCN 110A can define one or more aspects of sensor monitoring and / or actuator control performed by DCN 110A. In some embodiments, each of the function blocks 114A is a corresponding software model that includes input / output variables, pass variables, internal variables, and / or an internal behavioral description of the functionality to be performed by the function block. As a non-limiting example, one of the function blocks 114A of DCN 110A can control an actuator of FT component 111A based on sensor data from a sensor of FT component 111A. As another non-limiting example, another of the function blocks 114A of DCN 110A can control actuator 113A based on outputs from other function blocks (such as other function blocks implemented in DCN 110A and / or in other DCNs 110B-N).
[0062] The alarm engine 116A can optionally be implemented using an open standard protocol. For example, the alarm engine 116A can be implemented by an Open Platform Communications (OPC) Unified Architecture (OPC-UA) server executed by the processor 112A of the DCN 110A. The alarm engine 116A can utilize the alarm profiles described herein to monitor for the occurrence of alarm conditions indicated by the alarm profiles and to execute corresponding actions if an alarm condition is detected. The corresponding actions can also optionally be indicated by the alarm profiles. The conditions defined by the alarm profiles can include or be limited to those referencing process variables of a function block, such as input variables, output variables, pass-through variables, and / or internal variables of the function block. The actions executed in response to an alarm condition detected by the alarm engine can include, for example, sending corresponding data to the alarm viewer 140 to cause corresponding audible and / or visual alarm messages to be presented at one or more output interfaces. As described herein, the sending of 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 may have been previously established in response to receiving a previous alarm configuration transmission from DCN 110A, or even in response to manual input provided to alarm viewer 140. The actions performed in response to detecting an alarm condition can additionally or alternatively include causing remediation to be performed, for example, stopping and / or changing the functional blocks responsible for the alarm condition and / or related functional blocks.
[0063] As one example, alarm engine 116A can monitor conditions on process variables referenced by function block 114A associated with FT assembly 111A. For example, a condition can define high-high, high, low, and / or low-low limits for a function block's measured flow variable (based on a sensor of FT assembly 111A). Furthermore, for example, a condition can define a maximum rate of change of the measured flow variable. As another example, a condition can define a maximum deviation between the measured flow variable and a setpoint for the flow variable. As another example, alarm engine 116A can additionally or alternatively monitor conditions on other process variables referenced by additional function blocks, such as function block 114A associated with actuator assembly 113A. For example, a condition can define a state of actuator assembly 113A, as determined based on inputs to the additional function blocks.
[0064] As described herein, the DCN 110A can obtain an alarm profile defining alarms to be monitored by the alarm engine 116A from the alarm configuration service 120 and via the process automation network 106. The alarm profile can optionally include an alarm profile generated through interaction with the alarm configuration GUI system 130 described herein. As an example, the DCN 110A can transmit an alarm configuration request to the alarm configuration service 120 and via the process automation network 106. The DCN 110A can include function block identifiers of the function blocks 114A in the alarm configuration request and can include them based on whether they are function blocks 114A executed by the DCN 110A and / or based on whether they are function blocks to be executed by the alarm engine 116A for alarm monitoring (when obtaining the corresponding alarm profile). The DCN 110A can transmit the alarm configuration request in response to detecting the occurrence of an alarm configuration condition, such as one or more of the alarm configuration conditions described herein. As another example, the alarm configuration file can 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 .
[0065] DCN 110B is coupled to a stream transmitter (FT) component 111B via a first I / O and to a sensor 115B via a second I / O. DCN 110B includes a processor 112B, which is capable of utilizing associated memory (and corresponding instructions stored therein) to implement the corresponding functionality of DCN 110B. Those functionality includes implementing function blocks 114B of DCN 110B, which can be stored in some of the associated memory. Notably, DCN 110B does not include any corresponding alarm engine, and therefore, the functionality implemented by processor 112B does not include implementing any alarm engine. Instead, alarm monitoring associated with function blocks 114B of DCN 110A is performed by DCN 110C (described below).
[0066] Each of the function blocks 114B of DCN 110B can define one or more aspects of sensor monitoring and / or actuator control performed by DCN 110B. In some embodiments, each of the function blocks 114B is a software model that includes input / output variables, pass variables, internal variables, and / or an internal behavioral description of the functionality to be performed by the function block. As a non-limiting example, one of the function blocks 114B of DCN 110B can control an actuator of FT component 111B based on sensor data from a sensor of FT component 111B, sensor data from sensor 115B, and / or sensor data (e.g., a sensor of FT 111A).
[0067] 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 automation process of the process automation system 108. However, the processor 112C of the DCN 110C does implement an alarm engine 116C that monitors the function blocks of other DCNs of the process automation system. In some embodiments, the DCN 110C can be dedicated solely to alarm monitoring.
[0068] Alarm engine 116C can optionally be implemented using an open standard protocol, such as an OPC-UA server executed on DCN 110C by its processor 112C. Alarm engine 116C can utilize the alarm profiles described herein to monitor for the occurrence of alarm conditions indicated by the alarm profiles and to execute corresponding actions if an alarm condition is detected. Conditions defined by the alarm profiles can include or be limited to conditions on process variables of referenced function blocks. Function blocks monitored by alarm engine 116C include those not executed by DCN 110C (because DCN 110C does not execute any function blocks). For example, alarm engine 116C can monitor function block 114B of DCN 110B and / or function blocks of other DCNs. For example, monitoring of function block 114B during its execution can occur via communication of process variables from DCN 110B reflecting the execution of function block 114B. This communication can optionally occur via, for example, a connection-oriented connection between DCN 110B and DCN 110C via process automation network 106. As an example, the alarm engine 116C can monitor conditions on a process variable of a function block that references the function block 114B associated with the sensor assembly 115B. For example, the conditions can define high-high, high, low, and / or low-low limits on an internal variable of the function block 114B that is dependent on sensor data from the sensor 115B.
[0069] The actions performed in response to the detection of an alarm condition by alarm engine 116C can include, for example, sending corresponding data to alarm viewer 140 to cause corresponding audible and / or visual alarm messages to be presented at one or more output interfaces. The sending of the corresponding data can be via a connection-oriented communication session established between alarm engine 116C and alarm viewer 140. As described herein, connection-oriented communication session 106C may have been previously established in response to receiving a previous alarm configuration transmission from DCN 110C, or even in response to manual input provided to alarm viewer 140. The actions performed in response to the detection of an alarm condition can additionally or alternatively include causing remediation to be performed.
[0070] As described herein, the DCN 110C can obtain an alarm configuration profile defining 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 transmit an alarm configuration request to the alarm configuration service 120 via the process automation network 106. The DCN 110C can include function block identifiers of the function blocks 114B in the alarm configuration request and can include them based on the fact that they are function blocks to be executed by the alarm engine 116C for alarm monitoring (when the corresponding alarm configuration profile is obtained). The DCN 110C can transmit the alarm configuration request in response to detecting an alarm configuration condition. As another example, the alarm configuration profile 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.
[0071] The DCN 110N is coupled to a 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 implement corresponding functions of the DCN 110N. Those functions include implementing function blocks 114N of the DCN 110N, which can 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 profile defining alarms to be monitored by the alarm engine 116N from the alarm configuration service 120 and via the process automation network 106.
[0072] The actions performed in response to the alarm condition being detected by the alarm engine 116N can include, for example, sending corresponding data to the alarm viewer 140 to cause corresponding audible and / or visual alarm messages to be presented at one or more output interfaces. The sending of the corresponding data can be via a connection-oriented communication session established between the alarm engine 116N and the alarm viewer 140. As described herein, the connection-oriented communication session 106C may have been previously established in response to receiving a previous alarm configuration transmission from the DCN 110N, or even in response to manual input provided to the alarm viewer 140.
[0073] The alarm configuration service 120 is illustrated as including a configuration module 122, a request module 124, and a push module 126. In some embodiments, the alarm configuration service 120 is implemented within a process automation facility (e.g., within a single building or within a single site of a building or other industrial infrastructure). In such embodiments, the alarm configuration service 120 can be implemented on one or more local computing systems, such as on one or more server computers. However, in some embodiments, some or all aspects of the alarm configuration service 120 can be implemented in computing systems remote from the process automation facility. In some of those embodiments, the alarm configuration service 120 can communicate with the process automation network 106 via a wide area network.
[0074] The configuration module 122 can receive the alarm profiles, assign the alarm profiles to function block identifiers, and store the alarm profiles and the associated function block identifiers in the alarm database 125. For example, a first alarm profile can be assigned to a first function block identifier "FT101.PV," a second alarm profile can be assigned to a second function block identifier "FT202.SP," and so on. Furthermore, the configuration module 122 can store in the alarm database 125 the first alarm profile and the assignment (e.g., a pointer or other association) of the first alarm profile to the "FT101.PV" function block identifier, the second alarm profile and the assignment (e.g., a pointer or other association) of the first alarm profile to the "FT202.SP" function block identifier, and so on.
[0075] The alarm profiles and their associations can be generated based on user interface input from engineers and / or other individuals who implement and / or maintain the process automation system 108. In some implementations, some or all of the alarm profiles and their associations are received via a batch configuration file 150. The batch configuration file 150 can be, for example, in a .csv or other structured or unstructured format and can be created using one or more programs.
[0076] In some implementations, some or all of the alert profiles and their associations can be received via an alert configuration graphical user interface (GUI) system 130. The alert configuration GUI system 130 can be implemented via the configuration module 122, or can be implemented via a separate component that at least selectively communicates with the configuration module 122.
[0077] The alarm configuration GUI system 130 is capable of communicating with the process automation network 106 via one or more client devices ( Figure 1 (not shown) in the figure (and optionally implemented in whole or in part). The interaction can occur via an application on the client device and via the alarm configuration GUI presented by the alarm configuration GUI system 130. The alarm configuration GUI can include graphical interface elements for specifying a function block identifier and alarm profile parameters for the specified function block identifier. For example, the alarm configuration GUI can include fields for specifying a function block identifier (e.g., from a drop-down menu, via free-form input, via a search based on the entered characters, or auto-complete), and can also include fields for specifying function block variables and conditions for those variables. For example, the alarm configuration GUI can enable specification of a function block identifier and, once a function block identifier is specified, can present the function block variables for the corresponding function block. Furthermore, each of the function block variables can be selected, and if selected, corresponding conditions for the function block variables can be defined through further interaction with the alarm configuration GUI. The selected function block variables and conditions can then be used to generate a corresponding alarm profile, and the corresponding alarm profile can be associated with the function block identifier. Updates to the alarm profile can be performed via other batch configuration files and / or through further interaction with the alarm configuration GUI. For example, the alarm configuration GUI system 130 enables viewing of existing alarm profiles in the alarm database 125 and modification (or even deletion) of existing alarm profiles in the alarm database 125 (optionally while maintaining their association with function block identifiers and optional DCN identifiers).
[0078] The request and / or notification module 124 (also referred to herein as a “request module” for simplicity) receives and processes alarm configuration transmissions (e.g., alarm configuration requests and / or alarm configuration notifications) received via the process automation network 106 from a DCN (such as one or more of the DCNs 110A-N).
[0079] The alarm configuration request received by the request module 124 can include a function block identifier of the function block and, optionally, a DCN identifier of the DCN that transmitted the alarm configuration request. In response to receiving the alarm configuration request, the request module 124 can access the alarm database 125 and identify, in the alarm database 125, a function block identifier that matches the function block identifier of the alarm configuration request. Furthermore, the request module 124 can identify an alarm configuration file stored in association with the matching function block identifier. Furthermore, the request module 124 can transmit the identified alarm configuration file via the process automation network in response to the alarm configuration request and the DCN that issued the alarm configuration request.
[0080] Optionally, the request module 124 can update the alarm database 125 to store an association of the addressable DCN identifier (optionally including the alarm configuration request) with the identified functional block identifier and / or the identified alarm profile. In doing so, the request module 124 can remove any stored association of a different addressable DCN identifier with the identified functional block identifier and / or the identified alarm profile.
[0081] As described herein, the alarm viewer 140 and / or push module 126 can utilize the stored association of the addressable DCN identifier with the identified functional block identifier and / or the identified alarm profile. 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 using the addressable DCN identifier in response to detecting that the addressable DCN identifier is stored in association with the functional block identifier and / or the alarm profile in the alarm database 125, and based on determining that it does not already have an established connection-oriented communication session with the corresponding DCN. In some embodiments, the request and / or notification module 124 can additionally or alternatively transmit a push notification including the addressable DCN identifier to the alarm viewer 140, causing the alarm viewer to automatically establish a connection-oriented communication session with the DCN.
[0082] The alarm configuration notification received by the request and / or notification module 124 can include the addressable DCN identifier of the DCN transmitting the alarm configuration notification, and can include the function block identifier and corresponding alarm profile preloaded on the DCN and / or created locally on the DCN. This can enable, for example, an alarm configuration service receiving the alarm configuration notification to update an alarm database to reflect, for example, the association of the alarm profile with 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 the alarm profile of the alarm configuration notification, as well as the association between the function block identifier and the alarm profile, in the alarm database 125. In some embodiments, the request and / or notification module 124 can also store the association between the addressable DCN identifier including the alarm configuration notification and the received function block identifier and / or the received alarm profile. In some embodiments, the request and / or notification module 124 can additionally or alternatively transmit a push notification including the addressable DCN identifier of the alarm configuration notification to the alarm viewer 140, so that the alarm viewer automatically establishes a connection-oriented communication session with the DCN.
[0083] The push module 126 is optional and, when provided, can be used to provide updated alarm profiles to corresponding DCNs, such as to direct the updated alarm profiles to corresponding DCNs utilizing pre-updated versions of the alarm profiles. For example, in response to an update to an alarm profile via the alarm configuration GUI system 130, the configuration module 122 can store the updated alarm profile in association with its functional block identifier in the alarm database 125, while maintaining any associations between the functional block identifier and the addressable DCN identifier and / or simultaneously creating an association between the updated alarm profile and the addressable DCN identifier. As described with respect to the request module 124, the request module 124 can, in response to an alarm configuration request from the corresponding DCN that includes the functional block identifier, store an association between the addressable DCN identifier and the functional block identifier and / or the alarm profile in the alarm database 125. The push module 126 can identify the updated alarm profile in response to a notification from the configuration module 122 or in response to identifying an update in the alarm database 125. In response to identifying the updated alarm profile, the push module 126 can cause the updated alarm profile to be provided to a DCN corresponding to the addressable DCN identifier associated with the updated alarm profile and / or to the functional block identifier associated therewith.
[0084] In some embodiments, when providing an updated alarm profile to a DCN corresponding to an addressable DCN identifier, push module 126 can transmit the updated alarm profile to the DCN identifier independently of any alarm configuration request from the DCN. In some embodiments, when providing an updated alarm profile to a DCN corresponding to an addressable DCN identifier, push module 126 can transmit an update request to the DCN identifier, which, when received by the DCN, can be determined as an alarm configuration condition. Thereafter, the DCN can transmit the alarm configuration request when deemed appropriate by the DCN. The alarm configuration request can be processed by request module 124, and in response to the alarm configuration request, the updated alarm profile can be sent to the DCN by request module 124. Embodiments in which push module 126 provides the update request in lieu of an updated new alarm profile enable the DCN to receive the update request, determine when it is appropriate to transmit the alarm configuration request, and receive the updated alarm profile in response. This can ensure that the DCN can receive and / or process the updated alarm profile when it is transmitted and / or otherwise enable the DCN to manage its resource utilization. For example, an update request can have a small data size (e.g., a byte or less) and require very little processing upon receipt, whereas an alarm configuration file can have a larger size (e.g., more than one byte) and require more processing upon receipt (e.g., removing a previously updated alarm configuration file and replacing it with an updated one). Thus, the DCN can receive the update request and locally determine when to responsively transmit an alarm configuration request. For example, upon receiving the update request, DCN resources may be strained due to a control actuator and / or the DCN's alarm engine detecting that a current alarm condition has been met. Based on the existence of one or both of these conditions, the DCN can wait to issue an alarm configuration request when one or both of these conditions no longer exist.
[0085] In the absence of a DCN identifier associated with the updated alarm profile, the push module 126 can optionally broadcast an update request to multiple DCNs 110A-N of the process automation system 108 via the process automation network 106. Upon receipt by each DCN, the update request can be determined to be an alarm configuration condition. Each DCN can then responsively transmit an alarm configuration request. In some embodiments, a broadcast update request can be distinguished from an update request transmitted to a single DCN using a DCN identifier (e.g., include different data). In some of those embodiments, a DCN receiving a broadcast update request can identify it as such and transmit an alarm configuration request with a timing based on the broadcast timing. For example, each DCN can randomly select a corresponding time delay between 1 and 100 seconds for a DCN broadcast request and transmit the alarm configuration request with the randomly selected time delay. This can ensure decentralized transmission of alarm configuration requests, thereby preventing overloading of resources of the process automation network 106 and / or overloading of the request module 124 when processing alarm configuration requests.
[0086] Returning to the alarm configuration GUI system 130, it presents an alarm configuration GUI via which a user can interact to create new alarms for a functional block, to view existing alarms for a functional block, and / or to modify existing alarms for a functional block (e.g., to replace an existing alarm with a new alarm). Figure 1 The diagram in FIG includes an authenticator 132 , a function block parser 134 , a parameter parser 136 , and a GUI module 138 .
[0087] The authenticator 132 can utilize one or more authentication techniques when authenticating a user, and can require successful authentication of the user before enabling the user to view alarms, create new alarms, and / or modify existing alarms by utilizing the alarm configuration GUI system 130. For example, the authenticator 132 can require successful authentication of the user and verify that the authenticated user has "edit access" before enabling the user to create new alarms and / or modify existing alarms. The authenticator 132 can utilize single or multi-factor authentication techniques when authenticating a user.
[0088] The function block parser 134 can direct the user to a function block by enabling a search of all function block identifiers via the alarm configuration GUI, enabling browsing of all function block identifiers via the alarm configuration GUI, and / or enabling searching or browsing of a subset of function block identifiers via the alarm configuration GUI. For example, the function block parser 134 can search for matching (partial or complete) function block identifiers 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 database can include all function block identifiers for the process automation system 108 and an association between each function block identifier and its corresponding function block. The function block parser 134 can compare the characters of the typed or spoken input 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 the typed input "FT101.PV," the function block parser 134 can resolve a single matching function block identifier and cause the GUI module 138 to present it. Furthermore, for example, in response to the input "FT10" being entered, the function block parser 134 can identify multiple matching function block identifiers, such as "FT101.PV" and "FT105.PV," and cause the GUI module 138 to present each. Furthermore, when presented via the GUI module 138, the function block parser 134 can parse a single one of these based on selection of a single one of these. In some embodiments, the function block parser 134 can limit the search to a subset of function block identifiers in response to receiving corresponding input via the alarm configuration GUI. In some embodiments, the function block parser 134 can cause the GUI module 138 to present all or a subset of the function block identifiers in response to receiving corresponding input via the alarm configuration GUI, thereby enabling the user to select one of the presented function blocks to be parsed into a single function block identifier.
[0089] When a function block identifier is parsed by the function block parser 134, the parameter parser 136 can guide the user in specifying conditions and / or other parameters for an alarm for the function block corresponding to the parsed function block identifier. For example, the parameter parser 136 can use the function block type to select alarm types compatible with the function block type and cause the GUI module 138 to present only those alarm types specified in the alarm configuration GUI. For example, the "PV" in "FT101.PV" can indicate that the function block has a "process variable" type. As a result of selecting "FT101.PV" and "PV" indicating a "process variable" type, the parameter parser 136 can cause the GUI module 138 to present only alarm types compatible with the "process variable" type of function block specified in the alarm configuration GUI (e.g., only error, level, rate of change, and deviation alarm types). Furthermore, for example, the parameter parser 136 can cause the GUI module 138 to present the parsed function block's process variable in the alarm configuration GUI to enable efficient specification of the process variable for which the alarm's condition is specified. As another example, parameter parser 136 can cause GUI module 138 to present input graphical interface elements in the alarm configuration GUI to enable efficient specification of conditions related to the selected alarm type. The input graphical interface elements can include, for example, free-form input fields, drop-down selection interfaces, and / or other input graphical interface elements. As another example, parameter parser 136 can cause GUI module 138 to present existing alarms for which function block identifiers have been specified for parsing via alarm configuration files in the alarm database to be presented in the alarm configuration GUI to enable efficient review of existing alarms and, further, efficient modification of existing alarms.
[0090] The GUI module 138 causes corresponding output to be presented in the alarm configuration GUI and processes input received via the alarm configuration GUI (e.g., typed input, selection of graphical elements, and / or spoken input). As described above, the GUI module 138 can interact with the function block parser 134 and / or the parameter parser 136 when updating the alarm configuration GUI during interaction with a user in a given alarm.
[0091] After specifying the conditions and / or other parameters of an alarm via the alarm configuration GUI, a corresponding alarm profile can be generated. For example, the alarm configuration GUI system 130 can generate the alarm profile in response to the interactive user selecting a confirmation interface element in the alarm configuration GUI after specifying the parameters of the alarm. The alarm configuration GUI system 130 can also cause the alarm profile to be stored in the alarm database 125 in association with the corresponding function block identifier of the function block, and optionally, if known, in association with the corresponding DCN of the function block utilized in alarm monitoring. For example, the alarm configuration GUI system 130 can provide the alarm profile and its associated function block identifier to the configuration module 122, and the configuration module 122 can store the alarm profile in the alarm database 125 in association with the function block identifier.
[0092] The alarm viewer 140 can communicate with the alarm engines 116A, 116C, and 116N of the DCNs 110A, 110C, and 110N and, in response to and based on alarm messages received by the alarm engines via corresponding communication sessions (e.g., connection-oriented communication sessions as described herein), cause at least any active alarms to be presented via one or more output devices. For example, the alarm viewer 140 can cause at least one or more active alarms to be displayed via a fixed display screen in the process automation facility. The fixed display screen can be communicatively coupled to a computing system implementing the alarm viewer 140. Furthermore, for example, the alarm viewer 140 can cause at least some active alarms (e.g., alarms designated as "high priority" in corresponding alarm profiles) to be transmitted to an individual's mobile phone, for example, via an alarm application installed on the mobile phone, as text message alerts or push notifications. This transmission can occur via the process automation network 106 and / or via one or more WANs connected to the process automation network. The presentation of an active alarm by the alarm viewer 140 can optionally include an audible and / or visual presentation of a descriptor or other message corresponding to the condition that caused the alarm, such as a descriptor defined in an alarm profile for the alarm.
[0093] Based on a transmission from the DCN whose alarm engine determines that an active alarm has occurred, the alarm viewer 140 can be notified of an active alarm. The transmission can include information related to the alarm, such as a descriptor of the alarm determined using an alarm profile, identification of the function block and / or process variable that caused the alarm, and / or an indication of the alarm profile. The alarm viewer 140 can utilize information included in the transmission from the DCN and / or information derived from the alarm database 125 using the information included in the transmission when presenting details on the alarm.
[0094] In various embodiments, to ensure low-latency presentation of alarms by the alarm viewer 140 and / or the security of the alarm viewer 140, a connection-oriented communication session between the alarm viewer 140 and the DCN implementing the alarm engine can be desirable. In some of these embodiments, the alarm viewer 140 can utilize addressable DCN identifiers stored in the alarm database 125 by the request module 124 and / or provided to the alarm viewer 140 by the request module 124 when establishing such a connection-oriented communication session. This can ensure the establishment of a connection-oriented communication session between the alarm viewer 140 and the corresponding DCN and can overcome difficulties that arise when determining which DCNs implement the alarm engine in a heterogeneous and / or distributed process automation system.
[0095] Figure 1 The example environment 100 is illustrated at a first point in time, such as immediately after initial commissioning of the process automation system 108. In some embodiments, during initial commissioning, one or more of the DCNs 110A-N can 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 profiles stored thereon. After connecting to the process automation network 106, such one or more of the DCNs 110A-N can each transmit a corresponding alarm configuration request and, in response, obtain any responsive alarm profiles from the alarm configuration service 120. Those responsive alarm profiles can include, for example, some from the batch configuration files 150 and / or some defined via user interaction with the alarm configuration system 130. Furthermore, the addressable DCN identifier obtained from the alarm configuration request can be provided (directly or via the alarm database 125) to the alarm viewer 140 to enable the alarm viewer 140 to establish a connection-oriented communication session with the corresponding DCN implementing the alarm engine.
[0096] Figure 2 The diagram shows Figure 1 The DCN 110A has been replaced by the DCN 110A Figure 1 The replacement DCN 110A1 can be connected to the sensor 115A (which is in the example environment 100) due to, for example, a failure of the DCN 110A or an inability of the I / O of the DCN 110A. Figure 2 Connect to 110A1) and replace DNC 110A. Figure 2In the embodiment, DCN 110A1 is coupled to FT component 111A via a first I / O, to actuator 113A via a second I / O, and to sensor 115A via a third I / O. DCN 110A1 includes processor 112A1, which is capable of utilizing associated memory (and corresponding instructions stored therein) to implement corresponding functions of DCN 110A1. These functions include implementing function blocks 114A1 of DCN 110A1, which can be stored in some of the associated memories. These functions also include implementing alarm engine 116A. In response to commissioning or power-up, DCN 110A1 can transmit an alarm configuration request, which includes a function block identifier of function block 114A1 and / or a function block identifier of a function block monitored by alarm engine 116A1, which can include information relative to function block 114A ( Figure 1 ) additional functional blocks.
[0097] In response to the alarm configuration request, the request module 124 can identify, from the alarm database 125, an alarm profile stored in association with the functional block identifier of the alarm configuration request. Furthermore, the request module 124 can transmit the identified alarm profile to the DCN 110A1 so that the alarm profile can be implemented by the DCN 110A1. Furthermore, the request module 124 can optionally update the alarm database 125 to store an association between the DCN identifier of the DCN 110A1 and the alarm profile and / or functional block identifier and / or can provide a push notification including the DCN identifier of the DCN 110A1 to the alarm viewer 140. It should be noted that the DCN identifier of the DCN 110A1 can be unique relative to the DCN identifier of the DCN 110A being replaced. Updating alarm database 125 to reflect the DCN identifier of DCN 110A1 and / or providing a push notification to alarm viewer 140 can enable alarm viewer 140 to establish a connection-oriented communication session with DCN 110A1 via push module 126 and / or enable efficient push of updated alarm profiles. Furthermore, DCN 110A1's unique DCN identifier illustrates the robustness of including the functional block identifier in the alarm configuration request and / or its use by request module 124 when responding to requests and / or enabling alarm viewer 140 to establish a connection-oriented communication session with DCN 110A. For example, if some of the responsive alarm profiles were stored only in association with the DCN identifier of DCN 110A, and the DCN identifier of DCN 110A1 was included in the request in place of the functional block identifier, request module 124 would be unable to identify such alarm profiles in response to the alarm configuration request from DCN 110A.
[0098] Figure 3 The diagram shows Figure 1After the DCN 110A has been changed to remove the alarm engine 116A Figure 1 Since the alarm engine 116A is removed, any connection-oriented communication session 110A ( Figure 1 ) will no longer exist (ie, because the session has alarm engine 116A). In addition, alarm engine 116C of DCN 110C ( Figure 1 ) has been modified so that it now also includes in its alarm monitoring functionality the alarm monitoring functionality implemented by the alarm engine 116A (which was removed from the first DCN 110A). In response to detecting an alarm configuration condition, the DCN 110C can transmit an alarm configuration request including a function block identifier of a function block to be monitored by the alarm engine 116C1, which can include the function blocks previously monitored by the alarm engine 116A ( Figure 1 ) function block identifier to be monitored.
[0099] In response to the alarm configuration request, the request module 124 can identify, from the alarm database 125, an alarm profile stored in association with the functional block identifier of the alarm configuration request. Furthermore, the request module 124 can transmit the identified alarm profile to the DCN 110C so that the alarm profile is implemented by the DCN 110C. Furthermore, the request module 124 can optionally update the alarm database 125 to store an association between the DCN identifier of the DCN 110C and the alarm profile and / or functional block identifier.
[0100] Now refer to Figures 4A-5D , provides some non-limiting examples of interactions that can occur between a user and the alarm configuration GUI that result in the generation of alarm configuration files and their association with function block identifiers. Figures 4A-5D When describing various aspects of the alarm system configuration GUI system 130, some reference will be made to components of the alarm system configuration GUI system 130 that can be utilized in the interaction.
[0101] exist Figure 4A , an example initial GUI 460A is illustrated that includes a function block search input field 461A through which a user can enter (e.g., type) some or all of the function block identifiers being sought. The function block parser 134 can perform a search for matching function block identifiers based on the entry of characters in the search input field 461A. For example, the function block parser 134 can perform a real-time search as the user types (e.g., updating the search results with each typed character), or can wait to perform the search until "Enter" is selected, a threshold pause in typing is detected, or other completion indicators are detected.
[0102] Initial GUI 460A also includes selectable options 462A, 463A, and 464A. Selecting option 462A causes only function block identifiers with unconfigured alarms to be presented and / or causes a search (performed based on input in function block search input field 461A) to be limited to function block identifiers with unconfigured alarms. Selecting option 463A causes all function block identifiers to be presented and / or causes a search (performed based on input in function block search input field 461A) to be not limited to any subset of function block identifiers. Selecting option 464A causes only function block identifiers with recent changes to their alarms to be presented and / or causes a search (performed based on input in function block search input field 461A) to be limited to function block identifiers with recent changes. Optionally, selecting option 464A causes an input field to be presented through which the user can specify recency criteria (e.g., within the last three days, within the last week, etc.).
[0103] exist Figure 4B , another GUI 460B is shown that includes a function block search input field 461B that has been updated to reflect the parsed function block identifier of "FT101.Pv". For example, "FT101.PV can be searched by the function block parser 134 based on the Figure 4A 4. The search for matching function block identifiers is parsed by the input of characters in the search input field 461A at the GUI 460A. For example, the characters "FT10" may have been entered, resulting in a search including "FT101.PV," "FT105.PV," and "FT108.AI" as partial matching results. Furthermore, each of these partial matching results may have been presented by the GUI engine 138 and the "FT101.PV" result may have been selected by the user, resulting in the parsing of "FT101.PV" and conversion to Figure 4B Other GUI 460B.
[0104] The other GUI 460B also includes an alarm type selectable GUI element 465B and a variable selectable GUI element 466B.
[0105] Selection of the alarm type selectable GUI element 465B can cause the selectable options "Error," "Level," "Rate of Change," and "Deviation" to be presented (e.g., in a drop-down menu as shown), any of which can be selected to configure an alarm of the corresponding type. As described herein, the parameter parser 136 can cause the GUI engine 138 to display only those alarm types that, when the alarm type selectable GUI element 465B is selected, are determined to be compatible with the "Process Variable" alarm type indicated by the ".PV" in the (parsed function block identifier) "FT101.PV."
[0106] Selection of selectable GUI element 466B can cause selectable options of "Input V1," "Input V2," "Internal V1," and "Output V1" to be presented (e.g., in a drop-down menu as shown), one or more of which can be selected to configure a corresponding alarm. As described herein, the presented selectable variables can be actual variables of the function block corresponding to "FT101.PV." When selectable GUI element 466B is selected, parameter parser 136 can cause GUI engine 138 to display those variables in response to being the variables of the function block corresponding to "FT101.PV" (the parsed function block identifier).
[0107] exist Figure 4C In the user and Figure 4B The alarm type selectable GUI element 465B in the GUI 460B can be interacted with to select the "Level" alarm type 465C and Figure 4B Another GUI 460C is illustrated after interacting with the variable selectable GUI element 466B in the GUI 460B to select the "Input V1" variable 466C.
[0108] The other GUI 460C also includes input fields 467C1-4 that allow the user to enter values to define corresponding conditions among the high-high, high, low, and low-low conditions of the "Level" alarm type 465C and "Input V1." The other GUI 460C also includes input fields 468C1-4 that allow the user to enter values to define corresponding custom messages corresponding to the occurrence of the high-high, high, low, and low-low conditions.
[0109] exist Figure 4D In the figure, the user and Figure 4C 4. Further GUI 460D after the user interacts with input fields 467C1-4 to enter a High-High value 467D1 of "9.8," a High value 467D2 of "8.0," a Low value 467D3 of "2.0," and a Low-Low value 467D4 of "0.3." Notably, the user chooses not to interact with input fields 468C1-4, leaving them blank.
[0110] exist Figure 4D , a confirmation interface element 469D is also shown. Selection of confirmation interface element 469D causes an alarm profile to be generated and stored in association with the "FT101.PV" function block identifier. For example, the generated alarm profile can specify "9.8" as a condition for the process variable "Input V1," which, if met, causes a high-high notification to be provided. Furthermore, for example, the alarm profile can specify "8.0" as a condition for the process variable "Input V1," which, if met, causes a high notification to be provided. Alarm profiles can similarly specify low and low-low conditions. Notably, since input fields 468C1-4 are blank, corresponding default messages can be used in the alarm profile for notifications in response to the occurrence of high-high, high, low, and low-low conditions. If input fields 468C1-4 are instead populated based on user input, corresponding populated messages can be utilized instead. For example, if 468C1 has been populated with "Danger Temporary Level at Tank 1," then that message can be specified in the alert profile as a notification to be provided in response to the occurrence of a High-High condition.
[0111] Now go to Figure 5A -D, illustrates another example progression of the alarm configuration GUI when a user interacts with the alarm configuration GUI to cause a new alarm configuration file to be generated to replace an existing alarm configuration file associated with a function block identifier.
[0112] exist Figure 5A, an example initial GUI 560A is illustrated, which includes a function block search input field 561A, through which a user can enter (e.g., type) some or all of the function block identifiers being sought. The function block parser 134 can perform a search for matching function block identifiers based on the characters entered in the search input field 561A. The initial GUI 460A also includes selectable options 562A, 563A, and 564A. Selecting the selectable option 562A can cause only function block identifiers with unconfigured alarms to be presented and / or can cause the search (performed based on the input in the function block search input field 561A) to be limited to function block identifiers with unconfigured alarms. Selecting the selectable option 563A can cause all function block identifiers to be presented and / or can cause the search (performed based on the input in the function block search input field 561A) to not be limited to any subset of function block identifiers. Selection of selectable option 564A can cause presentation of only function block identifiers having recent changes to their alerts and / or can cause a search (performed based on input at function block search input field 561A) to be limited to function block identifiers having recent changes. Alternatively, selection of selectable option 564A causes presentation of an input field via which a user can specify criteria for recency.
[0113] exist Figure 5B , another GUI 560B is illustrated that includes a function block search input field 561B that has been updated to reflect the parsed d2 function block identifier of "FT202.PV". For example, "FT202.PV" can be searched by the function block parser 134 based on the Figure 5A 560A of the GUI. As another example, "FT202.PV" can be parsed by the function block parser 134 based on the user selecting the selectable option 563A and then selecting "FT202.PV" from the list displayed in response to the selection.
[0114] The function block identifier "FT202.PV" is a function block identifier that is already stored in the alarm database 125 in association with existing alarm profiles. The parameter parser 136 is able to access the alarm database 125 to determine those existing associations, and accordingly cause the GUI module 138 to present selectable GUI elements corresponding to the existing alarm profiles. That is, a first selectable GUI element 565B1 corresponding to a first alarm profile stored in association with "FT202.PV", a second selectable GUI element 565B2 corresponding to a second alarm profile stored in association with "FT202.PV", and a third selectable GUI element 565B3 corresponding to a third alarm profile stored in association with "FT202.PV". Any of the selectable GUI elements 565B1-3 can be selected to enable editing of the corresponding alarm profile and generating a new alarm profile to replace the existing alarm profile. For example, Figure 5C and 5D Illustrated are other GUIs 560C and 560D that can occur in response to a user selecting the first selectable GUI element 565Bl.
[0115] Other GUI elements 560B also include a selectable "Create New Alarm" GUI element 566B, which, if selected, enables the creation of a new alarm profile to be associated with the function block identifier. Notably, this creation can be limited to alarms that conflict with existing alarm profiles (e.g., alarm profiles of different alarm types) and / or specify conditions for different variables (besides "Input V1"). In some embodiments, the selectable "Create New Alarm" GUI element can be omitted if, for example, it is determined that no additional alarms conflict with existing alarm profiles. This can force the user to modify existing alarm profiles to prevent the creation of conflicting alarm profiles.
[0116] The other GUI 560B also includes a GUI element 567B1 that includes a DCN identifier ("QR22") of a DCN that implements alarm monitoring using a function block corresponding to "FT202.PV." The DCN identifier can be obtained from the alarm database 125 based on being stored in association with the function block identifier "FT202.PV" (e.g., based on a previous alarm configuration request specifying "FT202.PV" and "QR22").
[0117] exist Figure 5C In the user selection Figure 5B560B. The other GUI 560C is shown after the first selectable GUI element 565B1 in the other GUI 560B. The other GUI 560C includes a graphical interface element 561C indicating that details of the first alarm profile corresponding to the selected first selectable GUI element 565B1 are being displayed and are editable in the other GUI 560C.
[0118] Other GUI 560C also includes input fields 567C1-3 reflecting currently defined values, which reflect the rate of change condition for "Input V1." Specifically, current value 567C1 for the amount of change, "5.0," current value 567C3 for the specified time, and value 567C3 for the time unit, "seconds," of the specified time. In other words, the current values define that if the value of "Input V1" changes by 5.0 within a 10-second interval, the rate of change alarm should be triggered. Other GUI 560C also includes input field 568C1 reflecting the currently defined message corresponding to the rate of change condition specified by the currently defined values.
[0119] The corresponding value in each input field 567C1-3 can be edited by interacting with the input field. For example, input fields 567C1 and 567C2 can be edited via typed input, and input field 567C3 can be edited via touch or mouse input (e.g., to select from other discrete time unit options such as "milliseconds," "minutes," and / or "hours" in a drop-down menu). The current custom message of input field 568C1 is also editable.
[0120] exist Figure 5D In the figure, the user and Figure 5C The input field 567C2 of the GUI 560C is interacted with to change "10.0" to "15.0" and Figure 5C 560D after the user interacts with input field 567C1 of GUI 560C to replace "Tank 1" with "Main Tank." Notably, the user chooses not to interact with input fields 567C1 and 567C2, leaving those with their original current values.
[0121] exist Figure 5D, a confirmation interface element 569D is also illustrated. Selection of the confirmation interface element 569D can cause a new alarm profile to be generated and stored in the alarm database 125 in association with the "FT202.PV" function block identifier. Furthermore, it can cause the new alarm profile to replace the edited alarm profile in the alarm database 125. For example, the edited alarm can be removed from the alarm database 125, or 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 active alarm monitoring.
[0122] Figure 6 An example method 600 is illustrated for generating an alarm configuration file associated with a functional block identifier using an alarm configuration GUI and transmitting the alarm configuration file to a DCN utilizing the functional block being monitored for alarms. For convenience, the operations of the flowchart are described with reference to a system performing the operations. The system can include various components of various computer systems, such as the alarm configuration GUI system 130 and / or the alarm configuration service 120. Furthermore, while the operations of method 600 are illustrated in a particular order, this is not intended to be limiting. One or more operations may be reordered, omitted, or added.
[0123] At block 602, the system resolves a function block identifier 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.
[0124] At sub-block 602A, the system resolves a function block identifier based on a search based on a free-form UI input provided via the alarm configuration GUI. At sub-block 602B, the system resolves the function block identifier based on receiving a selection UI input selecting a function block identifier from a plurality of presented function block identifiers. In some embodiments, sub-block 602A can be performed without executing sub-block 602B. For example, the system can resolve a single function block identifier from a search based on a free-form UI input provided via the alarm configuration GUI. In some embodiments, both sub-block 602A and sub-block 602B are performed. For example, the system can identify multiple function block identifiers from a search based on a free-form UI input provided via the alarm configuration GUI, can present each of these function block identifiers, and can resolve a single issue based on selection of one of the presented identifiers. In some embodiments, sub-block 602B can be performed without executing sub-block 602A. For example, function block identifiers can be presented without any search, and one of these identifiers can be resolved based on selection.
[0125] At block 604, the system presents 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 no existing alarms exist for the resolved function block identifier, the system may only present the option to create a new alarm. In some embodiments, block 604 may include a sub-block 604A, in which the system presents new alarm options based on the function block type of the function block identifier resolved in block 602 and / or existing alarms (if any) for the resolved function block identifier. For example, the system may only present new alarm options of a type that is compatible with the function block type of the function block identifier resolved in block 602. As another example, the system may only present new alarm options that do not conflict with existing alarms.
[0126] At block 606 , the system monitors for selection of one of the presented alerts (eg, an existing alert presented or an alert option presented). If at block 606 the system detects selection of one of the presented alerts, the system proceeds to block 608 based on the selected alert.
[0127] At block 608, the system receives other UI input that changes an existing alert (i.e., when an existing alert is selected at block 606) or specifies a new alert (i.e., when a new alert option is selected at block 606), and updates the GUI to reflect the change to the existing alert or the specification of the new alert.
[0128] At block 610, the system monitors for confirmation of a change to the specification of an existing alarm or a new alarm. For example, the system can monitor for a user selection of a confirmation interface element presented in the alarm configuration GUI, a user speaking of "Done" or "Confirm," and / or other confirmation user input. If the system detects confirmation of a change to the specification of an existing alarm or a new alarm at block 610, the system proceeds to block 612.
[0129] At block 612, the system generates an alert profile based on the other UI inputs received at block 608 and stores the generated alert profile in the alert database in association with the resolved function block identifier. In some embodiments, the alert profile can also be stored in the alert database in association with metadata regarding the creation of the alert profile. For example, the metadata can include a creation date, a creation time, and / or a username corresponding to the user who created the alert profile (e.g., a username utilized in authentication).
[0130] In some embodiments, block 612 includes a sub-block 612A, in which the system stores an alarm profile in association with a DCN identifier of a DCN for a function block that is being monitored for an alarm. This can include a direct association of the DCN identifier with the alarm profile or an indirect association via an association of the alarm profile with a function block identifier and an association of the function block identifier with a DCN identifier. As described herein, the association of the function block identifier with the DCN identifier can be based on, for example, a previous alarm configuration request from the DCN that included both the function block identifier and the DCN identifier.
[0131] At block 614 , the system transmits the alarm profile via the network and to the DCN that utilizes the function blocks (which correspond to the resolved function block identifiers) at the time of alarm monitoring.
[0132] At block 616, the system determines whether other user interactions via the GUI indicate a desire to define additional alarms for the function block and / or other function blocks. If so, the system returns to block 602 (e.g., if it is desired to define additional alarms for other function blocks) or block 604 (e.g., if it is desired 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.
[0133] Figure 7 Pictured Figure 6 Example implementation 614A of block 614.
[0134] At block 614A1 , the system determines whether there is an associated DCN identifier stored in association with the function block identifier in the alarm database.
[0135] If yes, at block 614A3, the system transmits the alert profile (i.e., proactively and unilaterally) to the DCN using the DCN identifier, or transmits an update request to the DCN using the DCN identifier. The system then proceeds to block 614A4 and determines whether the alert profile or update request was transmitted at block 614A. If the alert profile was transmitted, the system proceeds to block 614A7, and the iteration of embodiment 614A ends. If the update request was transmitted instead, the system proceeds to block 614A. In some embodiments, when the update request is transmitted at block 614A3, it can be transmitted directly to the DCN (rather than to any other DCN) and can be a message notifying the DCN that an updated alert profile is available—and, when received at the DCN, can be an alert configuration condition (e.g., can result in a "yes" determination at block 802 of method 800).
[0136] If the decision at block 614A1 is negative, then at block 614A2, the system broadcasts an update request to all DCNs in the network. This update request, when received at a DCN, can be an alarm configuration condition for the DCN. Alternatively, at block 614A2, the system can wait for the DCN associated with the function block identifier to transmit an alarm configuration request in response to the alternate alarm configuration condition. In some embodiments, the system can dynamically determine at block 614A2 whether to broadcast the update request or, alternatively, wait for an alarm configuration request from the corresponding DCN in response to the corresponding DCN detecting the alternate condition. In some of those embodiments, this dynamic determination can be based on the priority of the alarm profile, such as a severity level explicitly defined in the alarm profile. For example, if the severity level is the highest priority level, the dynamic determination can be to broadcast the update request, otherwise wait for an alarm configuration request from the corresponding DCN in response to detecting the alternate condition. In some of those embodiments, this dynamic determination can additionally or alternatively be based on network conditions of the process automation network and / or a determined or estimated current workload of the DCNs of the process automation system. It should be noted that in some embodiments, the update request optionally sent in block 614A3 can optionally be different from the update request of block 614A2 and can be handled differently by the resulting DCN. For example, the DCN can act on the update request of block 614A3 as quickly as possible, but can optionally delay action based on the update request of block 614A (e.g., based on a randomly selected delay duration).
[0137] At block 614A5, the system receives an alarm configuration request from the DCN, the alarm configuration request included in the alarm database and in the block 612 ( Figure 6 ) associated with the alert profile generated at block 602 ( Figure 6 In response to receiving the update request at block 614A3 or broadcasting at block 614A2, the DCN may have transmitted an alarm configuration request at block 614A5.
[0138] In some embodiments, block 614A5 includes sub-block 614A5A. At sub-block 614A5A, the system stores the DCN identifier associated with the alarm configuration request in the alarm database and in association with the retrieved alarm profile and / or the requested functional block identifier. The system can also store the DCN identifier in association with any additional retrieved alarm profiles and / or additional functional block identifiers requested. The DCN identifier is an identifier of the DCN that transmitted the alarm configuration request. The DCN identifier can be included in the alarm configuration request or can be determined from, for example, a transmission header associated with the request. The DCN identifier can optionally be a network addressable identifier, such as an IP address or a MAC address. In various embodiments, when the DCN identifier is stored in association with the alarm profile in the database, the DCN identifier can thereafter be used for various purposes, such as those described herein.
[0139] At block 614A6, the system transmits the alarm configuration file to the DCN via the network and in response to the request. The system transmits the alarm configuration file based on its association with the function block identifier of the alarm configuration request stored in the alarm database. The system then proceeds to block 614A7.
[0140] Figure 8 800 is a flowchart illustrating an example method 800 for generating and transmitting an alarm configuration request, receiving an alarm configuration file in response, and implementing local alarm monitoring based on the received alarm configuration file. For convenience, the operations of the flowchart are described with reference to a system performing the operations. The system can include various components of various computer systems, such as any of the DCNs 110A-N. Furthermore, 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.
[0141] 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 embodiments, at block 802, the system monitors for the occurrence of any of a number of conditions, such as determining that it is newly commissioned, determining that it has been powered on, determining that its alarm engine is assigned to monitor a function block but monitoring is not currently active, determining that a threshold duration has exceeded since it last issued an alarm configuration request, and / or receiving an update request from an alarm configuration service (e.g., from the push module 126).
[0142] At block 804, the system generates an alarm configuration request including a function block identifier for a function block based on the function block being locally executed and / or locally utilized during alarm monitoring. For example, the system can include a function block identifier based on its assignment for use by the system's alarm engine during alarm monitoring. In some embodiments, the alarm configuration request includes multiple function block identifiers for multiple function blocks, each function block identifier based on its respective local execution and / or local utilization during alarm monitoring.
[0143] At block 806 , the system transmits the alarm configuration request generated at block 804 via the process automation network.
[0144] At block 808, the system receives an alarm configuration file for the function block identifier via the process automation network in response to the request. At block 808, the system can optionally receive multiple alarm configuration files when, for example, the alarm configuration request includes multiple function block identifiers. In some embodiments, at block 808, in response to the Figure 7 In an embodiment 614A, block 614A6 is executed to receive an alert profile.
[0145] At block 809, the system determines whether all received alert profiles are duplicates. In other words, whether all received alert profiles have been locally stored and utilized locally by the system's alert engine when performing alert monitoring. If so, the system returns to block 802 and monitors for the occurrence of another alert configuration condition. If not, the system proceeds to block 810.
[0146] At block 810 , the system implements local alarm monitoring based on the received alarm profile (if not a duplicate) and the function block and based on any additional received alarm profiles (if not a duplicate and the corresponding function block).
[0147] Block 810 can optionally include sub-block 810A. At sub-block 810A, when implementing local alarm monitoring based on receiving the alarm profile and the function block, the system monitors the function block (e.g., during execution of the function block) for satisfaction of a condition of the alarm profile and, in response to detecting satisfaction of the condition, performs a corresponding action for the satisfied condition.
[0148] Figure 91 is a flowchart illustrating an example method 900 for storing an alarm profile in association with a functional block identifier and transmitting the alarm profile in response to an alarm configuration request that includes the functional block identifier associated with the alarm profile. For convenience, the operations of the flowchart are described with reference to a system performing the operations. The system may include various components of various computer systems, such as the alarm configuration service 120. Furthermore, while the operations of method 900 are illustrated in a particular order, this is not intended to be limiting. One or more operations may be reordered, omitted, or added.
[0149] At block 902, the system receives an alarm configuration file and its associated functional block identifier. Block 902 can optionally include sub-blocks 902A and / or 902B. At sub-block 902A, the system receives at least some of the alarm configuration files and their associated functional block identifiers via a batch upload. At sub-block 902B, the system receives at least some of the alarm configuration files and their associated functional block identifiers via user interaction with an alarm configuration GUI (such as the alarm configuration GUI system 130).
[0150] At block 904 , the system stores the alarm profiles received at block 902 in an alarm database, and stores each of the alarm profiles in the alarm database in association with a corresponding function block identifier.
[0151] At block 906, the system receives an alarm configuration request from the DCN and via the process automation network, including the particular function block identifier and (optionally) additional function block identifiers. The DCN can include the function block identifier in the alarm configuration request based on the function block identifier being executed by the DCN and / or monitored by an alarm engine of the DCN.
[0152] At block 908, the system retrieves an alarm profile from the alarm database. The system retrieves the alarm profile based on its storage association with the function block identifier requested in block 906. At block 908, the system can also optionally retrieve additional alarm profiles based on their storage association with the additional function block identifiers requested in block 906. In various embodiments, one or more of the retrieved alarm profiles can be unique relative to all other alarm profiles in the database and / or provided to other DCNs in response to other alarm configuration requests. For example, one or more of the retrieved alarm profiles can have unique conditions and / or variables, or a unique combination of conditions and variables, relative to all other alarm profiles provided to other DCNs in response to other alarm configuration requests.
[0153] At block 910, the system transmits to the DCN the alarm configuration file retrieved at block 908 and optionally any additional alarm configuration files retrieved at block 908. The system responds to the alarm configuration request of block 906 and transmits the alarm configuration file via the process automation network.
[0154] At optional block 912, the system stores the DCN identifier associated with the alarm configuration request in the alarm database, in association with the retrieved alarm profile and / or the requested function block identifier. The system can also store the DCN identifier in association with any additional retrieved alarm profiles and / or additional function block identifiers associated with the request. The DCN identifier is the identifier of the DCN that transmitted the alarm configuration request. The DCN identifier can be included in the alarm configuration request or can be determined, for example, from a transmission header associated with the request. The DCN identifier can optionally be a network addressable identifier, such as an IP address or MAC address. In various embodiments, once the DCN identifier is stored in the database in association with the alarm profile, the DCN identifier can subsequently be used, for example, by the alarm viewer 140, to establish a connection-oriented connection with the corresponding DCN. This enables 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 prompt presentation of alarms via the alarm viewer can be provided. Furthermore, this is achieved without requiring manual assignment of the DCN identifier with which the alarm viewer should establish a connection-oriented connection.
[0155] At block 914, the system waits for an additional alarm configuration request from another DCN. If an alarm configuration request is received, the system returns to block 906 and processes the additional alarm configuration request. Although illustrated in a serial manner in method 900, it should be noted that in various embodiments, multiple alarm configuration requests can be processed in parallel.
[0156] Figure 10 1 is a flowchart illustrating an example method 1000 for receiving an updated alarm profile and its associated functional block identifier and deploying the updated alarm profile to a DCN. For convenience, the operations of the flowchart are described with reference to a system performing the operations. The system may include various components of various computer systems, such as the alarm configuration service 120. Furthermore, while the operations of method 400 are shown in a particular order, this is not intended to be limiting. One or more operations may be reordered, omitted, or added.
[0157] At block 1002, the system receives an updated alarm configuration file and its associated functional block identifier. For example, the updated alarm configuration file and its association with the functional block identifier can be received via a batch upload and / or via user interaction with an alarm configuration GUI.
[0158] At block 1004, the system stores the updated alarm profile in association with the function block identifier in the alarm database. For example, the system can replace a previous alarm profile associated with the function block identifier in the alarm database with the updated alarm profile and associate the updated alarm profile with the function block identifier.
[0159] At 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 profile). If so, at block 1008, the system transmits an update request to the DCN using the DCN identifier. For example, the update request can be transmitted directly to the DCN (rather than to any other DCN) and can be a message notifying the DCN that an updated alarm profile is available—and when received at the DCN, can be an alarm configuration condition (e.g., can result in a "yes" determination in block 802 of method 800).
[0160] If the decision at block 1008 is negative, then at block 1007, the system broadcasts an update request to all DCNs in the network. This update request, when received at a DCN, can be an alarm configuration condition for the DCN. Alternatively, at block 1008, the system can wait for the DCN associated with the function block identifier to transmit an alarm configuration request in response to the alternate alarm configuration condition. In some embodiments, the system can dynamically determine whether to broadcast the update request or, alternatively, wait for an alarm configuration request from the corresponding DCN in response to the corresponding DCN detecting the alternate condition at block 1008. In some of those embodiments, the dynamic determination can be based on the priority of the alarm profile, such as a priority level explicitly defined in the alarm profile. For example, if the priority level is the highest priority level, the dynamic determination can be to broadcast the update request, otherwise wait for an alarm configuration request in response to the corresponding DCN detecting the alternate condition. In some of those embodiments, the dynamic determination can additionally or alternatively be based on network conditions of the process automation network and / or a determined or estimated current workload of the DCNs of the process automation system. It should be noted that, as described herein, in some embodiments, the update request optionally sent in block 1007 can optionally be different from the update request of block 1008 and can be handled differently by the DCN receiving the result. For example, the DCN can act on the update request of block 1008 as quickly as possible, but can optionally delay action based on the update request of block 1007 (e.g., based on a randomly selected delay duration).
[0161] At block 1010, the system receives an alarm configuration request from the DCN, the alarm configuration request including the functional block identifier of block 1002 associated with the updated alarm configuration file in the alarm database. The DCN may have transmitted the alarm configuration request of block 1010 in response to receiving the update request at block 1008 or broadcasting at block 1007.
[0162] At block 1012, the system transmits the updated alarm configuration file to the DCN via the process automation network and in response to the request.The system transmits the updated alarm configuration file stored in the alarm database based on its association with the function block identifier of the alarm configuration request.
[0163] Figure 11 This is a flowchart illustrating an example method 1100 for establishing a persistent, connection-oriented communication session between an alarm viewer and an alarm engine of the DCN using an addressable DCN identifier received in an alarm configuration transmission from the DCN. For convenience, the operations of the flowchart are described with reference to a system performing the operations. This 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. Furthermore, while the operations of 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.
[0164] At block 1102, the system receives an alarm configuration transmission including an addressable DCN identifier from the DCN via the process automation network. In some embodiments, block 1102 includes sub-block 1103A or sub-block 1103B.
[0165] At sub-block 1103A, the alarm configuration transmission is an alarm configuration request that also includes a function block identifier. The DCN can include the function block identifier in the alarm configuration request based on the corresponding function block executed by the DCN and / or allocated for alarm monitoring by the DCN. In addition, and as described herein (e.g., Figure 11 In the method 1100 , the alarm configuration service can respond to the alarm configuration request by responding to a determination that each of the alarm configuration files is assigned to a corresponding one of the function block identifiers of the alarm configuration request.
[0166] At sub-block 1103B, the alarm configuration transmission is an alarm configuration notification. The alarm configuration notification can optionally include a function block identifier and can specify a corresponding alarm configuration file pre-loaded on the DCN and / or created locally at the DCN (e.g., via a direct connection to a human-machine interface (HMI)). Furthermore, and as described herein, the alarm configuration service receives the alarm configuration notification to update the alarm database to reflect, for example, the association of the alarm configuration file with the function block.
[0167] At block 1104, the system determines whether a connection-oriented communication session has been established between the alarm viewer and the DCN. If so, the system proceeds to block 410 and the current iteration of method 1100 ends. If not, the system proceeds to block 1106.
[0168] At block 1106, the system uses the addressable DCN identifier transmitted from the alarm configuration in block 1102 to establish a persistent connection-oriented communication session between the alarm viewer and the alarm engine of the DCN. For example, the alarm viewer can initiate the establishment of a TCP connection or other persistent connection-oriented communication session, which can be established with an OPC-UA server implementing the alarm engine on the DCN. In some embodiments, the addressable DCN identifier includes the 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 can be, for example, a port used by the alarm engine of the DCN. For example, it can be a port used by an OPC-UA server implementing the alarm engine on the DCN.
[0169] At block 1108, the system causes an alarm message transmitted by the DCN's alarm engine to be presented using the established persistent connection-oriented communication session. For example, the DCN's alarm engine can detect an alarm condition based on local alarm monitoring and transmit the alarm message to the alarm viewer using the established persistent connection-oriented communication session. The alarm viewer can receive the alarm message and cause it to be presented.
[0170] Figure 12A Pictured Figure 11 A specific embodiment 1100A of the example method 1100 is shown. Figure 12A , the blocks illustrated to the left of the dashed line and under “Alarm Configuration Service” indicate that an alarm configuration service (such as alarm configuration service 120 ( Figure 1-Figure 3 )) blocks executed in a particular embodiment 1100A. Additionally, blocks illustrated to the right of the dashed line and below "Alarm Viewer" indicate blocks that can be accessed by an alarm viewer, such as alarm viewer 140 ( Figure 1-Figure 3 ))Blocks executed in specific embodiment 1100A.
[0171] At block 1102A, the alarm configuration service receives an alarm configuration transmission from the DCN and via the process automation network.
[0172] At optional block 1104A1, the alarm configuration service determines whether the DCN that sent the alarm configuration transmission received at 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 embodiment 1100A ends. In some embodiments, at block 1104A1, the alarm configuration service can access its managed alarm database to determine whether there is any existing entry for the addressable DCN identifier of the DCN included in the alarm configuration transmission. If so, it can determine that the DCN is not a new DCN for alarm monitoring. If not, it can determine that the DCN is a new DCN for alarm monitoring. In some embodiments, at block 1104A1, the alarm configuration service can poll the alarm viewer to determine whether it has an existing connection-oriented communication session established with the addressable DCN identifier. If so, it can determine that the DCN identifier is not a new DCN for alarm monitoring. If not, it can determine that the DCN identifier is a new DCN for alarm monitoring.
[0173] At block 1106A1 , the alarm configuration service transmits the addressable DCN identifier from the alarm configuration transmission directly to the alarm viewer.
[0174] At optional block 1104A2, in response to receiving the addressable DCN identifier at block 1106A1, the alarm viewer determines whether the alarm viewer already has a connection-oriented communication session established with the addressable DCN identifier. If so, the alarm viewer proceeds to block 1110A, and the current iteration of embodiment 1100A ends. If not, the alarm viewer proceeds to block 1106A2.
[0175] At block 1106A2 , the alarm viewer uses the received addressable DCN identifier (transmitted at block 1106A1 ) to establish a persistent connection-oriented communication session with the alarm engine of the DCN corresponding to the addressable DCN identifier.
[0176] At block 1108A, the system causes an alarm message transmitted by the alarm engine of the DCN using the established persistent connection-oriented communication session to be presented.
[0177] Figure 12B Another specific embodiment 1100B of the example method of FIG4 is illustrated. Figure 12A 12, the blocks illustrated to the left of the dashed line and under “Alarm Configuration Service” indicate blocks that can be configured by an alarm configuration service, such as alarm configuration service 120 ( Figure 1-Figure 3)) blocks executed in a particular embodiment 1100B. Additionally, blocks illustrated to the right of the dashed line and below "Alarm Viewer" indicate blocks that can be accessed by an alarm viewer, such as alarm viewer 140 ( Figure 1-Figure 3 ))Blocks executed in specific embodiment 1100B.
[0178] At block 1102B, the alarm configuration service receives an alarm configuration transmission from the DCN and via the process automation network.
[0179] At 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 with the addressable DCN identifier of the transmission in the alarm database it manages. 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 embodiment 1100A ends. In some embodiments, at block 1104B1, the alarm configuration service can access the alarm database to determine whether there is an existing entry for associating data from the alarm configuration transmission with the addressable DCN identifier of the transmission. If so, it can 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, it can determine that the alarm configuration transmission of block 1102B is an alarm configuration transmission that requires a new association in the database.
[0180] At block 1106B1, the alarm configuration service generates a new association in the alarm database of the data from the alarm configuration transmission and the addressable DCN identifier of the transmission. For example, the new association can be an association of a function block from the alarm configuration transmission and the DCN identifier of the transmission and / or an association of an alarm configuration file (e.g., from the alarm configuration transmission) and the DCN identifier of the transmission.
[0181] At block 1104B2, the alarm viewer determines whether a new addressable DCN identifier exists in the alarm database with which the alarm viewer has not yet established a connection-oriented communication session. If not, the alarm viewer can optionally repeat block 1104B2 after a regular or irregular delay. If yes, the system proceeds to block 1106B2.
[0182] At 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 404B2 and continue monitoring the alarm database for another new addressable DCN identifier with which the alarm viewer has not yet established a connection-oriented communication session.
[0183] At block 1108B, the system causes an alarm message to be presented that is transmitted by the alarm engine of the DCN using the established persistent connection-oriented communication session.
[0184] Figure 13 13 is a block diagram of an example computing device 1310 that can optionally be used to perform one or more aspects of the techniques described herein. For example, computing device 1310 is an example of a computing device capable of implementing all or part of an alarm configuration service and / or optionally implementing all or part of some DCN. Computing device 1310 generally includes at least one processor 1314 that communicates with a number of peripheral devices via a bus subsystem 1312. These peripheral devices may include a storage subsystem 1324, which includes, for example, 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. Input and output devices allow a user to interact with computing device 1310. Network interface subsystem 1316 provides an interface to an external network and is coupled to corresponding interface devices in other computing devices.
[0185] The user interface input devices 1322 may include a keyboard, a pointing device such as a mouse, trackball, touchpad, or graphics tablet, a scanner, a touch screen incorporated into a display, an audio input device such as a voice recognition system, a microphone, and / or other types of input devices. In general, the use of the term "input device" is intended to include all possible types of devices and ways of entering information into the computing device 1310 or over a communication network.
[0186] 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 some other mechanism for creating a visible image. The display subsystem may also provide a non-visual display, such as via an audio output device. In general, the use of the term "output device" is intended to include all possible types of devices and ways of outputting information from computing device 1310 to a user or another machine or computing device.
[0187] The storage subsystem 1324 stores programming and data structures that provide the functionality of some or all of the modules described herein. For example, the storage subsystem 1324 may include a computer program that executes Figure 6 to Figure 1 2. Selected aspects of the method and its implementation Figures 1 to 3 The logic of the various components is depicted in .
[0188] These software modules are typically executed by processor 1314 alone or in combination with other processors. Memory 1325 used in storage subsystem 1324 can include multiple memories, including primary random access memory (RAM) 1330 for storing instructions and data during program execution and read-only memory (ROM) 1332 in which fixed instructions are stored. File storage subsystem 1326 can provide persistent storage for program and data files and may include a hard drive, floppy disk drive and associated removable media, CD-ROM drive, optical drive, or removable media cartridges. Modules implementing the functionality of certain embodiments may be stored by file storage subsystem 1326 in storage subsystem 1324 or in other machines accessible to processor 1314.
[0189] The bus subsystem 1312 provides a mechanism for the various components and subsystems of the computing device 1310 to communicate with each other as intended. Although the bus subsystem 1312 is shown schematically as a single bus, alternative implementations of the bus subsystem may use multiple busses.
[0190] The computing device 1310 can be of various types, including a workstation, server, computing cluster, blade server, server farm, or any other data processing system or computing device. Due to the ever-changing nature of computers and networks, Figure 13 The description of computing device 1310 depicted in FIG is intended only as a specific example for purposes of illustrating some embodiments. Figure 13 Many other configurations of computing device 1310 are possible with more or fewer components than the computing device depicted.
[0191] Although several embodiments have been described and illustrated herein, various other devices and / or structures for performing the functions and / or obtaining the results and / or one or more of the advantages described herein may be utilized, and each of such variations and / or modifications is considered to be within the scope of the embodiments described herein. More generally, all parameters, dimensions, materials, and configurations described herein are meant to be exemplary, and the actual parameters, dimensions, materials, and / or configurations will depend on the specific application or applications in which the teachings are used. Those skilled in the art will recognize, or be able to determine using no more than routine experimentation, many equivalents to the specific embodiments described herein. Therefore, it should be understood that the foregoing embodiments are presented by way of example only, and within the scope of the appended claims and their equivalents, the embodiments may be practiced in a manner different from that specifically described and claimed. The embodiments of the present disclosure relate to each individual feature, system, article, material, kit, and / or method described herein. In addition, if such features, systems, articles, materials, kits, and / or methods are not inconsistent with each other, any combination of two or more such features, systems, articles, materials, kits, and / or methods is included within the scope of the present disclosure.
[0192] In some embodiments, a method is provided that includes receiving, via an alarm configuration interface, one or more instances of user interface input, the one or more instances of user interface input collectively defining: one or more conditions to be used for process automation alarms, and a function block identifier of a function block of a process automation system, via which the condition is to be monitored. The method further includes, in response to receiving the instances of user interface input, generating an alarm profile specifying the condition, and storing the alarm profile in a database in association with the function block identifier. The method further includes, after storing the alarm profile in the database in association with the function block identifier, determining that a distributed control node (DCN) of the process automation system locally utilizes the function block identified by the function block identifier for alarm monitoring. The method further includes, based on storing the alarm profile in association with the function block identifier, retrieving the alarm profile from the database; and in response to determining that the DCN utilizes the process automation function block identified by the function block identifier for alarm monitoring, transmitting the retrieved alarm profile to the DCN via a network of the process automation system. Transmitting the retrieved alarm profile causes the DCN to implement alarm monitoring consistent with the retrieved alarm profile.
[0193] These and other implementations of the technology disclosed herein can include one or more of the following features.
[0194] In some embodiments, determining a function block that a DCN utilizes locally for alarm monitoring includes: receiving an alarm configuration request transmitted by the DCN via a network of the process automation system; and determining that the DCN utilizes the function block locally for alarm monitoring in response to the alarm configuration request including the function block identifier. In those embodiments, an alarm configuration file is retrieved from a database and transmitted to the DCN in response to receiving the alarm configuration request. In some versions of those embodiments, the alarm configuration request also includes a DCN identifier that uniquely identifies the DCN relative to all other DCNs in the process automation system, and the method further includes storing the DCN identifier in a database in association with the function block identifier in response to receiving the alarm configuration request and the alarm configuration request including the function block identifier and the DCN identifier. In some of these versions, the method further comprises: receiving, via the alarm configuration interface, one or more additional instances of user interface input that collectively define: one or more alternative conditions and function block identifiers to be used for the process automation alarm; in response to receiving the additional instances of user interface input: generating an alternative alarm profile that specifies the alternative conditions; storing the alternative alarm profile in a database in association with the function block identifier; and removing the association of the alarm profile with the function block identifier from the database; and after storing the alternative alarm profile in the database in association with the function block identifier and storing, based on the database, a DCN identifier in association with the function block identifier and storing the alternative alarm profile in association with the function block identifier: transmitting the alternative alarm profile to the DCN via the network and using the DCN identifier. Transmitting the alternative alarm profile causes the DCN to implement alarm monitoring that complies with the alternative alarm profile instead of implementing alarm monitoring that complies with the alarm profile. Optionally, transmitting the alternative alarm profile comprises unidirectionally transmitting the retrieved profile to the DCN using the DCN identifier.
[0195] In some embodiments, receiving, via an alarm configuration interface, an instance of user interface input that collectively defines one or more conditions and a function block identifier includes: receiving one or more initial instances of user interface input defining a function block identifier; and receiving one or more subsequent instances of user interface input defining a condition to be used for a process automation alarm. In some versions of those embodiments, the method further includes: identifying a function block identifier based on the initial instance of the user interface input; generating a graphical output dependent on the identification of the function block identifier; and causing the graphical output to be presented via the alarm configuration interface. The subsequent instance of the user interface input is received via interaction with the graphical output dependent on the identification of the function block identifier. In some of those versions, generating the graphical output dependent on the identification of the function block identifier includes: generating the graphical output dependent on a function block type specified by the function block identifier. In some of these versions, generating the graphical output dependent on the identification of the function block identifier includes: identifying a current condition of the process automation alarm based on a current alarm profile stored in association with the function block identifier in a database; and generating the graphical output to reflect the identified current condition of the process automation alarm.
[0196] In some embodiments, determining that the DCN locally utilizes the function block for alarm monitoring includes determining that the DCN locally utilizes the function block for alarm monitoring based on a pre-stored association between the DCN and the function block. In some versions of those embodiments, transmitting the retrieved alarm configuration file to the DCN in response to determining that the DCN utilizes the process automation function block includes unidirectionally transmitting the retrieved configuration file to the DCN.
[0197] In some embodiments, transmitting the retrieved alarm profile to the DCN using the process automation function block in response to determining that the DCN is to transmit the retrieved alarm profile to the DCN includes: transmitting an initial communication to the DCN indicating the availability of an updated alarm profile; receiving an alarm configuration request from the DCN and from the DCN after the initial communication; and transmitting the retrieved alarm profile to the DCN in response to receiving the alarm configuration request from the DCN.
[0198] In some implementations, the function block identifier is specific to the function block and is not assigned to any other function block of the process automation system.
[0199] In some embodiments, the method further comprises authenticating the user providing the one or more instances of the user interface input. In some of those embodiments, storing the alarm profile in the database in association with the function block identifier is further responsive to authenticating the user.
[0200] In some embodiments, a method is provided, comprising: 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 of a process automation system based on the initial instances of the user interface input. The method also comprises generating a graphical output dependent on the selection of the function block identifier, such that the graphical output is presented via the alarm configuration interface, and receiving one or more subsequent user interface inputs, via interaction with the graphical output, the graphical output dependent on the identification of the function block identifier. The method also comprises determining one or more conditions to be used for process automation alarms based on the subsequent user interface inputs. The method also comprises, in response to determining the conditions: storing an alarm profile specifying the conditions and an association of the alarm profile with the function block identifier in a database; and, in response to determining that the DCN utilizes the function block identified by the function block identifier in alarm monitoring, transmitting the alarm profile to a distributed control node (DCN) via a network of the process automation system. Transmitting the retrieved alarm profile enables the DCN to implement alarm monitoring consistent with the alarm profile.
[0201] These and other implementations of the technology disclosed herein can include one or more of the following features.
[0202] In some embodiments, generating a graphical output dependent on selection of a function block identifier includes generating a graphical output dependent on a function block type specified by the function block identifier. In some versions of those embodiments, generating dependent on the function block type specified by the function block identifier includes generating the graphical output to include only alarm types compatible with the function block type. In some of these versions, generating the graphical output to include only alarm types compatible with the function block type includes including descriptors for only alarm types compatible with the function block type in an alarm type drop-down menu.
[0203] In some embodiments, generating a graphical output dependent on selection of a function block identifier includes: identifying the 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.
[0204] In some embodiments, generating a graphical output dependent on selection of a function block identifier includes: identifying a current condition for a process automation alarm based on a current alarm profile stored in association with the function block identifier in a database; and generating the graphical output to reflect the identified current condition for the process automation alarm.
[0205] In some embodiments, a system is provided that includes a database, one or more network interfaces, a memory storing instructions, and one or more processors. The processors are operable to execute the instructions to: receive, via an alarm configuration interface, an instance of a user interface input that collectively defines one or more conditions to be used for a process automation alarm and a function block identifier of a function block via which the conditions are to be monitored. Upon executing the instructions, the processor is further operable to: in response to receiving the instance of the user interface input: generate an alarm profile specifying the conditions; and store the alarm profile in the database in association with the function block identifier. Upon executing the instructions, the processor is further operable to: after storing the alarm profile in the database in association with the function block identifier: determine that a distributed control node (DCN) locally utilizes the function block identified by the function block identifier for alarm monitoring; and, in response to: determining that the DCN utilizes the process automation function block identified by the function block identifier for alarm monitoring, and storing the alarm profile in association with the function block identifier, transmit the alarm profile to the DCN via a process automation network using the one or more network interfaces. Transmitting the retrieved alarm profile enables the DCN to implement alarm monitoring consistent with the retrieved alarm profile.
[0206] In some embodiments, a method is provided that includes receiving an alarm configuration request transmitted by a distributed control node (DCN) of a process automation system via a network of the process automation system. The alarm configuration request includes a function block identifier of a function block, and includes the function block identifier based on the function block executed by the DCN and / or assigned for alarm monitoring by the DCN. In response to receiving the alarm configuration request, the method further includes: retrieving an alarm profile from an alarm database based on the alarm profile 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 profile to the DCN via the network of the process automation system. Transmitting the retrieved alarm profile causes the DCN to implement alarm monitoring consistent with the retrieved alarm profile.
[0207] These and other implementations of the technology disclosed herein can include one or more of the following features.
[0208] In some embodiments, an alarm profile defines an alarm condition that is dependent on one or more outputs of a function block and / or dependent on one or more inputs of the function block. In some versions of those embodiments, the alarm condition is a threshold value for one or more inputs of the function block based on sensor input. In some additional or alternative versions of those embodiments, the alarm condition comprises a value previously manually specified for the function block via a user interface input.
[0209] In some implementations, the alarm profile is specific to the function block and is not assigned to any other function block of the process automation system.
[0210] In some implementations, the function block identifier is specific to the function block and is not assigned to any other function block of the process automation system.
[0211] In some embodiments, the function block is executed by the DCN and is included in an alarm configuration request based on execution by the DCN.
[0212] In some embodiments, the function block is allocated for use by the alarm engine of the DCN when monitored for alarms by the DCN and is included in an alarm configuration request based on the function block allocated for use by the alarm engine of the DCN when monitored for alarms by the DCN.
[0213] In some embodiments, the function blocks are executed at an additional DCN in communication with the DCN.
[0214] In some embodiments, the alarm configuration request also includes a DCN identifier that uniquely identifies the DCN relative to all other DCNs of the process automation system. In some versions of those embodiments, the method further includes, in response to receiving the alarm configuration request, storing an association between the DCN identifier and the alarm profile in an alarm database. In some of those versions, upon receiving the alarm configuration request, the alarm profile is stored in the alarm database in association with an alternative DCN identifier of an alternative DCN of the process automation system, and the method further includes removing the association between the alarm profile and the alternative DCN identifier from the alarm database. The DCN identifier is optionally a network address of the DCN.
[0215] In some embodiments, at a previous time, prior to receiving the alarm configuration request, the alarm configuration file was locally stored at a replacement DCN of the process automation system, and the replacement DCN previously implemented alarm monitoring for the function block using the alarm configuration file. Furthermore, at the request time when the alarm configuration request is received, the replacement DCN is no longer part of the process automation system or has been reconfigured to no longer implement alarm monitoring for the function block.
[0216] In some embodiments, a method implemented by a hardware processor of a distributed control node (DCN) of a process automation system is provided, and includes 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 including a function block identifier of a function block executed by the DCN and / or utilized by the DCN during alarm monitoring in the alarm configuration request; and transmitting the alarm configuration request including the function block identifier via a network of the process automation system. The method further includes: receiving, via the network and in response to transmitting the alarm configuration request, an alarm configuration file identified based on the function block identifier; and implementing alarm monitoring based on the received alarm configuration file and the function block.
[0217] These and other implementations of the technology disclosed herein can include one or more of the following features.
[0218] In some embodiments, detecting the occurrence of one or more alarm configuration conditions includes detecting powering up the DCN, detecting that the DCN is newly commissioned in the process automation system, and / or detecting that alarm monitoring for a function block by the DCN is not currently active.
[0219] In some embodiments, an alarm profile defines alarm conditions that depend on one or more outputs of a function block and / or on one or more inputs of a function block.
[0220] In some implementations, the function block identifier is specific to the function block and is not assigned to any other function block of the process automation system.
[0221] In some embodiments, a process automation system is provided that includes an alarm configuration server comprising: one or more network interfaces communicatively coupled to a network of the process automation system; an alarm database comprising a plurality of function block-specific alarm profiles and, for each of the function block-specific alarm profiles, a corresponding association with a corresponding function block identifier; and one or more alarm configuration processors. The alarm configuration processor executes stored instructions to receive, via the network, an alarm configuration request transmitted by a node of the process automation system, the alarm configuration request comprising a function block identifier of a function block and including a function block identifier based on the function block assigned for alarm monitoring by the node. Upon executing the stored instructions, the alarm configuration processor is further configured to, in response to receiving the alarm configuration request, retrieve a specific alarm profile from the alarm database based on the corresponding association with the function block identifier included in the received alarm configuration request for the specific alarm profile; and transmit the retrieved alarm profile to the node via the network. Transmitting the retrieved alarm profile causes the node to implement alarm monitoring consistent with the retrieved alarm profile.
[0222] In some embodiments, the process automation system further comprises a node, and the node is optionally a distributed control node (DCN) that executes the function block.
[0223] In some embodiments, a method implemented by a hardware processor is provided, and includes receiving an alarm configuration transmission from a distributed control node (DCN) of a process automation system via a network of the process automation system. When the transmission is received, the DCN does not have any established communication session with an alarm viewer application of the process automation system. Furthermore, the alarm configuration transmission indicates that the DCN is implementing alarm monitoring for one or more function blocks of the process automation system and includes a network-addressable DCN identifier of the DCN. The method further includes providing the network-addressable DCN identifier to the alarm viewer application in response to receiving the alarm configuration transmission. 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 via the network and using the network-addressable DCN identifier, and to present alarm messages transmitted by the DCN alarm engine using the persistent connection-oriented communication session.
[0224] These and other implementations of the technology disclosed herein can include one or more of the following features.
[0225] In some implementations, the Transmission Control Protocol (TCP) is utilized to establish a persistent connection-oriented communication session with the DCN.
[0226] In some embodiments, the network addressable DCN identifier includes an Internet Protocol (IP) address, and the alarm viewer application utilizes the IP address when establishing a persistent connection-oriented communication session with the DCN. In some of these embodiments, the network addressable DCN identifier also includes a port, and the alarm viewer application utilizes the port when establishing a persistent connection-oriented communication session with an alarm engine of the DCN.
[0227] In some embodiments, the alarm configuration transmission is an alarm configuration request including a function block identifier, and the DCN includes the function block identifier in the alarm configuration request based on the function block assigned for alarm monitoring by the DCN. In some versions of those embodiments, the method further includes transmitting the alarm configuration file via a network of the process automation system and to the DCN in response to the alarm configuration file being stored in association with the function block identifier in the alarm database and the function block identifier being included in the received alarm configuration request. In these versions, the DCN does not have the alarm configuration file prior to sending the alarm configuration file to the DCN.
[0228] In some embodiments, the alarm configuration transmission is an alarm configuration notification including the alarm configuration file, and the alarm configuration notification is transmitted by the DCN in response to the alarm configuration file being preloaded on the DCN or configured via a direct connection with the DCN.
[0229] In some embodiments, providing the network-addressable DCN identifier to the alarm viewer application includes transmitting a push notification including the network-addressable DCN identifier to the alarm viewer application via the network. In some of those embodiments, the method further includes determining that the DCN does not have any established communication sessions with the alarm viewer application, and further in response to determining that the DCN does not have any established communication sessions with the alarm viewer application, transmitting the push notification to the alarm viewer application via the network.
[0230] In some embodiments, providing the alarm viewer application with the network addressable DCN identifier includes storing an association of the network addressable DCN identifier with one or more alarm profiles in an alarm database, and the alarm viewer application monitors the alarm database for new network addressable DCN identifiers.
[0231] In some embodiments, a method implemented by a hardware processor is provided, and includes: receiving, via a network of a process automation system, an alarm configuration transmission: transmitted by a distributed control node (DCN) of the process automation system; including a network-addressable DCN identifier of the DCN; and including a function block identifier of a function block, the function block identifier being based on the function block assigned for alarm monitoring by an alarm engine of the DCN. The method further includes, in response to receiving the alarm configuration transmission and determining that a connection-oriented communication session between an alarm viewer and the alarm engine of the DCN is not established: establishing, by the alarm viewer, via the network and using the network-addressable DCN identifier, a persistent connection-oriented communication session with the alarm engine of the DCN. The method further includes, after establishing the persistent connection-oriented communication session with the alarm engine of the DCN: causing, by the alarm viewer, an alarm message to be presented 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.
[0232] These and other implementations of the technology disclosed herein can include one or more of the following features.
[0233] In some embodiments, the network-addressable DCN identifier comprises an Internet Protocol (IP) address, and the alarm viewer application utilizes the IP address when establishing a persistent connection-oriented communication session with the DCN.
[0234] In some embodiments, the network addressable DCN identifier also includes a port of a server on the DCN implementing the alarm engine, and the alarm viewer application utilizes the port when establishing a persistent connection-oriented communication session with the DCN's alarm engine.
[0235] In some embodiments, the alarm configuration transmission is an alarm configuration request, and the method further comprises: in response to the alarm configuration file being stored in the alarm database in association with the function block identifier and the function block identifier being included in the received alarm configuration request, transmitting the alarm configuration file via the network of the process automation system and to the DCN. In those embodiments, the DCN does not have the alarm configuration file prior to transmitting the alarm configuration file to the DCN.
[0236] In some embodiments, the alarm configuration transmission is an alarm configuration notification including the alarm configuration file, and the alarm configuration notification is transmitted by the DCN in response to the alarm configuration file being preloaded on the DCN or configured via a direct connection with the DCN.
[0237] In some embodiments, a process automation system is provided that includes an alarm database comprising: a plurality of function block-specific alarm profiles and, for each of the function block-specific alarm profiles, a corresponding association with 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 via a network, the alarm configuration request comprising: a network addressable identifier of the node and a function block identifier of a function block. The alarm configuration request comprises a function block identifier based on a function block assigned for alarm monitoring by the node. Upon executing the stored instructions, the alarm configuration processor further provides 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 via the network and using the network addressable identifier, and cause alarm messages transmitted by the alarm engine of the node using the persistent connection-oriented communication session to be presented.
[0238] These and other implementations of the technology disclosed herein can include one or more of the following features.
[0239] In some embodiments, the system further comprises one or more alarm viewer processors implementing an alarm viewer application. In some versions of those embodiments, the one or more alarm viewer processors execute stored alarm viewer instructions to: determine that a network-addressable identifier is provided by one or more alarm configuration processors; and in response to determining that a network-addressable DCN identifier is provided by the one or more alarm configuration processors: establish a persistent connection-oriented communication session with an alarm engine of a DCN via a network and using the network-addressable DCN identifier. In some of those versions, upon determining that the network-addressable DCN identifier is provided by the one or more alarm configuration processors, one or more of the alarm viewer processors are configured to: monitor the alarm database for any network-addressable DCN identifiers with which the alarm viewer has not yet established any connection-oriented communication sessions; and in response to identifying the network-addressable DCN identifier during monitoring, determine that the network-addressable DCN identifier is provided by the one or more alarm configuration processors because the alarm viewer has not yet established a connection-oriented communication session with it. Optionally, the system further comprises the node, which can optionally be a distributed control node (DCN) that executes the function block.
Claims
1. A method comprising: Via the alert configuration interface, one or more instances of user interface input are received that collectively define: One or more conditions to be used for process automation alerts, and a function block identifier of a function block in a process automation system, via which the condition is monitored; In response to receiving said instance of user interface input: Generate an alert profile that specifies the conditions, and storing the alarm profile in association with the function block identifier for the function block in a database; After storing the alarm profile 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 in alarm monitoring; retrieving the alarm profile from the database based on the alarm profile being stored in association with the function block identifier; as well as In response to determining that the DCN utilizes the process automation function block identified by the function block identifier in alarm monitoring, transmitting the retrieved alarm profile to the DCN via a network of the process automation system, Transmitting the retrieved alarm profile enables the DCN to implement alarm monitoring that complies with the retrieved alarm profile.
2. The method according to claim 1, wherein Determining that the DCN locally utilizes the functional block in alarm monitoring comprises: receiving, via the network of the process automation system, an alarm configuration request transmitted by the DCN, and In response to the alarm configuration request including the function block identifier, determining that the DCN locally utilizes the function block in alarm monitoring; and wherein retrieving the alarm configuration file from the database and transmitting the retrieved alarm configuration file to the DCN is in response to receiving the alarm configuration request.
3. The method according to claim 2, wherein: The alarm configuration request further includes a DCN identifier that uniquely identifies the DCN with respect to all other DCNs of the process automation system and further includes: In response to receiving the alarm configuration request and the alarm configuration request including the function block identifier and the DCN identifier: The DCN identifier is stored in the database in association with the functional block identifier.
4. The method according to claim 3, further comprising: Receiving, via the alert configuration interface, one or more additional instances of user interface input that collectively define: one or more alternative conditions to be used for the process automation alert, and the function block identifier; In response to receiving the additional instance of the user interface input: generating an alternative alert profile specifying said alternative condition, storing the alternative alarm profile in association with the function block identifier in the database, and removing the association of the alarm profile with the function block identifier from the database; After storing the alternative alarm profile in association with the function block identifier in the database, and based on the database storing the DCN identifier in association with the function block identifier and storing the alternative alarm profile in association with the function block identifier: transmitting the replacement alert profile to the DCN via the network and using the DCN identifier, Transmitting the replacement alarm profile enables the DCN to implement alarm monitoring in accordance with the replacement alarm profile instead of implementing alarm monitoring in accordance with the alarm profile.
5. The method according to claim 4, wherein Transmitting the alternative alert profile includes: The retrieved configuration file is unidirectionally transmitted to the DCN using the DCN identifier.
6. The method according to claim 1, wherein Examples of receiving, via the alarm configuration interface, the user interface input that collectively defines the one or more conditions and the function block identifier include: receiving one or more initial instances of user interface input defining the function block identifier; and One or more subsequent instances of user interface input defining the condition to be used for the process automation alert are received.
7. The method according to claim 6, further comprising: identifying said function block identifier based on said initial instance of user interface input; generating a graphical output, said graphical output being dependent upon said identification of said function block identifier; as well as causing the graphical output to be presented via the alarm configuration interface; wherein said subsequent instances of user interface input are received via interaction with said graphical output dependent upon said identification of said function block identifier.
8. The method according to claim 7, wherein: Generating a graphical output dependent on the identification of the function block identifier comprises: The graphical output is generated depending on the function block type specified by the function block identifier.
9. The method according to claim 7, wherein: Generating a graphical output dependent on the identification of the function block identifier comprises: identifying a current condition for the process automation alarm based on a current alarm profile stored in the database in association with the function block identifier; and The graphical output is generated to reflect the identified current condition for the process automation alarm.
10. The method according to claim 1, wherein Determining that the DCN locally utilizes the functional block in alarm monitoring comprises: Based on a pre-stored association between the DCN and the functional block, it is determined that the DCN locally utilizes the functional block in alarm monitoring.
11. The method according to claim 10, wherein: In response to determining that the DCN utilizes the process automation function block, transmitting the retrieved alarm profile to the DCN includes: The retrieved configuration file is unidirectionally transmitted to the DCN.
12. The method according to claim 1, wherein In response to determining that the DCN utilizes the process automation function block, transmitting the retrieved alarm profile to the DCN includes: transmitting an initial communication to the DCN indicating the availability of an updated alarm profile; receiving, from the DCN and subsequent to the initial communication, an alarm configuration request from the DCN; and In response to receiving the alarm configuration request from the DCN, transmitting the retrieved alarm configuration file to the DCN.
13. The method according to claim 1, wherein The function block identifier is specific to the function block and is not assigned to any other function block of the process automation system.
14. The method according to claim 1, further comprising: authenticating a user providing the one or more instances of user interface input; Wherein storing the alarm profile in association with the function block identifier in the database is further responsive to authenticating the user.
15. A method comprising: receiving, via the alert configuration interface, one or more initial instances of user interface input; selecting a function block identifier for a function block based on the initial instance of the user interface input and from a plurality of function block identifiers for a process automation system; generating a graphical output dependent upon the selection made of the function block identifier; causing the graphical output to be presented via the alarm configuration interface; receiving one or more subsequent instances of user interface input via interaction with the graphical output dependent upon identification of the function block identifier; determining, based on the subsequent instances of the user interface input, one or more conditions to be used for a process automation alert; In response to determining the condition: storing an alarm profile specifying the condition and an association between the alarm profile and the function block identifier in a database; as well as transmitting the alarm profile to a distributed control node (DCN) via a network of the process automation system in response to determining that the DCN utilizes the function block identified by the function block identifier in alarm monitoring, Transmitting the retrieved alarm profile enables the DCN to implement alarm monitoring that complies with the alarm profile.
16. The method according to claim 15, wherein Generating the graphical output dependent on the selection of the function block identifier comprises: The graphical output is generated depending on the function block type specified by the function block identifier.
17. The method according to claim 16, wherein The generation performed depending on the function block type specified by the function block identifier includes: The graphical output is generated to include only alarm types that are compatible with the function block type.
18. The method according to claim 17, wherein Generating the graphical output to include only alarm types compatible with the function block type comprises: In the Alarm Type drop-down menu, descriptors are included only for the alarm types that are compatible with the function block type.
19. The method according to claim 15, wherein Generating the graphical output dependent on the selection of the function block identifier comprises: identifying the functional block identified by the functional block identifier; identifying one or more process variables included in the function block; and The graphical output is generated to include the one or more process variables included in the function block.
20. The method according to claim 15, wherein Generating the graphical output dependent on the selection of the function block identifier comprises: identifying a current condition for the process automation alarm based on a current alarm profile stored in the database in association with the function block identifier; and The graphical output is generated to reflect the identified current condition for the process automation alarm.
21. A system comprising: database; One or more network interfaces; a memory storing instructions; one or more processors operable to execute the instructions to: Via the alarm configuration interface, an instance of user interface input is received that collectively defines: One or more conditions to be used for process automation alerts, and a function block identifier of a function block via which the condition is monitored; In response to receiving said instance of user interface input: Generate an alert profile that specifies the conditions, and storing the alarm profile in the database in association with the function block identifier of the function block; After storing the alarm profile in association with the function block identifier in the database: determining that a distributed control node (DCN) locally utilizes the function block identified by the function block identifier in alarm monitoring; and Transmitting the alarm profile to the DCN using the one or more network interfaces and via a process automation network in response to: determining that the DCN utilizes the process automation function block identified by the function block identifier in alarm monitoring, and The alarm profile is stored in association with the function block identifier, Transmitting the retrieved alarm profile enables the DCN to implement alarm monitoring that complies with the retrieved alarm profile.
22. A method comprising: receiving, via a network of a process automation system, an alarm configuration request transmitted by a distributed control node (DCN) of the process automation system, wherein the alarm configuration request comprises a function block identifier of a function block, and comprises the function block identifier based on the function block executed by the DCN and / or allocated for alarm monitoring by the DCN; In response to receiving the alert configuration request: 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 profile via the network of the process automation system and to the DCN, Transmitting the retrieved alarm profile enables the DCN to implement alarm monitoring that complies with the retrieved alarm profile.
23. The method according to claim 22, wherein The alarm profile defines an alarm condition, which is dependent on one or more outputs of the function block and / or on one or more inputs of the function block.
24. The method according to claim 23, wherein The alarm condition is a threshold value for a sensor-based input of the one or more inputs to the function block.
25. The method according to claim 23, wherein The alarm condition comprises a value previously manually specified for the function block via a user interface input.
26. The method according to claim 22, wherein The alarm profile is specific to the function block and is not assigned to any other function block of the process automation system.
27. The method according to claim 22, wherein The function block identifier is specific to the function block and is not assigned to any other function block of the process automation system.
28. The method according to claim 22, wherein The function block is executed by the DCN and is included in the alarm configuration request based on being executed by the DCN.
29. The method according to claim 22, wherein The function block is allocated for use by an alarm engine of the DCN in alarm monitoring by the DCN and is included in the alarm configuration request based on being allocated for use by the alarm engine of the DCN in alarm monitoring by the DCN.
30. The method of claim 22, wherein: The functional blocks are executed at an additional DCN in communication with the DCN.
31. The method according to claim 22, wherein The alarm configuration request also includes a DCN identifier that uniquely identifies the DCN with respect to all other DCNs of the process automation system.
32. The method of claim 31 , further comprising: In response to receiving the alert configuration request: An association between the DCN identifier and the alert profile is stored in the alert database.
33. The method according to claim 32, wherein 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, and further comprising: The association between the profile and the replacement DCN identifier is removed from the alarm database.
34. The method according to claim 33, wherein The DCN identifier is the network address of the DCN.
35. The method according to claim 22, in, At a previous time, prior to receiving the alarm configuration request, the alarm configuration file was stored locally at a replacement DCN in the process automation system, the replacement DCN previously utilizing the alarm configuration file in implementing alarm monitoring for the function block; as well as Wherein, at the request time when the alarm configuration request is received, the replacement DCN is no longer part of the process automation system, or has been reconfigured to no longer implement alarm monitoring of the function block.
36. A method implemented by one or more processors of a distributed control node (DCN) of a process automation system, the method comprising: detecting the occurrence of one or more alarm configuration conditions; In response to detecting said occurrence of said one or more alarm configuration conditions: generating an alarm configuration request, wherein generating the alarm configuration request comprises: including a function block identifier of a function block in the alarm configuration request based on utilization of the function block in execution by the DCN and / or in alarm monitoring performed by the DCN; transmitting the alarm configuration request including the function block identifier via a network of the process automation system; receiving, via the network and in response to transmitting the alarm configuration request, an alarm configuration file identified based on the function block identifier; and Based on the received alarm configuration file and the function block, alarm monitoring is implemented.
37. The method according to claim 36, wherein Detecting the occurrence of the one or more alarm configuration conditions includes: detecting power-up of the DCN, detecting that the DCN is newly commissioned in the process automation system, and / or It is detected that the alarm monitoring performed by the DCN for the functional block is not currently active.
38. The method of claim 36, wherein: The alarm profile defines an alarm condition, which is dependent on one or more outputs of the function block and / or on one or more inputs of the function block.
39. The method according to claim 36, wherein The function block identifier is specific to the function block and is not assigned to any other function block of the process automation system.
40. 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 comprising a plurality of function block specific alarm profiles and, for each of the function block specific alarm profiles, a corresponding association with a corresponding function block identifier; One or more alarm configuration processors that execute stored instructions to: receiving, via the network, an alarm configuration request transmitted by a node of the process automation system, wherein the alarm configuration request includes a function block identifier of a function block, and the function block identifier is included based on the function block being allocated for alarm monitoring by the node; In response to receiving the alert configuration request: retrieving a specific alarm configuration file from the alarm database based on a corresponding association for the specific alarm configuration file with the function block identifier included in the received alarm configuration request; and transmitting the retrieved alarm profile to the node via the network, Transmitting the retrieved alarm profile enables the node to implement alarm monitoring in accordance with the retrieved alarm profile.
41. The process automation system of claim 40, further comprising: the node, and wherein, The node is a distributed control node (DCN) that executes the function block.
42. A method implemented by one or more processors, the method comprising: receiving an alarm configuration transmission from a distributed control node (DCN) of the process automation system via a network of the process automation system, wherein, when the transmission is received, there is no established communication session between the DCN and an alarm viewer application of the process automation system, and wherein the alarm configuration transmission indicates that the DCN is implementing alarm monitoring based on one or more functional blocks of the process automation system and includes a network-addressable DCN identifier of the DCN; In response to receiving the alert configuration transmission: providing the network addressable DCN identifier to the alarm viewer application; Wherein, providing the alarm viewer application with the network addressable DCN identifier causes the alarm viewer application to: establishing a persistent connection-oriented communication session with an alarm engine of said DCN via a network and using said network-addressable DCN identifier, and An alarm message transmitted by the alarm engine of the DCN using the persistent connection-oriented communication session is caused to be presented.
43. The method according to claim 42, wherein The persistent connection-oriented communication session with the DCN is established using Transmission Control Protocol (TCP).
44. 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. The method of claim 44, wherein: The network addressable DCN identifier also includes a port, and The alarm viewer application utilizes the port when establishing the persistent connection-oriented communication session with the alarm engine of the DCN.
46. The method of claim 42, wherein The alarm configuration transmission is an alarm configuration request including the function block identifier, and wherein, Based on the function block being allocated for alarm monitoring by the DCN, the DCN includes the function block identifier in the alarm configuration request.
47. The method of claim 46, further comprising: in response to the alarm profile being stored in an alarm database in association with the function block identifier and the function block identifier being included in the received alarm configuration request, transmitting the alarm profile via the network of the process automation system and to the DCN, Before the alarm configuration file is transmitted to the DCN, the DCN does not have the alarm configuration file.
48. The method of claim 42, wherein The alert configuration transmission is an alert configuration notification including an alert configuration file, and wherein, The alarm configuration notification is transmitted by the DCN in response to the alarm configuration file being preloaded on the DCN or configured to be via a direct connection with the DCN.
49. The method of claim 42, wherein Providing the alarm viewer application with the network addressable DCN identifier comprises: A push notification including the network addressable DCN identifier is transmitted to the alarm viewer application via the network.
50. The method of claim 49, further comprising: determining that there is no established communication session between the DCN and the alarm viewer application; Wherein transmitting the push notification to the alarm viewer application via the network is further responsive to determining that there is no established communication session between the DCN and the alarm viewer application.
51. The method of claim 49, wherein Providing the alarm viewer application with the network addressable DCN identifier comprises: storing an association of the network addressable DCN identifier with one or more alarm profiles in an alarm database, and wherein, The alarm viewer application monitors the alarm database for new network addressable DCN identifiers.
52. A method implemented by one or more processors, the method comprising: An alarm configuration transmission is received via a network of a process automation system, the alarm configuration transmission: is transmitted by the Distributed Control Node (DCN) of the process automation system, comprising a network-addressable DCN identifier of said DCN, and including a function block identifier of the function block based on the function block being allocated for 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 is not established between an alarm viewer and an alarm engine of the DCN: establishing, via the network and by the alarm viewer, a persistent connection-oriented communication session with the alarm engine of the DCN using the network-addressable DCN identifier; After establishing the persistent connection-oriented communication session with the alarm engine of the DCN: 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, the alarm message is caused to be presented by the alarm viewer.
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 when establishing the persistent connection-oriented communication session with the DCN.
54. The method of claim 53, wherein: The network addressable DCN identifier also includes a port on the DCN for a server implementing the alarm engine, and The alarm viewer application utilizes the port when establishing the persistent connection-oriented communication session with the alarm engine of the DCN.
55. The method of claim 52, wherein: The alert configuration transmission is an alert configuration request and further includes: In response to the alarm profile being stored in an alarm database in association with the function block identifier and the function block identifier being included in the received alarm configuration request, transmitting the alarm profile via the network of the process automation system and to the DCN, Before the alarm configuration file is transmitted to the DCN, the DCN does not have the alarm configuration file.
56. The method of claim 52, wherein: The alert configuration transmission is an alert configuration notification including an alert configuration file, and The alarm configuration notification is transmitted by the DCN in response to the alarm configuration file being preloaded on the DCN or configured to be via a direct connection with the DCN.
57. A process automation system comprising: an alarm database comprising a plurality of function block specific alarm profiles and, for each of the function block specific alarm profiles, a corresponding association with a corresponding function block identifier; One or more alarm configuration processors that execute stored instructions to: Receiving, via the network, an alarm configuration request transmitted by a node of the process automation system, wherein the alarm configuration request comprises: a network addressable identifier for the node, and a function block identifier of the function block, and including the function block identifier based on the function block being assigned for alarm monitoring by the node; In response to receiving the alert configuration request: providing the network addressable identifier to an alarm viewer application of the process automation system; wherein providing the network addressable identifier to the alarm viewer application causes the alarm viewer application to: establishing a persistent connection-oriented communication session with an alarm engine of the node via the network and using the network addressable identifier, and An alert message transmitted by the alert engine of the node using the persistent connection-oriented communication session is caused to be presented.
58. The process automation system of claim 57, further comprising: One or more alarm viewer processors that implement the alarm viewer application.
59. The process automation system of claim 58, wherein: The one or more alarm viewer processors execute stored alarm viewer instructions to: determining that the network addressable identifier is provided by the one or more alarm configuration processors; and In response to determining that the network addressable DCN identifier is provided by the one or more alarm configuration processors: A persistent connection-oriented communication session is established with the alarm engine of the DCN via the network and using the network-addressable DCN identifier.
60. The process automation system of claim 59, wherein: Upon determining that the network addressable DCN identifier is provided by the one or more alarm configuration processors, one or more of the alarm viewer processors are configured to: monitoring an alarm database for occurrences of any network addressable DCN identifier with which the alarm viewer has not established any connection-oriented communication session; as well as In response to identifying the network addressable DCN identifier as a network addressable DCN identifier with which the alarm viewer has not established a connection-oriented communication session during the monitoring, determining that the network addressable DCN identifier is provided by the one or more alarm configuration processors.
61. The process automation system of claim 60, further comprising the node, and wherein: The node is a distributed control node (DCN) that executes the function block.