lhcblogo.gif (8544 bytes)

Experiment Control System

Installing and Using the fwExternalAlertHandler

on Linux or Windows




The fwExternalAlertHandler component provides the alarm types definition and a set of user functions to inject alarms into a PVSS system and display them into the Alarm Screen. There are three alarm classes defined for LHCb, all of them not acknowledgeable:

  • lbAlarm_warning
  • lbAlarm_error
  • lbAlarm_fatal
The user should choose the type of the alarm to be reported, according to the severity of the failure the alarm informs about.

The fwExternalAlertHandler component allows to send alarms and remove them when the failure is gone. This can be done by calling the available functions from any panel or control script. The documentation about the fwExternalAlertHandler library can be found here.

Installation:

  1. The FW Core and the fwAlarmHandling (v3r2) has to be previously installed on the project
  2. Get the fwExternalAlertHandler Zip file and extract it into a directory (this will create an fwExternalAlertHandler directory inside). (For users at the pit this is already done.)
    - On Linux please use "unzip -a"
  3. Please use the FW Installation tool to install the components
    • Choose fwExternalAlertHandler as the place to "Look for new components"
    • This will install it into the directory of your choice, from here on called "Installation Directory" (can be checked on "Advanced Options").

NOTE:
Control projects at the PIT:
- Look for new components - windows = "P:\pvss\FwExternalAlertHandler\"       or    "P:\pvss\lhcbfw\lhcb-x.x"
                                            linux =       "/sw/pvss/FwExternalAlertHandler/"     or    "/sw/pvss/lhcbfw/lhcb-x.x"
- Installation Directory - windows = "G:\<group_id>\pvss\fwComponents_<projName>"
                                    linux =      "/group/<group_id>/pvss/fwComponents_<projName>"

FSM usage:

If a malfunctioning related to a device unit happens, it has to be reported sending an alarm. In the same way, the generated alarm should disapear when the cause does not exist anymore.
The user has to decide when an alarm should be triggered, and when to deactivate it. This alarms are not connected by default to any meassurement or state, is the user who has to implement the logic of the alarms flow. Be aware that, since this alarm does not know anything about the cause itself, if the specific function to deactivate it is not called, it will remain "forever".
The following functions are available in order to activate and deactivate an alarm:

fwExternalAlertHandler_sendAlarm(type, object, cause);
fwExternalAlertHandler_deactivateAlarm(type, object, cause);

An alarm is defined by that three parameters: type, object wich generates it, and cause. To remove an specific alarm, the user should call the second function and notice that this three parameters should have the same value as they had when the alarm was sent (int the fist function).

In case of a non foreseen restart of the FSM, and in order to prevent that old alarms remain active when the cause wich produced them has already disapeared, all alarms related to a device unit should be removed at the start up of that FSM DU (and the condition that triggers the alarm should be checked again). This should be done in the Initialize script of the DU type, as shown in the example below:

myDU_initialize(string domain, string device)
{
     fwExternalAlertHandler_deactivateAllObjAlarms(device);
}

A function for removing all the active fwExternalAlertHandler alarms in one system is also available.

More information about the fwExternalAlertHandler library is available here.

For any question or comment please contact Alba Sambade Varela.