Skip to content

Overrides and Effective State

Ryan Slominski edited this page Jul 17, 2024 · 30 revisions

An alarm can be in one of two basic states:

  • "Active": Timely operator action required (actively alarming / annunciating)
  • "Normal": No operator action required

In an ideal world alarm producers are sophisticated and aware of the machine program and nuisance alarms are non-existent. Nuisance alarms are false alarms, alarms which are in the Active state incorrectly and distract operators - there really isn't any operator action required despite the alarm producer indicating there is. In practice, nuisance alarms are very common and quickly undermine the value of an alarm system. Overrides are one way for operators to deal with nuisance alarms by adding a layer of indirection from alarm producers and allowing effective notification state to differ from actual activation state. Multiple overrides are possible simultaneously and precedence determines effective override state, which is factored into effective notification state.

Overrides

Precedence Name Trigger Duration Note
1 Disabled Manual Operator Command Indefinite A broken alarm can be flagged as out-of-service
2 Filtered Manual Operator Command of filterable alarm Indefinite An alarm can be "suppressed by design" - generally a group of alarms are filtered out when not needed for the current machine program. The Filter Processor helps operators filter multiple alarms with simple grouping commands (like by area).
3 Masked Automatic upon activtation of both maskable alarm and parent alarm Only while parent alarm is active An alarm can be suppressed by a parent alarm to minimize confusion during an alarm flood and build an alarm hierarchy
4 OnDelayed Automatic upon activation of on-delayable alarm Short with expiration An alarm with an on-delay is temporarily suppressed upon activation to minimize fleeting/chattering
5 Shelved Manual Operator Command Short with expiration An alarm can be temporarily suppressed via manual operator command (in continuous or oneshot mode - oneshot means once alarm transitions to Normal the override is removed)
6 OffDelayed† Automatic upon de-activation of off-delayable alarm Short with expiration An alarm with an off-delay is temporarily incited upon de-activation to minimize fleeting/chattering
7 Latched† Automatic upon activation of latchable alarm Until Operator Ack A fleeting alarm (one that toggles between Active and Normal too quickly) can be configured to require acknowledgement by operators - the alarm is latched once active and won't clear to Normal (or Active) until acknowledged

† Incited alarm override (Others are suppressed override)

Operator Initiated

  • Disable and Undisable
  • Shelve and Unshelve
  • Filter and Unfilter
  • Unlatch (acknowledge)

Automated

  • On-Delay and Un-On-Delay
  • Off-Delay and Un-Off-Delay
  • Latch
  • Mask and Unmask
  • Unshelve (timer expiration or active cleared if one-shot)

Note: Some overrides are disallowed by configuration. The alarm-classes topic schema contains fields indicating whether an alarm is filterable, latchable, on-delayable (ondelayseconds), and off-delayable (offdelayseconds). The alarm-instances topic schema contains a maskedby field that indicates whether the alarm is maskable.

Effective State

The effective alarm state is computed by the jaws-effective-processor, which consumes the alarm-classes, alarm-instances, alarm-activations, and alarm-overrides topics. The processor outputs override updates to the alarm-overrides, and calculated activation state to the effective-notifications topic. Calculated registration state is output to the effective-registrations topic. The processor also outputs combined alarm records containing both registration and notification to the effective-alarms topic for clients that require an absolute ordering of registration and notification messages or for clients that prefer to store less registration state at the expense of larger all-in-one notification messages.

The effective notification state takes into consideration override precedence, one shot vs continuous shelving, and Active vs Normal with overridden considerations. The effective notification states in precedence order:

Precedence State Effectively Until
1 NormalDisabled Normal Until disable removed (suppressed)
2 NormalFiltered Normal Until the filter is removed (suppressed)
3 NormalMasked Normal Until the alarm or parent alarm becomes inactive (suppressed)
4 NormalOnDelayed Normal Until delay expires OR the alarm becomes inactive (suppressed)
5 NormalOneShotShelved Normal Until the alarm becomes inactive OR shelving expires (suppressed)
6 NormalContinuousShelved Normal Until shelving expires (suppressed)
7 ActiveOffDelayed Active Until delay expires (incited)
8 ActiveLatched Active Until operator acknowledgement (incited)
9 Active Active Until producer determines no longer active
10 Normal Normal Until producer determines no longer normal

Note: The way our override schema is keyed it is impossible for an alarm to be both One shot and continuous shelved simultaneously (they're mutually exclusive states) - so their relative precedence to each other is arbitrary.

Note: Registration is used to compute an initial set of "Normal" alarms, however it is possible for an activation of an unregistered alarm and the processor lets them fly at this time as it's safer than silently dropping them and easier than routing to separate dead-letter queue (and ops will quickly notice the active alarm without a registration)!