The Alarm System provides a mechanism for notifying asynchronously operators
and registered applications of the occurrence of important anomalous conditions
that can disrupt the observation or be potentially dangerous for the system[RD01 - 6.4.1
Definition].
The design and implementation of the ACS Alarm System are based on the Laser
system developed by CERN for the LHC accelerator [RD19]
and take into account the OVRO hierarchical alarm system [RD22][RD01 - 6.4.5. Hierarchy]. For more details on the Laser system and for a very good Alarm System
Requirements Document see [RD19].
An Alarm System API implemented in C++, Java and Python allows applications
to publish Alarms.
Properties are able to trigger alarms. The simple alarm is triggered when
the value of the property exceeds or falls below the alarm limits defined for
the property.
Hysteresis
could be implemented for the alarm limits (Implementation not foreseen
for ALMA).
Alarms are events published on an Alarm Notification Channel. Notification
is done when the alarm is set and when it is cleared.
Whenever an alarm is set or cleared, the event is logged in the Logging System
[RD01 - 6.4.6. Alarm
logging].
Alarm events are characterized by the following information:
- An enumerated state property with the values: GOOD, WARNING,
BAD
- A timestamp property describing when the alarm status changed
- A set of description characteristics [RD01
- 6.4.7. Configuration], including (on top of the standard ones like description,
URL for extended documentation...) a severity [RD01 - 6.4.3. Severity]
An Alarm Server application keeps track of all active alarms.
Hierarchical alarms can be constructed by the Alarm Server that behaves as
client on top of the available alarm system and re-publish hierarchical
alarms.
The Alarm Server is also responsible to maintain State Alarms. These are alarms
that maintain an internal state. In this case the alarm will be incarnated by
an Alarm Object whose life cycle is controlled by the Alarm Server. They will
have the following additional properties:
- An enumerated occurrence property (FIRST OCCURRENCE, MULTIPLE
OCCURRENCE....)[RD01 - 6.4.4. State]
- A property holding the status of user acknowledge, when required.
Some alarms just disappear when the alarm condition is cleared, but others
require an explicit acknowledgment from the operator[RD01
- 6.4.2 Behavior]
It is possible to define actions that have to be started on the occurrence
of a given alarm condition [RD01 - 6.4.8.
Binding]. Applications
can use normal Notification Channel techniques to request a notification to
be sent for the occurrence of specific alarms.
An alarmDisplay GUI provides an operator user interface
to the alarms. Using this application the operator can browse through the currently
active alarms, request for detailed information and help about a specific alarm,
acknowledge alarms when this is required.
The Alarm System supports the definition of reduction rules.
Figure 3.20: Alarm System architecture