Analog attribute runtime behavior: alarms
- Last UpdatedJul 19, 2024
- 3 minute read
The time stamp for when the alarm becomes active or inactive is the most recent time stamp of the corresponding input value, if any; if there is no time stamp, the AppEngine scan time is used.
When alarms are enabled, you can set an individual limit, deviation, ROC, or state alarm to be enabled, silenced, or disabled. This setting only applies to the individual alarm. No other alarm settings for the object are affected, and the setting is not propagated to contained objects.
The actual behavior is based upon the most restrictive enable/silence/disable AlarmMode in the object hierarchy.
-
If the object has an AlarmMode of Enable, and the individual alarm's AlarmMode setting is silenced, the alarm is silenced. If the alarm's AlarmMode setting is disabled, the alarm is disabled.
-
If the object has an AlarmMode of Silence, either directly or by another object higher in the hierarchy, and the individual alarm's AlarmMode setting is enabled, the alarm is silenced. If the alarm's AlarmMode setting is disabled, the alarm is disabled.
-
If the object has an AlarmMode of Disable, either directly or by another object higher in the hierarchy, and the individual alarm's AlarmMode setting is enabled or silenced, the alarm is disabled.
When alarms are enabled, you can set an individual alarm to be inhibited. The inhibition setting applies only to an individual alarm. No other alarm settings for the object are affected, and the setting is not propagated to contained objects. If alarms are not inhibited, the alarm behavior is determined by the AlarmMode setting.
Limit Alarms
Generic limit checking done for all high limit alarms are:
-
If Field Attribute value > Limit, then record the time and current Field Attribute value, set the alarm condition, and send the alarm notification.
-
If Field Attribute value <= Limit – ValueDeadband, then clear the condition and send the notification of the clear.
Generic limit checking for low limit alarms:
-
If Field Attribute value < Limit, then record the time and current Field Attribute value, set the alarm condition, and send the alarm notification.
-
If Field Attribute value >= Limit + ValueDeadband, then clear the condition and send the notification of the clear.
Deviation Alarms
When the Field Attribute is set to NaN, the following occurs:
-
The quality of the Deviation attribute is set to UNCERTAIN.
-
The value of the Deviation attribute will remain unchanged until it receives a value quality of GOOD.
Limit checking for each deviation is as follows:
-
If (Absolute value (Field Attribute value - Target) > Tolerance && (TimeSinceTargetChange > Settling Period)) then set Condition=TRUE.
-
If (Absolute value (Field Attribute value - Target + Deadband) <= Deviation && Condition=TRUE) then set Condition=FALSE.
Rate of Change (ROC) Alarms
When the Field Attribute is set to NaN, the following occurs:
-
The quality of the Rate attribute is set to UNCERTAIN.
-
The value of the Rate attribute will remain unchanged until it receives a value quality of GOOD.
Limit checking for each ROC alarm is as follows.
-
If the rate evaluation period has expired, then calculate the Rate as:
-
(Field Attribute value - last Field Attribute value) / (current time - last time)
-
convert Rate to target units (sec, min, hour or day)
-
-
If Rate < DecreasingHi.Limit, then set the DecreasingHi condition. Else, clear the DecreasingHi condition.
-
If Rate > IncreasingHi.Limit, then set the IncreasingHi condition. Else, clear the IncreasingHi condition.
ROC alarms are used to detect and report a condition when the Field Attribute value increases or decreases at too fast of a rate. You can specify a limit for both the increasing and decreasing directions. For the increasing limit, if the Field Attribute value increases at a rate greater than the limit, an alarm is generated. Similarly, for the decreasing limit, if the Field Attribute value decreases at a rate greater than the limit, an alarm is generated. The limit value in either case is a positive number.
In addition to specifying the rate limit value, the time dimension for the rate must be specified depending on the time dynamics of the variable being measured. The choices are per second, per minute, per hour, and per day. For calculation of the rate itself, the time interval at which the rate (or slope between points) is calculated is also specified as a time interval in milliseconds.
For example, if you want to put a rate limit on the rate at which a number of gallons accumulates in a tank at 200 gallons per minute, and you want to specify the calculation to be performed every 5 seconds, then specify:
IncreasingHi.Limit = 200
Rate.Units = Min
EvalPeriod = 5000