This interface is only accessible to users with project administrator privileges; contact EnergyMachines support for details.
Alarm editor is the interface for configuring and/or editing Alarms and is accessible for the Alarms section of the Project Profile. While it has similarities to the tag watcher configurator, the difference between tag watchers and alarms is covered in the parent article.
An alarm has the following parameters:
Alarm main settings
Configures alarm metadata.
Title Name of the alarm, with a color-coded status indicator.
Priority Priority level referenced in the Related Interfaces; three priority levels are available: Low (default), Medium, and High.
Category Selects alarm category from the dropdown list of preconfigured Categories; see linked article for intended use.
HMI Link Selects a page to be linked beside the alarm's name on the SAP.
Click on Select to open the page selection dialog, which lists all pages under the project, with a Filter field atop for convenience.
Click on Clear to clear the selection.
Enabled Checked by default; if unchecked, prevents the alarm from activating even when tested positive for its condition(s).
Condition settings
Configures the alarm activation conditions. Alarm becomes if testing the observed tag(s) for the configured condition(s) returns a positive.
For simplicity, this article assumes that no alarm is acknowledged. For this reason, alarms that test negative are labeled . For other statuses and their labeling, see alarm statuses.
Conditions are determined by the following parameters:
Condition type
The principal method for testing the observed tag(s). Condition types along with their specific parameters are discussed in the next section.
Tag
Selects a tag to observe, which will activate the alarm when the tag tests positive for the configured conditions. Not available for Ping and 2D Range conditions.
Note that unlike a Tag Watchers, an alarm is strictly project-specific and cannot test tags from outside its project.
Delay-On
Interval between the time points $C_{on}$ and $S_{on}$, where:
\(C_{on}\) is the time status check for the observed tag(s) returns a positive, and
\(S_{on}\) is the time the alarm becomes
in Hours, Minutes, and Seconds.
Delay can be configured to avoid unnecessary activation of the alarm where the observed tag(s) may occasionally go outside the desired value range for a brief period, which can be safely ignored.
By default, there is no delay.
Delay-Off
Interval between the time points $C_{off}$ and $S_{off}$, where:
\(C_{off}\) is when status check for the observed tag(s) returns a negative, and
\(S_{off}\) is when the alarm becomes
in Hours, Minutes, and Seconds.
Delay can be configured to avoid unnecessary deactivation of the alarm where the observed tag(s) may occasionally return to the desired value range for a brief period, which cannot be safely ignored.
By default, there is no delay.
Condition types
An alarm can test the selected tag(s) using the following methods:
Value control
Tests the relation of the selected tag’s value to the setpoint (non-boolean tags only).
Operator Relational operator that compares the observed tag to the reference; the result determines the state:
if true, the alarm becomes ;
if false, the alarm becomes .
Set point Selects the reference that the observed tag is compared to:
Const Compares the tag against a preset value, entered under Value
Tag Unlocks a tag selector to pick up the reference tagTag whose value is used for comparison.
Deadband Creates a range $[R_{min};R_{max}], R_{min} = T - O; R_{max} = T + O$, where $T$ is the setpoint's value, $O$ is the deadband value. Default value is `0`. If non-zero deadband is used, the operator behavior changes as follows:
Less, Less or equal test against the lower limit ($R_{min}$);
More, More or equal test against the upper limit ($R_{max}$);
+Example 1
Activates the alarm if the value of EMHW01/EMHW_CW_HM1_OutletTemp exceeds the value of 25 by 3 or more.
Discreet
Tests the ed tag’s value for equality to the setpoint (boolean tags only).
Operator Relational operator that compares the observed tag to the reference; the result determines the state:
if true, the alarm becomes ;
if false, the alarm becomes .
Set point Selects the reference that the observed tag is compared to:
Const Set point is `True` if Value is checked (the default), and vice-a-versa.
Tag Unlocks a tag selector to pick up the reference tagTag whose value is used for comparison.
+Example 2
Activates the alarm if the value of the Boolean tag is not True.
Deviation
Tests the selected tag’s value for deviation from the setpoint (non-boolean tags only).
Max deviation Maximum permissible absolute differential value $\Delta_{max}, \Delta = T - S$, where $T$ is the observed tag's value, $S$ is the setpoint:
the alarm becomes if $|\Delta| > |\Delta_{max}$|; OR
the alarm becomes if $|\Delta| ≤ |\Delta_{max}$|.
Set point Selects the reference that the observed tag is compared to:
Const Compares the tag against a preset value, entered under Value
Tag Unlocks a tag selector to pick up the reference tag.Tag whose value is used for comparison.
Deadband Creates a range $[R_{min};R_{max}], R_{min} = T - O; R_{max} = T + O$, where $T$ is the setpoint's value, $O$ is the deadband value. Default value is 0. If non-zero deadband is used, the alarm will not change its status to as long as its value is within the range $[R_{min};R_{max}]$.
+Example 3
Compares the tag docs-mqtt-EMQX/temperature (temperature) against docs-mqtt-EMQX/setpoint (setpoint); activates the alarm at temperatures lower than 5˚ below the setpoint or higher than 5˚ above the setpoint.
Rate of change
Tracks the time between changes in the observed tag’s value. The alarm becomes if two consecutive changes occur with a time gap shorter than the target duration. The target duration Max rate of change and is measured in Time unit(s).
If a subsequent change occurs with a longer time gap, the alarm becomes .
+Example 4
Observes the tag docs-mqtt-EMQX/temperature. If the tag's value changes within 15 Minutes since the previous change, activates the alarm.
2D Range
Compares the values of two selected tags as coordinates on a 2D plane (non-boolean values only).
Source tag X Selects a tag to source the X-axis value from.
Source tag Y Selects a tag to source the Y-axis value from.
The two observed tags continuously generate a point with coordinates $(X,Y)$.
The 2D range method tests the tag-coordinated point against a polygon formed by tracing the set of user-provided points, listed under Points. The checkbox determines when the tag watcher will be activated:
Safe zone inside
if checked, the alarm is ; OR
if unchecked, the alarm is
while the point $(X,Y)$ is outside the boundaries of the polygon.
Points for the polygon can be defined and/or edited by either of the two methods below:
Draw Points Opens 2D plane editor. Three corners of the canvas show values that delimit the size of the plane. The default values are, top-bottom, left-right: 100; -100; -100; 100`, producing a plane sized 200×200. The size of the plane can therefore be changed by editing these values.
A newly created condition will not have any points; thus, the plane will be empty. Click anywhere on the canvas to create the first point at the cursor's coordinates. Continue clicking elsewhere on the plane to add more points. Each subsequently added point will connect to the previously created one.
To complete the process, click again on the first created point, which will close the curve onto itself, forming a polygon. Once a complete polygon has been made (or if a preexisting set of points is opened in the editor), points can be dragged around to change their coordinates.
Fig. 1. 2D plane editor with a complete polygon.
The created polygon is clickable, toggling the Safe zone inside checkbox. Note two restrictions:
Once the polygon is complete, no more new points can be added on the canvas.
Individual points cannot be removed; clicking on resets the canvas to an empty state.
These restrictions do not apply to the alternative method described below.
Click on OK to save the edits; if the canvas has no complete polygon at this point, the editor will auto-complete it by connecting the starting point to the last created point. Click CANCEL to close the editor without saving the polygon.
Set Points Opens the list of points in tabular format. The list is empty for a newly created condition.
Click + ADD NEW to create a point with the coordinates $(0,0)$. All coordinate fields are editable.
Enter the desired coordinates for each point. The polygon will be generated by connecting each point to its two nearest neighbors as determined by the Euclidean distance.
Plane size cannot be changed here; auto-resize is applied to provide sufficient area for the entered coordinates.
Select one or more points, or select all points by checking the box in the table header, and click on Delete to delete the selection (does not require confirmation).
Click on OK to save the edits; alternatively, click CANCEL to close the list without saving the changes.
Regardless of the method, at least three points must be added to make a polygon. Changes cannot be saved if there is less than three points.
+Example 5
Defines an area delimited by a quadrangle with vertices at the specified Points. If the point with the coordinates $(X,Y)$, where:
$X$ is the value of the tag EMHW01_DEV/regulator-points/x1; and
$Y$ is the value of the tag EMHW01_DEV/regulator-points/y1 under Project X
is outside the area, activates the watcher.
Ping
Tests network connection to the specified node; does not use tag data.
Host IP-address to ping; 192.168.0.10 by default.
Attempts Number of consecutively failed ping attempts, after which the alarm becomes ; 2 by default.
Ping interval Time interval between attempts; 5 seconds by default.
+Example 6
Default configuration; pings the host at 192.168.0.10 every 5 seconds; if the host does not respond, or no connection to the host is established on two consecutive attempts, activates the alarm.
Bit
Tests the specific bit of the observed tag.
Bit index (0 to 63) Index of the tested bit in the binary representation of the tag's value.
If the observed tag returns an array, tests the first value in the array.
Defaults to False or 0 for bit indices outside the tag's maximum bit length. For example, if the tag's data type is int32, indices 32 to 63 default to False.
Bit value Tested bit's value at which the alarm becomes .
+Example 7
Observes the tag bacnet-docs/Writable Tag; if the bit at index 39 is True, activates the alarm.
Outlier counter
Monitors the tag for the number of outliersOutlier Value significantly different from the expectation. over a period of time.
Threshold value Minimum or maximum difference to initiate an outlier counter.
Threshold number Minimum number of outliers to activate the alarm.
Threshold interval (integer) and Time unit Outlier counter duration, in Milliseconds, Seconds, Minutes, Hours (default), and Days.
Inverted mode If checked, an outlier is registered when the difference does not exceed the Threshold value.
Consider the delta $\delta = \left|X_2 - X_1\right|$, where $X_1$ and $X_2$ are two consecutive values of the observed tag, in that order. If:
$\delta > V$ with Inverted mode unchecked (default), OR
$\delta ≤ V$ with Inverted mode checked
where $V$ is Value, $X_2$ registers as an outlier. The alarm becomes if the number of outliers registered within any time period $P$ reaches the Threshold number, where $P$ equals the Threshold interval in Time units.
Should no new outliers be registered within the time $P$ since the activation, the alarm becomes .
+Example 8
Observes the tag test_folder/Temp_delta; if within any 15 minutes, its value goes up or down by 3 or more at least twice, activate the alarm.
Complex condition
Configures a multiconditional test for the selected tag, with two possible options:
ALL — All of the configured subconditions must check to set the state to ; reverts to as soon as any subcondition tests negative.
ANY — One or more of the configured subconditions must check to set the state to ; reverts to only when every subcondition tests negative.
No subconditions will be present by default. To create one, click on + ADD CONDITION. In case one or more subconditions already exist, the newly created one will copy the last one on the list. To delete a condition, click on Delete in the condition pane.
Subcondition configurator is slightly different from the regular condition editor: