-
Notifications
You must be signed in to change notification settings - Fork 0
Overrides and Effective State
An alarm can be in 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 alarms which are in the Active state incorrectly - 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 alarm state to differ from actual alarm state. Multiple overrides are possible simultaneously and precedence determines effective override state, which is factored into effective alarm state.
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 |
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 (unacknowledge)
- Mask and Unmask
- Unshelve (timer expiration or active cleared if one-shot)
Note: Some overrides are disallowed by configuration. The registered-alarms topic schema contains fields indicating whether an alarm is filterable, maskable (maskedby), on-delayable (ondelayseconds), off-delayable (offdelayseconds), and latchable (latching).
The effective alarm state is computed by the alarm-state-processor, which consumes the registered-alarms, active-alarms, and overridden-alarms topics and outputs to the alarm-state topic the effective alarm state. The effective alarm state takes into consideration override precedence, one shot vs continuous shelving, and active vs inactive combinations with overridden considerations. The alarm states in precedence order:
Precedence | State | Actually | Effectively | Note |
---|---|---|---|---|
1 | NormalDisabled | Normal | Normal | Until disable removed (suppressed) |
2 | Disabled | Active | Normal | Until disable removed OR the alarm becomes inactive (suppressed) |
3 | NormalFiltered | Normal | Normal | Until the filter is removed (suppressed) |
4 | Filtered | Active | Normal | Until the filter is removed OR the alarm becomes inactive (suppressed) |
5 | Masked | Active | Normal | Until the alarm or parent alarm becomes inactive (suppressed) |
6 | OnDelayed | Active | Normal | Until delay expires OR the alarm becomes inactive (suppressed) |
7 | OneShotShelved | Active | Normal | Until the alarm becomes inactive OR shelving expires (suppressed) |
8 | NormalContinuousShelved | Normal | Normal | Until shelving expires (suppressed) |
9 | ContinuousShelved | Active | Normal | Until delay expires OR the alarm becomes inactive (suppressed) |
10 | OffDelayed | Normal | Active | Until delay expires (incited) |
11 | NormalLatched | Normal | Active | Until operator acknowledgement (incited) |
12 | Latched | Active | Active | Until operator acknowledgement OR the alarm becomes inactive (incited) |
13 | Active | Active | Active | Timely operator action is required |
14 | Normal | Normal | Normal | Does not require operator action |
Note: Some states are mutually exclusive such as the override states with "Normal" prefix cannot occur at the same times as their Active counterparts (For example, an alarm can not be both NormalDisabled and Disabled at the same time, but an alarm can be both Disabled and Filtered). The Precedence is arbitrary in these mutually exclusive cases. The way our override schema is keyed it is also impossible for an alarm to be both One shot and continuous shelved simultaneously (they're also mutually exclusive states).
Note: Registration isn't really used to determine state at this time; just ensures an initial set of "Normal" alarms are recorded.